3. 资源加载¶
警告
目前32位平台编译的程序可能不支持2G以上文件加载。
3.1. 设定资源文件¶
DuiMini目前支持3种资源加载方式,默认不加载资源:
3.1.1. 普通文件¶
加载普通文件,参数为资源文件根目录。
UIResource::SetResMode(kRT_File, "uires");
- 设定当前目录下的
uires
目录为资源文件根目录。 - 文件解析时路径为相对根目录路径,如
uires/1.txt
只需传入1.txt
即可。
3.1.2. 打包文件¶
可以将所有资源文件打包为zip格式的压缩包加载。
UIResource::SetResMode(kRT_Package, "res.zip");
- 加载当前目录下的
res.zip
文件。 - 文件解析时路径为压缩包内的路径,如
res.zip
中uires/1.txt
只需传入uires/1.txt
即可。
3.2. 解析文件¶
解析文件需要通过资源解析器获取,您可自定义资源解析器,只需继承自 IUILoadFile
类即可。
危险
资源加载返回智能指针,系统释放时会调用特定函数,请不要手动释放!
3.2.1. 普通文件解析¶
auto res = UIResource::LoadRes<UIRawLoader>("1.txt");
res->GetFile(); // 文件数据指针
test->GetFileSize(); // 文件大小
3.2.2. 自定义解析器¶
class CustomLoader : public IUILoadFile {
public:
bool LoadFile(const void* buffer, long size) override {
// do something, DO NOT free buffer!
return true; // true for success
}
};
使用:
auto res = UIResource::LoadRes<CustomLoader>("1.txt");