2026-03-26 21:32:43 +08:00
|
|
|
# RenderContext
|
|
|
|
|
|
|
|
|
|
**命名空间**: `XCEngine::Rendering`
|
|
|
|
|
|
|
|
|
|
**类型**: `struct`
|
|
|
|
|
|
|
|
|
|
**头文件**: `XCEngine/Rendering/RenderContext.h`
|
|
|
|
|
|
|
|
|
|
**描述**: 把当前渲染帧所需的 RHI 设备、命令列表、命令队列和后端类型打包成一个轻量上下文。
|
|
|
|
|
|
|
|
|
|
## 概述
|
|
|
|
|
|
|
|
|
|
`RenderContext` 的作用,是把“渲染执行阶段真正必需的底层对象”集中起来传给管线:
|
|
|
|
|
|
|
|
|
|
- `device`
|
|
|
|
|
- `commandList`
|
|
|
|
|
- `commandQueue`
|
|
|
|
|
- `backendType`
|
|
|
|
|
|
|
|
|
|
这种设计比让每个管线自己去全局查找 RHI 单例更健康,也更接近商业引擎常见的显式依赖传递风格。
|
|
|
|
|
|
|
|
|
|
## 字段
|
|
|
|
|
|
|
|
|
|
| 字段 | 类型 | 说明 |
|
|
|
|
|
|------|------|------|
|
|
|
|
|
| `device` | `RHI::RHIDevice*` | 用于创建管线资源和 GPU 资源。 |
|
|
|
|
|
| `commandList` | `RHI::RHICommandList*` | 当前帧实际记录 draw call 的命令列表。 |
|
|
|
|
|
| `commandQueue` | `RHI::RHICommandQueue*` | 提交命令列表的队列。 |
|
|
|
|
|
| `backendType` | `RHI::RHIType` | 当前后端类型,默认 `D3D12`。 |
|
|
|
|
|
|
|
|
|
|
## 当前实现边界
|
|
|
|
|
|
|
|
|
|
- 这是一个纯数据结构,不拥有这些 RHI 对象。
|
|
|
|
|
- 当前 [IsValid](IsValid.md) 只检查三个指针是否非空,不会验证它们是否来自同一个 backend。
|
|
|
|
|
- `backendType` 当前完全依赖调用方填写正确值。
|
|
|
|
|
|
|
|
|
|
## 公开方法
|
|
|
|
|
|
|
|
|
|
| 方法 | 说明 |
|
|
|
|
|
|------|------|
|
|
|
|
|
| [IsValid](IsValid.md) | 判断这份上下文是否具备最基础的渲染执行条件。 |
|
|
|
|
|
|
|
|
|
|
## 相关文档
|
|
|
|
|
|
|
|
|
|
- [当前模块](../Rendering.md)
|
|
|
|
|
- [RenderPipeline](../RenderPipeline/RenderPipeline.md)
|
2026-04-10 16:55:33 +08:00
|
|
|
- [SceneRenderer](../Execution/SceneRenderer/SceneRenderer.md)
|