83 lines
2.7 KiB
Markdown
83 lines
2.7 KiB
Markdown
# Resources 模块概览
|
|
|
|
**命名空间**: `XCEngine::Resources`
|
|
|
|
**类型**: `module`
|
|
|
|
**描述**: XCEngine 的资源管理系统,提供资源的异步加载、缓存和依赖管理。
|
|
|
|
## 概述
|
|
|
|
Resources 模块提供了一套完整的资源管理解决方案,支持同步和异步加载、资源缓存、依赖图管理等功能。
|
|
|
|
## 模块内容
|
|
|
|
### 核心组件
|
|
|
|
| 组件 | 文件 | 描述 |
|
|
|------|------|------|
|
|
| [IResource](./resources-iresource.md) | `IResource.h` | 资源基类 |
|
|
| [ResourceHandle](./resources-resourcehandle.md) | `ResourceHandle.h` | 资源句柄模板 |
|
|
| [IResourceLoader](./resources-iloader.md) | `IResourceLoader.h` | 资源加载器接口 |
|
|
| [ResourceManager](./resources-resourcemanager.md) | `ResourceManager.h` | 资源管理器 |
|
|
| [ResourceCache](./resources-resourcecache.md) | `ResourceCache.h` | 资源缓存 |
|
|
| [AsyncLoader](./resources-asyncloader.md) | `AsyncLoader.h` | 异步加载器 |
|
|
| [ResourceDependencyGraph](./resources-dependencygraph.md) | `ResourceDependencyGraph.h` | 依赖图 |
|
|
| [ResourceTypes](./resources-resourcetypes.md) | `ResourceTypes.h` | 资源类型定义 |
|
|
|
|
### 具体资源类型
|
|
|
|
| 组件 | 文件 | 描述 |
|
|
|------|------|------|
|
|
| [Texture](./resources-texture.md) | `Texture.h` | 纹理资源 |
|
|
| [Mesh](./resources-mesh.md) | `Mesh.h` | 网格资源 |
|
|
| [Material](./resources-material.md) | `Material.h` | 材质资源 |
|
|
| [Shader](./resources-shader.md) | `Shader.h` | 着色器资源 |
|
|
| [AudioClip](./resources-audioclip.md) | `AudioClip.h` | 音频资源 |
|
|
|
|
## 资源类型
|
|
|
|
| 类型 | 描述 |
|
|
|------|------|
|
|
| `Texture` | 纹理资源 |
|
|
| `Mesh` | 网格/模型资源 |
|
|
| `Material` | 材质资源 |
|
|
| `Shader` | 着色器资源 |
|
|
| `AudioClip` | 音频资源 |
|
|
| `Binary` | 二进制数据 |
|
|
| `AnimationClip` | 动画片段 |
|
|
| `Skeleton` | 骨骼 |
|
|
| `Font` | 字体 |
|
|
| `ParticleSystem` | 粒子系统 |
|
|
| `Scene` | 场景 |
|
|
| `Prefab` | 预制体 |
|
|
|
|
## 使用示例
|
|
|
|
```cpp
|
|
#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 模块](../rhi/rhi-overview.md) - GPU 资源创建
|