Files
XCEngine/docs/api/rhi/buffer/buffer.md
ssdfasd dc850d7739 docs: 重构 API 文档结构并修正源码准确性
- 重组文档目录结构: 每个模块的概述页移动到模块子目录
- 重命名 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 个断裂引用
2026-03-19 00:22:30 +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();

相关文档