docs: update RHI API docs
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
# OpenGLBuffer::BindBase
|
||||
|
||||
```cpp
|
||||
void BindBase(unsigned int target, unsigned int index) const
|
||||
void BindBase(unsigned int target, unsigned int index) const;
|
||||
```
|
||||
|
||||
将缓冲区绑定到固定的 binding point。
|
||||
|
||||
@@ -11,13 +11,13 @@
|
||||
| [`Initialize`](initialize.md) | 初始化缓冲区 |
|
||||
| [`InitializeVertexBuffer`](initialize-vertex-buffer.md) | 初始化顶点缓冲 |
|
||||
| [`InitializeIndexBuffer`](initialize-index-buffer.md) | 初始化索引缓冲 |
|
||||
| [`Shutdown`](../../../threading/task-system/shutdown.md) | 关闭缓冲区 |
|
||||
| [`Shutdown`](../../buffer/shutdown.md) | 关闭缓冲区 |
|
||||
| [`Bind`](bind.md) | 绑定缓冲区 |
|
||||
| [`Unbind`](unbind.md) | 解绑缓冲区 |
|
||||
| [`BindBase`](bind-base.md) | 绑定到基准点 |
|
||||
| [`Map`](../../buffer/map.md) | 映射缓冲区 |
|
||||
| [`Unmap`](../../buffer/unmap.md) | 取消映射 |
|
||||
| [`SetData`](../../buffer/set-data.md) | 设置数据 |
|
||||
| [`Map`](map.md) | 映射缓冲区 |
|
||||
| [`Unmap`](unmap.md) | 取消映射 |
|
||||
| [`SetData`](set-data.md) | 设置数据 |
|
||||
| [`GetID`](get-id.md) | 获取 OpenGL 缓冲 ID |
|
||||
| [`GetSize`](../../buffer/get-size.md) | 获取缓冲区大小 |
|
||||
| [`GetType`](get-type.md) | 获取缓冲区类型 |
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# OpenGLBuffer::GetID
|
||||
|
||||
```cpp
|
||||
unsigned int GetID() const
|
||||
unsigned int GetID() const;
|
||||
```
|
||||
|
||||
获取 OpenGL buffer 的 GLuint ID。
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# OpenGLBuffer::IsDynamic
|
||||
|
||||
```cpp
|
||||
bool IsDynamic() const
|
||||
bool IsDynamic() const;
|
||||
```
|
||||
|
||||
判断缓冲区是否为动态缓冲区。
|
||||
|
||||
27
docs/api/rhi/opengl/buffer/map.md
Normal file
27
docs/api/rhi/opengl/buffer/map.md
Normal file
@@ -0,0 +1,27 @@
|
||||
# OpenGLBuffer::Map
|
||||
|
||||
```cpp
|
||||
void* Map() override;
|
||||
```
|
||||
|
||||
映射缓冲区到客户端地址空间,使用 `GL_WRITE_ONLY` 访问模式。
|
||||
|
||||
**返回:** 指向缓冲区数据的指针
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
void* data = buffer.Map();
|
||||
if (data) {
|
||||
memcpy(data, vertices, size);
|
||||
buffer.Unmap();
|
||||
}
|
||||
```
|
||||
|
||||
**注意:** 此方法以 `GL_WRITE_ONLY` 模式映射缓冲区,适用于写入操作。
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [OpenGLBuffer 总览](buffer.md) - 返回类总览
|
||||
- [Unmap](unmap.md) - 取消映射缓冲区
|
||||
- [SetData](set-data.md) - 设置缓冲区数据
|
||||
30
docs/api/rhi/opengl/buffer/set-data.md
Normal file
30
docs/api/rhi/opengl/buffer/set-data.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# OpenGLBuffer::SetData
|
||||
|
||||
```cpp
|
||||
void SetData(const void* data, size_t size, size_t offset = 0) override;
|
||||
```
|
||||
|
||||
设置缓冲区数据。支持部分更新:当 `offset == 0` 且 `size` 等于缓冲区大小时,使用 `glBufferData` 替换整个缓冲区;否则使用 `glBufferSubData` 进行部分更新。
|
||||
|
||||
**参数:**
|
||||
- `data` - 要写入的数据指针
|
||||
- `size` - 数据大小(字节)
|
||||
- `offset` - 缓冲区内的偏移量(默认 0)
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
// 更新整个缓冲区
|
||||
buffer.SetData(vertices, sizeof(vertices));
|
||||
|
||||
// 部分更新
|
||||
buffer.SetData(newVertices, sizeof(newVertices), sizeof(vertices));
|
||||
```
|
||||
|
||||
**注意:** 动态缓冲区使用 `GL_DYNAMIC_DRAW`,静态缓冲区使用 `GL_STATIC_DRAW`。
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [OpenGLBuffer 总览](buffer.md) - 返回类总览
|
||||
- [Map](map.md) - 映射缓冲区方式写入
|
||||
- [Initialize](initialize.md) - 初始化缓冲区
|
||||
22
docs/api/rhi/opengl/buffer/unmap.md
Normal file
22
docs/api/rhi/opengl/buffer/unmap.md
Normal file
@@ -0,0 +1,22 @@
|
||||
# OpenGLBuffer::Unmap
|
||||
|
||||
```cpp
|
||||
void Unmap() override;
|
||||
```
|
||||
|
||||
取消映射缓冲区,使数据对 GPU 可见。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
void* data = buffer.Map();
|
||||
if (data) {
|
||||
memcpy(data, vertices, size);
|
||||
buffer.Unmap();
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [OpenGLBuffer 总览](buffer.md) - 返回类总览
|
||||
- [Map](map.md) - 映射缓冲区到客户端地址空间
|
||||
Reference in New Issue
Block a user