40 lines
939 B
C++
40 lines
939 B
C++
#pragma once
|
|
|
|
#include <assets/asset_loader.h>
|
|
#include <renderer/texture.h>
|
|
|
|
namespace extra2d {
|
|
|
|
/**
|
|
* @brief 纹理资源加载器
|
|
*
|
|
* 支持从文件或内存加载纹理资源
|
|
*/
|
|
class TextureLoader : public AssetLoader<Texture> {
|
|
public:
|
|
/**
|
|
* @brief 从文件加载纹理
|
|
* @param path 文件路径
|
|
* @return 纹理指针,失败返回 nullptr
|
|
*/
|
|
Ptr<Texture> load(const std::string& path) override;
|
|
|
|
/**
|
|
* @brief 从内存加载纹理
|
|
* @param data 图像数据
|
|
* @param size 数据大小
|
|
* @return 纹理指针,失败返回 nullptr
|
|
*/
|
|
Ptr<Texture> loadFromMemory(const uint8_t* data, size_t size) override;
|
|
|
|
/**
|
|
* @brief 获取支持的文件扩展名
|
|
* @return 扩展名列表
|
|
*/
|
|
std::vector<std::string> getExtensions() const override {
|
|
return {".png", ".jpg", ".jpeg", ".bmp", ".tga"};
|
|
}
|
|
};
|
|
|
|
} // namespace extra2d
|