Files
XCEngine/docs/api/rhi/opengl/device/create-buffer.md
ssdfasd b414bc5326 refactor(docs): Fix broken links across multiple modules
Fixed broken references:
- texture-import-settings: Fix 16 files referencing wrong overview filename
- math/rectint: Fix 9 method links (rectint-* → get*, contains, intersects)
- rhi/opengl/device: Fix 8 cross-references (opengl-* → */**)
- resources/mesh: Fix meshsection and vertexattribute links
- rhi/d3d12/sampler: Fix RHISampler reference path
- math/vector3: Fix projectonplane → project-on-plane
- rhi/opengl/command-list: Remove broken ClearFlag enum ref
- rhi/opengl/device: Create 2 new method docs (MakeContextCurrent, GetNativeContext)
- rhi/device: Fix device-info types reference

All 0 broken references remaining.
2026-03-26 02:41:00 +08:00

1.7 KiB
Raw Blame History

OpenGLDevice::CreateBuffer

RHIBuffer* CreateBuffer(const BufferDesc& desc) override

创建 OpenGL 缓冲区对象。

详细描述

根据 BufferDesc 创建一个 OpenGL 缓冲区对象。缓冲区类型映射:

BufferDesc.bufferType OpenGLBufferType
0 (默认) Vertex (顶点缓冲区)
1 Index (索引缓冲区)
2 Uniform (常量缓冲区/Uniform Buffer)

缓冲区类型

  • Vertex Buffer: 存储顶点属性数据位置、法线、UV 等)
  • Index Buffer: 存储顶点索引,用于索引绘制
  • Uniform Buffer: 存储着色器 uniforms 数据

参数

  • desc - 缓冲区描述符

BufferDesc 字段

字段 描述
bufferType 缓冲区类型 (0=顶点, 1=索引, 2=Uniform)
size 缓冲区大小(字节)

返回值

RHIBuffer* - 创建的缓冲区指针,失败返回 nullptr

注意事项

  • 当前实现创建的缓冲区初始数据为 nullptr(空缓冲区)
  • 缓冲区创建后可使用 OpenGLBuffer 的接口进行数据更新
  • 返回的缓冲区对象归调用者所有,需自行管理生命周期

示例

// 创建顶点缓冲区
BufferDesc vertexDesc;
vertexDesc.bufferType = 0; // Vertex
vertexDesc.size = sizeof(Vertex) * vertexCount;

RHIBuffer* vertexBuffer = device.CreateBuffer(vertexDesc);

// 创建索引缓冲区
BufferDesc indexDesc;
indexDesc.bufferType = 1; // Index
indexDesc.size = sizeof(uint32_t) * indexCount;

RHIBuffer* indexBuffer = device.CreateBuffer(indexDesc);

相关文档