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
|
|
|
|
# OpenGLRenderTargetView
|
|
|
|
|
|
|
|
|
|
|
|
**命名空间**: `XCEngine::RHI`
|
|
|
|
|
|
|
2026-03-20 02:35:45 +08:00
|
|
|
|
**描述**: OpenGL 渲染目标视图实现,用于将纹理绑定为渲染目标进行渲染输出。
|
|
|
|
|
|
|
|
|
|
|
|
## 类型定义
|
|
|
|
|
|
|
|
|
|
|
|
### RenderTargetType
|
|
|
|
|
|
|
|
|
|
|
|
```cpp
|
|
|
|
|
|
enum class RenderTargetType {
|
|
|
|
|
|
Texture2D, // 2D 纹理
|
|
|
|
|
|
Texture2DArray, // 2D 纹理数组
|
|
|
|
|
|
Texture3D, // 3D 纹理
|
|
|
|
|
|
TextureCube, // 立方体贴图
|
|
|
|
|
|
TextureCubeArray // 立方体贴图数组
|
|
|
|
|
|
};
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### OpenGLRenderTargetViewDesc
|
|
|
|
|
|
|
|
|
|
|
|
```cpp
|
|
|
|
|
|
struct OpenGLRenderTargetViewDesc {
|
|
|
|
|
|
RenderTargetType type = RenderTargetType::Texture2D; // 渲染目标类型
|
|
|
|
|
|
int mipLevel = 0; // Mip 级别
|
|
|
|
|
|
int baseArraySlice = 0; // 数组起始索引
|
|
|
|
|
|
int arraySize = 1; // 数组大小
|
|
|
|
|
|
int layer = 0; // 层级(用于 3D 纹理)
|
|
|
|
|
|
uint32_t format = 0; // 格式
|
|
|
|
|
|
};
|
|
|
|
|
|
```
|
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
|
|
|
|
|
2026-03-19 02:01:18 +08:00
|
|
|
|
## 公共方法
|
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
|
|
|
|
|
2026-03-19 02:01:18 +08:00
|
|
|
|
| 方法 | 描述 |
|
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
|
|
|
|
|------|------|
|
2026-03-20 02:35:45 +08:00
|
|
|
|
| [`Initialize`](initialize.md) | 初始化渲染目标视图(2 个重载) |
|
2026-03-19 02:01:18 +08:00
|
|
|
|
| [`InitializeCubemap`](initialize-cubemap.md) | 初始化立方体贴图渲染目标视图 |
|
|
|
|
|
|
| [`Shutdown`](shutdown.md) | 关闭渲染目标视图 |
|
2026-03-20 02:35:45 +08:00
|
|
|
|
| [`Bind`](bind.md) | 绑定渲染目标视图(2 个重载) |
|
2026-03-19 02:01:18 +08:00
|
|
|
|
| [`Unbind`](unbind.md) | 解绑渲染目标视图 |
|
2026-03-20 02:35:45 +08:00
|
|
|
|
| [`Clear`](clear.md) | 清除(2 个重载) |
|
2026-03-19 02:01:18 +08:00
|
|
|
|
| [`GetFramebuffer`](get-framebuffer.md) | 获取帧缓冲 |
|
|
|
|
|
|
| [`GetTexture`](get-texture.md) | 获取纹理 |
|
|
|
|
|
|
| [`GetMipLevel`](get-mip-level.md) | 获取 Mip 级别 |
|
|
|
|
|
|
| [`GetWidth`](get-size.md) | 获取宽度 |
|
2026-03-20 02:35:45 +08:00
|
|
|
|
| [`GetHeight`](get-height.md) | 获取高度 |
|
2026-03-19 02:01:18 +08:00
|
|
|
|
| [`BindFramebuffer`](bind-framebuffer.md) | 绑定帧缓冲 |
|
|
|
|
|
|
| [`UnbindFramebuffer`](unbind-framebuffer.md) | 解绑帧缓冲 |
|
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
|
|
|
|
|
2026-03-20 02:35:45 +08:00
|
|
|
|
## 使用示例
|
|
|
|
|
|
|
|
|
|
|
|
```cpp
|
|
|
|
|
|
#include "XCEngine/RHI/OpenGL/OpenGLRenderTargetView.h"
|
|
|
|
|
|
|
|
|
|
|
|
void RenderToTexture() {
|
|
|
|
|
|
OpenGLRenderTargetView rtv;
|
|
|
|
|
|
|
|
|
|
|
|
// 初始化为 2D 纹理渲染目标
|
|
|
|
|
|
if (rtv.Initialize(textureID, 0)) {
|
|
|
|
|
|
rtv.Bind();
|
|
|
|
|
|
rtv.Clear(0.0f, 0.0f, 0.0f, 1.0f);
|
|
|
|
|
|
// 执行渲染...
|
|
|
|
|
|
rtv.Unbind();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
rtv.Shutdown();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void RenderToCubemap() {
|
|
|
|
|
|
OpenGLRenderTargetView rtv;
|
|
|
|
|
|
|
|
|
|
|
|
// 初始化为立方体贴图的第一面
|
|
|
|
|
|
if (rtv.InitializeCubemap(cubemapID, 0, 0)) {
|
|
|
|
|
|
rtv.Bind();
|
|
|
|
|
|
rtv.Clear(0.0f, 0.0f, 0.0f, 1.0f);
|
|
|
|
|
|
// 执行渲染...
|
|
|
|
|
|
rtv.Unbind();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
rtv.Shutdown();
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
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
|
|
|
|
## 相关文档
|
|
|
|
|
|
|
|
|
|
|
|
- [OpenGL 后端总览](../overview.md)
|