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