Files
XCEngine/docs/api/rhi/buffer/buffer.md
ssdfasd 82cf147817 docs: 修正 API 文档准确性 (第四轮检查)
修复问题:
- containers: HashMap 实现描述修正
- debug: XE_LOG 宏参数顺序修正
- memory: ProxyAllocator 统计示例修正, PoolAllocator allocate size 检查描述
- resources: ResourceManager 缺失 UnloadGroup 方法
- rhi: D3D12 格式枚举名称修正, Texture Format 枚举补全, ResourceStates 补充
- threading: TaskGroup GetProgress/Wait/Cancel 实现限制说明
2026-03-19 00:43:16 +08:00

3.0 KiB

RHIBuffer

命名空间: XCEngine::RHI

类型: class (abstract)

描述: GPU 缓冲区资源抽象接口,用于管理顶点缓冲、索引缓冲、常量缓冲等 GPU 内存资源。

概述

RHIBuffer 封装了 GPU 缓冲区的创建、数据上传、状态管理等操作。支持多种缓冲区类型,包括顶点缓冲、索引缓冲、常量缓冲等。

公共方法

数据操作

方法 文档
Map 详细文档
Unmap 详细文档
SetData 详细文档

属性访问

方法 文档
GetSize 详细文档
GetBufferType 详细文档
SetBufferType 详细文档
GetStride 详细文档
SetStride 详细文档

状态管理

方法 文档
GetState 详细文档
SetState 详细文档

生命周期

方法 文档
Shutdown 详细文档

其他

方法 文档
GetNativeHandle 详细文档
GetName 详细文档
SetName 详细文档

缓冲区类型 (BufferType)

枚举值 描述
BufferType::Vertex 顶点缓冲
BufferType::Index 索引缓冲
BufferType::Constant 常量缓冲 (Constant Buffer)
BufferType::ReadBack 回读缓冲(用于 CPU 读取 GPU 数据)
BufferType::Indirect 间接执行缓冲
BufferType::RaytracingAccelerationStructure 光线追踪加速结构
BufferType::ShaderBindingTable 光线追踪着色器绑定表

资源状态 (ResourceStates)

状态 描述
Common 默认状态
VertexAndConstantBuffer 顶点/常量缓冲
IndexBuffer 索引缓冲
RenderTarget 渲染目标
UnorderedAccess 无序访问
DepthWrite 深度写入
DepthRead 深度读取
NonPixelShaderResource 非像素着色器资源
PixelShaderResource 像素着色器资源
CopySrc 复制源
CopyDst 复制目标
Present 呈现状态
GenericRead 通用读取

使用示例

BufferDesc desc;
desc.size = sizeof(Vertex) * vertexCount;
desc.stride = sizeof(Vertex);
desc.bufferType = (uint32_t)BufferType::Vertex;
desc.flags = 0;

RHIBuffer* vertexBuffer = device->CreateBuffer(desc);

void* mapped = vertexBuffer->Map();
memcpy(mapped, vertexData, desc.size);
vertexBuffer->Unmap();

vertexBuffer->SetState(ResourceStates::VertexAndConstantBuffer);
vertexBuffer->Shutdown();

相关文档