- components: 修复英文标题为中文,添加缺失组件文档 - 新增 camera-component, light-component, audio-source-component, audio-listener-component 类总览 - 修复 get-position.md 格式 - 更新 components.md 模块总览 - scene: 修复方法文档格式,新增缺失方法 - 修复 find.md, create-game-object.md 英文标题 - 新增 FindByID, SerializeToString, DeserializeFromString 方法文档 - 更新 scene.md 类总览方法列表
142 lines
3.7 KiB
Markdown
142 lines
3.7 KiB
Markdown
# TextureLoader
|
||
|
||
**命名空间**: `XCEngine::Resources`
|
||
|
||
**类型**: `class`
|
||
|
||
**描述**: 纹理资源加载器,负责从文件加载纹理资源。
|
||
|
||
**继承自**: `IResourceLoader`
|
||
|
||
## 概述
|
||
|
||
`TextureLoader` 是 XCEngine 中的纹理资源加载器实现类,继承自 `IResourceLoader`。它支持从多种图像格式加载纹理数据,包括 PNG、JPG、TGA、BMP、GIF、HDR 和 DDS。
|
||
|
||
## 头文件
|
||
|
||
```cpp
|
||
#include <XCEngine/Resources/TextureLoader.h>
|
||
```
|
||
|
||
## 支持的格式
|
||
|
||
| 扩展名 | 描述 |
|
||
|--------|------|
|
||
| `png` | PNG 图像 |
|
||
| `jpg` / `jpeg` | JPEG 图像 |
|
||
| `tga` | TGA 图像 |
|
||
| `bmp` | BMP 图像 |
|
||
| `gif` | GIF 图像 |
|
||
| `hdr` | HDR 图像 |
|
||
| `dds` | DDS 压缩纹理 |
|
||
|
||
## 公共方法
|
||
|
||
| 方法 | 描述 |
|
||
|------|------|
|
||
| [TextureLoader](constructor.md) | 构造函数 |
|
||
| [~TextureLoader](destructor.md) | 析构函数 |
|
||
| [GetResourceType](../shader-loader/methods/get-resource-type.md) | 返回 `ResourceType::Texture` |
|
||
| [GetSupportedExtensions](../audio-loader/get-supported-extensions.md) | 获取支持的扩展名列表 |
|
||
| [CanLoad](../audio-loader/can-load.md) | 检查是否支持加载指定路径的纹理 |
|
||
| [Load](../../scene/scene/load.md) | 加载纹理资源 |
|
||
| [GetDefaultSettings](../audio-loader/get-default-settings.md) | 获取默认导入设置 |
|
||
|
||
### GetResourceType
|
||
|
||
```cpp
|
||
ResourceType GetResourceType() const override
|
||
```
|
||
|
||
返回资源的类型标识。
|
||
|
||
**返回值**: `ResourceType::Texture`
|
||
|
||
---
|
||
|
||
### GetSupportedExtensions
|
||
|
||
```cpp
|
||
Containers::Array<Containers::String> GetSupportedExtensions() const override
|
||
```
|
||
|
||
返回所有支持的纹理文件扩展名列表。
|
||
|
||
**返回值**: 包含所有支持扩展名的字符串数组。
|
||
|
||
**支持的扩展名**: `png`, `jpg`, `jpeg`, `tga`, `bmp`, `gif`, `hdr`, `dds`
|
||
|
||
---
|
||
|
||
### CanLoad
|
||
|
||
```cpp
|
||
bool CanLoad(const Containers::String& path) const override
|
||
```
|
||
|
||
检查指定的文件路径是否可以被此加载器处理。
|
||
|
||
**参数**:
|
||
- `path`: 文件路径
|
||
|
||
**返回值**: 如果文件扩展名受支持返回 `true`,否则返回 `false`。
|
||
|
||
---
|
||
|
||
### Load
|
||
|
||
```cpp
|
||
LoadResult Load(const Containers::String& path, const ImportSettings* settings = nullptr) override
|
||
```
|
||
|
||
从指定路径加载纹理资源。
|
||
|
||
**参数**:
|
||
- `path`: 纹理文件路径
|
||
- `settings`: 导入设置(可选,当前未使用)
|
||
|
||
**返回值**: 加载成功返回包含 `Texture` 指针的 `LoadResult`;失败返回包含错误信息的 `LoadResult`。
|
||
|
||
**实现说明**: 当前实现仅读取文件数据和创建基础 `Texture` 对象,不解析实际的图像格式数据。
|
||
|
||
---
|
||
|
||
### GetDefaultSettings
|
||
|
||
```cpp
|
||
ImportSettings* GetDefaultSettings() const override
|
||
```
|
||
|
||
获取默认的纹理导入设置。
|
||
|
||
**返回值**: `nullptr`(当前无默认设置)
|
||
|
||
## 使用示例
|
||
|
||
```cpp
|
||
#include <XCEngine/Resources/TextureLoader.h>
|
||
#include <XCEngine/Resources/ResourceManager.h>
|
||
|
||
using namespace XCEngine::Resources;
|
||
|
||
// 通过 ResourceManager 加载纹理
|
||
ResourceHandle<Texture> tex = ResourceManager::Get().Load<Texture>("textures/player.png");
|
||
|
||
// 检查加载器是否支持特定格式
|
||
TextureLoader loader;
|
||
if (loader.CanLoad("assets/image.dds")) {
|
||
// 可以加载 DDS 格式
|
||
}
|
||
```
|
||
|
||
## 相关文档
|
||
|
||
- [Texture](../texture/texture.md) - 纹理资源类
|
||
- [IResourceLoader](../iloader/iloader.md) - 资源加载器基类
|
||
- [ResourceManager](../resourcemanager/resourcemanager.md) - 资源管理器
|
||
- [Resources 总览](../resources.md) - 返回模块总览
|
||
|
||
## 实现说明
|
||
|
||
**注意**: `Load()` 方法当前为示例实现,不解析 PNG/JPG 等格式的实际图像像素数据,仅创建空 `Texture` 对象并设置基础资源参数(name、path、guid、memorySize)。实际图像数据解析需要在后续版本中实现。
|