2026-03-26 21:32:43 +08:00
|
|
|
|
# RenderSurface::SetSize
|
|
|
|
|
|
|
2026-04-04 17:35:23 +08:00
|
|
|
|
更新 surface 的宽度和高度。
|
2026-03-26 21:32:43 +08:00
|
|
|
|
```cpp
|
|
|
|
|
|
void SetSize(uint32_t width, uint32_t height);
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 参数
|
|
|
|
|
|
|
2026-04-04 17:35:23 +08:00
|
|
|
|
- `width` - 新的 surface 宽度。
|
|
|
|
|
|
- `height` - 新的 surface 高度。
|
2026-03-26 21:32:43 +08:00
|
|
|
|
|
|
|
|
|
|
## 行为说明
|
|
|
|
|
|
|
2026-04-04 17:35:23 +08:00
|
|
|
|
当前实现会:
|
|
|
|
|
|
|
|
|
|
|
|
1. 直接覆盖内部 `m_width` 和 `m_height`。
|
|
|
|
|
|
2. 如果当前启用了自定义 render area,再把已保存的矩形重新 clamp 到新的尺寸范围内。
|
|
|
|
|
|
3. 不修改颜色附件、深度附件、clear-color override、自动状态切换开关和颜色状态前后值。
|
|
|
|
|
|
|
|
|
|
|
|
## 当前实现边界
|
2026-04-03 14:17:24 +08:00
|
|
|
|
|
2026-04-04 17:35:23 +08:00
|
|
|
|
- `SetSize()` 不会验证已绑定附件的真实尺寸是否与新 surface 一致。
|
|
|
|
|
|
- 如果尺寸改小,自定义 render area 可能被裁剪,甚至变成 `0 x 0` 的空区域。
|
|
|
|
|
|
- 如果没有启用自定义 render area,后续 [GetRenderArea](GetRenderArea.md) 会自动退回 `(0, 0, width, height)`。
|
2026-03-26 21:32:43 +08:00
|
|
|
|
|
|
|
|
|
|
## 相关文档
|
|
|
|
|
|
|
2026-04-04 17:35:23 +08:00
|
|
|
|
- [RenderSurface](RenderSurface.md)
|
2026-03-26 21:32:43 +08:00
|
|
|
|
- [GetWidth](GetWidth.md)
|
|
|
|
|
|
- [GetHeight](GetHeight.md)
|
2026-04-03 14:17:24 +08:00
|
|
|
|
- [SetRenderArea](SetRenderArea.md)
|
|
|
|
|
|
- [GetRenderArea](GetRenderArea.md)
|