修复问题: - containers: HashMap include 路径修复 - core: RefCounted 析构函数访问级别, Event::begin/end 返回值说明 - memory: LinearAllocator::GetMarker 返回偏移量非指针 - resources: LoadAsync 示例使用不存在的模板方法 - rhi: OpenGL 链接错误, ShaderType 枚举缺失8个类型, 链接修复 - threading: SpinLock STL 兼容方法说明, Mutex const 方法说明
2.7 KiB
2.7 KiB
Resources 模块概览
命名空间: XCEngine::Resources
类型: module
描述: XCEngine 的资源管理系统,提供资源的异步加载、缓存和依赖管理。
概述
Resources 模块提供了一套完整的资源管理解决方案,支持同步和异步加载、资源缓存、依赖图管理等功能。
模块内容
核心组件
| 组件 | 文件 | 描述 |
|---|---|---|
| IResource | IResource.h |
资源基类 |
| ResourceHandle | ResourceHandle.h |
资源句柄模板 |
| IResourceLoader | IResourceLoader.h |
资源加载器接口 |
| ResourceManager | ResourceManager.h |
资源管理器 |
| ResourceCache | ResourceCache.h |
资源缓存 |
| AsyncLoader | AsyncLoader.h |
异步加载器 |
| ResourceDependencyGraph | ResourceDependencyGraph.h |
依赖图 |
| ResourceTypes | ResourceTypes.h |
资源类型定义 |
具体资源类型
| 组件 | 文件 | 描述 |
|---|---|---|
| Texture | Texture.h |
纹理资源 |
| Mesh | Mesh.h |
网格资源 |
| Material | Material.h |
材质资源 |
| Shader | Shader.h |
着色器资源 |
| AudioClip | AudioClip.h |
音频资源 |
资源类型
| 类型 | 描述 |
|---|---|
Texture |
纹理资源 |
Mesh |
网格/模型资源 |
Material |
材质资源 |
Shader |
着色器资源 |
AudioClip |
音频资源 |
Binary |
二进制数据 |
AnimationClip |
动画片段 |
Skeleton |
骨骼 |
Font |
字体 |
ParticleSystem |
粒子系统 |
Scene |
场景 |
Prefab |
预制体 |
使用示例
#include <XCEngine/Resources/ResourceManager.h>
// 初始化资源管理器
ResourceManager::Get().Initialize();
ResourceManager::Get().SetResourceRoot("resources/");
// 同步加载资源
ResourceHandle<Texture> tex = ResourceManager::Get().Load<Texture>("textures/player.png");
ResourceHandle<Mesh> mesh = ResourceManager::Get().Load<Mesh>("models/player.fbx");
ResourceHandle<Material> mat = ResourceManager::Get().Load<Material>("materials/player.mat");
// 异步加载
ResourceManager::Get().LoadAsync("textures/terrain.png", ResourceType::Texture,
[](LoadResult result) {
if (result.success) {
ResourceHandle<Texture> tex(result.resource);
// 加载完成回调
}
});
// 释放资源
tex.Reset();
mesh.Reset();
相关文档
- RHI 模块 - GPU 资源创建