Files
XCEngine/docs/api/rhi/buffer/buffer.md
ssdfasd a9f882f233 docs: 修正 API 文档准确性 (第二轮检查)
修复的问题:
- math: 修复 Quaternion::Normalize 链接错误
- containers: HashMap 迭代器示例使用不存在的 cbegin/cend,删除冗余构造函数声明
- core: RefCounted 析构函数访问级别修正 (protected)
- debug: LogLevelToString 示例返回值大小写修正
- memory: 修正 LinearAllocator::Reallocate 返回 nullptr,ProxyAllocator 统计描述,头文件路径 IAllocator.h -> Allocator.h
- resources: Texture::Create mipLevels 参数描述修正
- rhi: 修复多处链接错误,新增缺失的方法文档
- threading: TaskSystem 配置项未实现状态标注,Wait 方法空实现标注
2026-03-19 00:31:14 +08:00

2.8 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 深度读取
CopySrc 复制源
CopyDst 复制目标
Present 呈现状态

使用示例

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

相关文档