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

1.4 KiB
Raw Blame History

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 共同解析。

相关文档