Introduce CameraRenderRequest scheduling and fix Vulkan build
This commit is contained in:
@@ -70,6 +70,33 @@ RenderSceneData RenderSceneExtractor::Extract(
|
||||
return sceneData;
|
||||
}
|
||||
|
||||
RenderSceneData RenderSceneExtractor::ExtractForCamera(
|
||||
const Components::Scene& scene,
|
||||
Components::CameraComponent& camera,
|
||||
uint32_t viewportWidth,
|
||||
uint32_t viewportHeight) const {
|
||||
RenderSceneData sceneData;
|
||||
if (!IsUsableCamera(&camera)) {
|
||||
return sceneData;
|
||||
}
|
||||
|
||||
sceneData.camera = &camera;
|
||||
sceneData.cameraData = BuildCameraData(camera, viewportWidth, viewportHeight);
|
||||
const Math::Vector3 cameraPosition = sceneData.cameraData.worldPosition;
|
||||
|
||||
const std::vector<Components::GameObject*> rootGameObjects = scene.GetRootGameObjects();
|
||||
for (Components::GameObject* rootGameObject : rootGameObjects) {
|
||||
ExtractVisibleItems(rootGameObject, cameraPosition, sceneData.visibleItems);
|
||||
}
|
||||
|
||||
std::stable_sort(
|
||||
sceneData.visibleItems.begin(),
|
||||
sceneData.visibleItems.end(),
|
||||
CompareVisibleItems);
|
||||
|
||||
return sceneData;
|
||||
}
|
||||
|
||||
Components::CameraComponent* RenderSceneExtractor::SelectCamera(
|
||||
const Components::Scene& scene,
|
||||
Components::CameraComponent* overrideCamera) const {
|
||||
|
||||
Reference in New Issue
Block a user