Files
XCEngine/docs/api/resources/resources.md
ssdfasd 870cb3116e docs: 修正 API 文档准确性 (第三轮检查)
修复问题:
- containers: HashMap include 路径修复
- core: RefCounted 析构函数访问级别, Event::begin/end 返回值说明
- memory: LinearAllocator::GetMarker 返回偏移量非指针
- resources: LoadAsync 示例使用不存在的模板方法
- rhi: OpenGL 链接错误, ShaderType 枚举缺失8个类型, 链接修复
- threading: SpinLock STL 兼容方法说明, Mutex const 方法说明
2026-03-19 00:35:26 +08:00

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();

相关文档