docs: update resources API docs

This commit is contained in:
2026-03-20 02:35:35 +08:00
parent fd792b7df1
commit ea756c0177
314 changed files with 9439 additions and 1360 deletions

View File

@@ -0,0 +1,45 @@
# IResourceLoader::LoadAsync
```cpp
virtual void LoadAsync(const Containers::String& path,
const ImportSettings* settings,
std::function<void(LoadResult)> callback)
```
异步加载资源。虚方法,提供默认实现(直接在调用线程执行 Load 然后调用回调)。子类可重写以提供真正的异步实现。
**参数:**
- `path` - 资源文件路径
- `settings` - 导入设置
- `callback` - 加载完成后的回调函数,接收 `LoadResult` 参数
**线程安全:** ❌(默认实现同步执行,子类重写时需确保线程安全)
**示例:**
```cpp
// 使用默认实现的异步加载
ResourceManager::Get().LoadAsync<Texture>("textures/player.png",
nullptr, [](LoadResult result) {
if (result.success) {
Texture* tex = static_cast<Texture*>(result.resource);
// 使用纹理
}
});
// 子类重写提供真正的异步实现
class AsyncTextureLoader : public IResourceLoader {
void LoadAsync(const Containers::String& path,
const ImportSettings* settings,
std::function<void(LoadResult)> callback) override {
std::thread([this, path, settings, callback]() {
LoadResult result = Load(path, settings);
callback(result);
}).detach();
}
};
```
## 相关文档
- [IResourceLoader 总览](resource-loader.md) - 返回类总览