# TextureLoader **命名空间**: `XCEngine::Resources` **类型**: `class` **描述**: 纹理资源加载器,负责从文件加载纹理资源。 **继承自**: `IResourceLoader` ## 概述 `TextureLoader` 是 XCEngine 中的纹理资源加载器实现类,继承自 `IResourceLoader`。它支持从多种图像格式加载纹理数据,包括 PNG、JPG、TGA、BMP、GIF、HDR 和 DDS。 ## 头文件 ```cpp #include ``` ## 支持的格式 | 扩展名 | 描述 | |--------|------| | `png` | PNG 图像 | | `jpg` / `jpeg` | JPEG 图像 | | `tga` | TGA 图像 | | `bmp` | BMP 图像 | | `gif` | GIF 图像 | | `hdr` | HDR 图像 | | `dds` | DDS 压缩纹理 | ## 公共方法 | 方法 | 描述 | |------|------| | `ResourceType GetResourceType() const` | 返回 `ResourceType::Texture` | | `Containers::Array GetSupportedExtensions() const` | 获取支持的扩展名列表 | | `bool CanLoad(const Containers::String& path) const` | 检查是否支持加载指定路径的纹理 | | `LoadResult Load(const Containers::String& path, const ImportSettings* settings = nullptr)` | 加载纹理资源 | | `ImportSettings* GetDefaultSettings() const` | 获取默认导入设置 | ### GetResourceType ```cpp ResourceType GetResourceType() const override ``` 返回资源的类型标识。 **返回值**: `ResourceType::Texture` --- ### GetSupportedExtensions ```cpp Containers::Array 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 #include using namespace XCEngine::Resources; // 通过 ResourceManager 加载纹理 ResourceHandle tex = ResourceManager::Get().Load("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)。实际图像数据解析需要在后续版本中实现。