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.
1.7 KiB
1.7 KiB
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);
相关文档
- OpenGLDevice - 类总览
- OpenGLBuffer - OpenGL 缓冲区实现