docs: update RHI API docs

This commit is contained in:
2026-03-20 02:35:45 +08:00
parent ea756c0177
commit 070b444f8f
501 changed files with 13493 additions and 2022 deletions

View File

@@ -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。

View File

@@ -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) | 获取缓冲区类型 |

View File

@@ -1,7 +1,7 @@
# OpenGLBuffer::GetID
```cpp
unsigned int GetID() const
unsigned int GetID() const;
```
获取 OpenGL buffer 的 GLuint ID。

View File

@@ -1,7 +1,7 @@
# OpenGLBuffer::IsDynamic
```cpp
bool IsDynamic() const
bool IsDynamic() const;
```
判断缓冲区是否为动态缓冲区。

View 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) - 设置缓冲区数据

View 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) - 初始化缓冲区

View 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) - 映射缓冲区到客户端地址空间