53 lines
1.3 KiB
Markdown
53 lines
1.3 KiB
Markdown
# CameraRenderRequest::IsValid
|
||
|
||
**命名空间**: `XCEngine::Rendering`
|
||
|
||
**类型**: `method`
|
||
|
||
**头文件**: `XCEngine/Rendering/CameraRenderRequest.h`
|
||
|
||
## 签名
|
||
|
||
```cpp
|
||
bool IsValid() const
|
||
```
|
||
|
||
## 作用
|
||
|
||
检查当前请求是否满足进入 `CameraRenderer` 主流程的最小前提。
|
||
|
||
## 当前实现行为
|
||
|
||
按头文件内联实现,当前只检查三件事:
|
||
|
||
```cpp
|
||
return scene != nullptr &&
|
||
camera != nullptr &&
|
||
context.IsValid();
|
||
```
|
||
|
||
## 这意味着
|
||
|
||
- `surface` 不参与这里的校验。
|
||
- `objectId` 的完整性也不在这里检查。
|
||
- `cameraDepth`、`cameraStackOrder`、`clearFlags` 和 clear color override 都不会影响这里的结果。
|
||
|
||
因此它只是“最小可进入渲染器”的校验,而不是“这次请求一定能完整跑通”的保证。
|
||
|
||
## 与 `CameraRenderer::Render()` 的关系
|
||
|
||
`CameraRenderer::Render()` 在调用这个方法之后,还会继续检查:
|
||
|
||
- `surface.GetRenderAreaWidth()` / `GetRenderAreaHeight()` 是否大于 `0`
|
||
- `objectId.IsRequested()` 时 `objectId.IsValid()` 是否为真
|
||
|
||
## 返回值
|
||
|
||
- 返回 `true`:`scene`、`camera` 非空,且 `context` 通过校验。
|
||
- 返回 `false`:至少有一个最小前提不满足。
|
||
|
||
## 相关文档
|
||
|
||
- [CameraRenderRequest](CameraRenderRequest.md)
|
||
- [CameraRenderer::Render](../CameraRenderer/Render.md)
|