- 重组文档目录结构: 每个模块的概述页移动到模块子目录 - 重命名 index.md 为 main.md - 修正所有模块文档中的错误: - math: FromEuler→FromEulerAngles, TransformDirection 包含缩放, Box 是 OBB, Color::ToRGBA 格式 - containers: 新增 operator==/!= 文档, 补充 std::hash DJB 算法细节 - core: 修复 types 链接错误 - debug: LogLevelToString 返回大写, timestamp 是秒, Profiler 空实现标注, Windows API vs ANSI - memory: 修复头文件路径, malloc vs operator new, 新增方法文档 - resources: 修复 Shader/Texture 链接错误 - threading: TaskSystem::Wait 空实现标注, ReadWriteLock 重入描述, LambdaTask 链接 - 验证: fix_links.py 确认 0 个断裂引用
2.6 KiB
2.6 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<Texture>("textures/terrain.png",
[](ResourceHandle<Texture> tex) {
// 加载完成回调
});
// 释放资源
tex.Reset();
mesh.Reset();
相关文档
- RHI 模块 - GPU 资源创建