3.5 KiB
3.5 KiB
TextureLoader
命名空间: XCEngine::Resources
类型: class
描述: 纹理资源加载器,负责从文件加载纹理资源。
继承自: IResourceLoader
概述
TextureLoader 是 XCEngine 中的纹理资源加载器实现类,继承自 IResourceLoader。它支持从多种图像格式加载纹理数据,包括 PNG、JPG、TGA、BMP、GIF、HDR 和 DDS。
头文件
#include <XCEngine/Resources/TextureLoader.h>
支持的格式
| 扩展名 | 描述 |
|---|---|
png |
PNG 图像 |
jpg / jpeg |
JPEG 图像 |
tga |
TGA 图像 |
bmp |
BMP 图像 |
gif |
GIF 图像 |
hdr |
HDR 图像 |
dds |
DDS 压缩纹理 |
公共方法
| 方法 | 描述 |
|---|---|
| TextureLoader | 构造函数 |
| ~TextureLoader | 析构函数 |
GetResourceType() |
返回 ResourceType::Texture |
GetSupportedExtensions() |
获取支持的扩展名列表 |
CanLoad() |
检查是否支持加载指定路径的纹理 |
Load() |
加载纹理资源 |
GetDefaultSettings() |
获取默认导入设置 |
GetResourceType
ResourceType GetResourceType() const override
返回资源的类型标识。
返回值: ResourceType::Texture
GetSupportedExtensions
Containers::Array<Containers::String> GetSupportedExtensions() const override
返回所有支持的纹理文件扩展名列表。
返回值: 包含所有支持扩展名的字符串数组。
支持的扩展名: png, jpg, jpeg, tga, bmp, gif, hdr, dds
CanLoad
bool CanLoad(const Containers::String& path) const override
检查指定的文件路径是否可以被此加载器处理。
参数:
path: 文件路径
返回值: 如果文件扩展名受支持返回 true,否则返回 false。
Load
LoadResult Load(const Containers::String& path, const ImportSettings* settings = nullptr) override
从指定路径加载纹理资源。
参数:
path: 纹理文件路径settings: 导入设置(可选,当前未使用)
返回值: 加载成功返回包含 Texture 指针的 LoadResult;失败返回包含错误信息的 LoadResult。
实现说明: 当前实现仅读取文件数据和创建基础 Texture 对象,不解析实际的图像格式数据。
GetDefaultSettings
ImportSettings* GetDefaultSettings() const override
获取默认的纹理导入设置。
返回值: nullptr(当前无默认设置)
使用示例
#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 - 纹理资源类
- IResourceLoader - 资源加载器基类
- ResourceManager - 资源管理器
- Resources 总览 - 返回模块总览
实现说明
注意: Load() 方法当前为示例实现,不解析 PNG/JPG 等格式的实际图像像素数据,仅创建空 Texture 对象并设置基础资源参数(name、path、guid、memorySize)。实际图像数据解析需要在后续版本中实现。