32 lines
1.2 KiB
Markdown
32 lines
1.2 KiB
Markdown
# RenderSurface::IsAutoTransitionEnabled
|
|
|
|
查询当前是否允许渲染路径自动处理颜色附件状态切换。
|
|
|
|
```cpp
|
|
bool IsAutoTransitionEnabled() const;
|
|
```
|
|
|
|
## 返回值
|
|
|
|
- 返回内部保存的 `m_autoTransition`。
|
|
|
|
## 当前语义
|
|
|
|
- 当返回 `true` 时,`BuiltinForwardPipeline::Render()` 和 `BuiltinObjectIdPass::Render()` 会按
|
|
`colorStateBefore -> RenderTarget -> colorStateAfter`
|
|
的方式自动为颜色附件插入 barrier。
|
|
- 当返回 `false` 时,这两条路径不会替调用方做上述颜色状态切换。
|
|
- 这个开关只描述颜色附件,不包含深度附件状态。
|
|
|
|
## 当前实现边界
|
|
|
|
- 它不是对所有 pass 的全局强约束。`SceneViewportEditorOverlayPassRenderer::Render()` 会显式读取 [GetColorStateAfter](GetColorStateAfter.md),自己从该状态切到 `RenderTarget` 再切回去,而不是依赖这个布尔开关。
|
|
- 因此这里更像“供部分内建渲染路径采纳的策略位”,不是统一的 RHI 状态机。
|
|
|
|
## 相关文档
|
|
|
|
- [RenderSurface](RenderSurface.md)
|
|
- [SetAutoTransitionEnabled](SetAutoTransitionEnabled.md)
|
|
- [GetColorStateBefore](GetColorStateBefore.md)
|
|
- [GetColorStateAfter](GetColorStateAfter.md)
|