36 lines
1.3 KiB
Markdown
36 lines
1.3 KiB
Markdown
# RenderSurface::GetRenderAreaHeight
|
||
|
||
返回当前生效 render area 的高度。
|
||
|
||
```cpp
|
||
uint32_t GetRenderAreaHeight() const;
|
||
```
|
||
|
||
## 返回值
|
||
|
||
- 返回 `max(GetRenderArea().height, 0)` 的无符号结果。
|
||
|
||
## 当前语义
|
||
|
||
- 该值不是独立存储字段,而是每次根据 [GetRenderArea](GetRenderArea.md) 的结果即时计算。
|
||
- 如果没有启用自定义 render area,则结果等于 surface 的逻辑高度。
|
||
- 如果 render area 经过 clamp 后高度变成 `0`,这里也会返回 `0`。
|
||
|
||
## 调用方影响
|
||
|
||
- `CameraRenderer::Render()` 会把高度为 `0` 的 surface 视为不可渲染输入。
|
||
- `ObjectIdRenderRequest::IsValid()` 同样要求这里大于 `0`,否则 object-id 路径不会被接受。
|
||
- 上层逻辑通常把 `GetRenderAreaWidth() / GetRenderAreaHeight()` 作为“本帧真实 viewport 尺寸”,而不是 surface 构造尺寸。
|
||
|
||
## 测试覆盖
|
||
|
||
- `tests/Rendering/unit/test_camera_scene_renderer.cpp` 验证了相机提交到 pipeline 的 viewport 高度来自最终 render area。
|
||
- `tests/Rendering/unit/test_scene_render_request_utils.cpp` 验证了父 surface render area 与相机 viewport 组合后,高度会按解析结果更新。
|
||
|
||
## 相关文档
|
||
|
||
- [RenderSurface](RenderSurface.md)
|
||
- [GetRenderArea](GetRenderArea.md)
|
||
- [GetRenderAreaWidth](GetRenderAreaWidth.md)
|
||
- [SetRenderArea](SetRenderArea.md)
|