1.4 KiB
1.4 KiB
RenderSurface::GetRenderAreaWidth
返回当前生效 render area 的宽度。
uint32_t GetRenderAreaWidth() const;
返回值
- 返回
max(GetRenderArea().width, 0)的无符号结果。
当前语义
- 这里没有单独缓存宽度;每次都会先调用 GetRenderArea 再取
width。 - 如果未启用自定义 render area,则结果等于 surface 的逻辑宽度。
- 如果自定义 render area 在设置时或 resize 后被 clamp 成空区域,这里会返回
0。
调用方影响
CameraRenderer::Render()会在宽度或高度为0时直接拒绝本次渲染。ObjectIdRenderRequest::IsValid()也要求 render area 宽度大于0,否则 object-id pass 会被视为无效请求。- 因为这是从 GetRenderArea 动态推导出来的,所以它反映的是“当前实际可绘制宽度”,而不是调用 SetRenderArea 时的原始输入值。
测试覆盖
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 共同解析。