Files
XCEngine/docs/api/XCEngine/Rendering/RenderSurface/GetRenderAreaWidth.md

36 lines
1.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# RenderSurface::GetRenderAreaWidth
返回当前生效 render area 的宽度。
```cpp
uint32_t GetRenderAreaWidth() const;
```
## 返回值
- 返回 `max(GetRenderArea().width, 0)` 的无符号结果。
## 当前语义
- 这里没有单独缓存宽度;每次都会先调用 [GetRenderArea](GetRenderArea.md) 再取 `width`
- 如果未启用自定义 render area则结果等于 surface 的逻辑宽度。
- 如果自定义 render area 在设置时或 resize 后被 clamp 成空区域,这里会返回 `0`
## 调用方影响
- `CameraRenderer::Render()` 会在宽度或高度为 `0` 时直接拒绝本次渲染。
- `ObjectIdRenderRequest::IsValid()` 也要求 render area 宽度大于 `0`,否则 object-id pass 会被视为无效请求。
- 因为这是从 [GetRenderArea](GetRenderArea.md) 动态推导出来的,所以它反映的是“当前实际可绘制宽度”,而不是调用 [SetRenderArea](SetRenderArea.md) 时的原始输入值。
## 测试覆盖
- `tests/Rendering/unit/test_camera_scene_renderer.cpp` 验证了相机渲染使用的 viewport 宽度来自 surface 的最终 render area。
- `tests/Rendering/unit/test_scene_render_request_utils.cpp` 验证了嵌套 viewport 计算后render area 宽度会按父区域和相机 viewport 共同解析。
## 相关文档
- [RenderSurface](RenderSurface.md)
- [GetRenderArea](GetRenderArea.md)
- [GetRenderAreaHeight](GetRenderAreaHeight.md)
- [SetRenderArea](SetRenderArea.md)