Files
XCEngine/docs/api/resources/texture-loader/index.md

142 lines
3.6 KiB
Markdown
Raw Normal View History

2026-03-20 02:35:35 +08:00
# 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](get-resource-type.md) | 返回 `ResourceType::Texture` |
| [GetSupportedExtensions](get-supported-extensions.md) | 获取支持的扩展名列表 |
| [CanLoad](can-load.md) | 检查是否支持加载指定路径的纹理 |
| [Load](load.md) | 加载纹理资源 |
| [GetDefaultSettings](get-default-settings.md) | 获取默认导入设置 |
2026-03-20 02:35:35 +08:00
### 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。实际图像数据解析需要在后续版本中实现。