Implement render graph compiler and transient fullscreen execution

This commit is contained in:
2026-04-14 04:37:07 +08:00
parent 72d09a1c49
commit c98b41f6f4
15 changed files with 2161 additions and 112 deletions

View File

@@ -44,21 +44,6 @@ void SceneRenderer::SetPipelineAsset(std::shared_ptr<const RenderPipelineAsset>
m_cameraRenderer.SetPipelineAsset(std::move(pipelineAsset));
}
std::vector<CameraRenderRequest> SceneRenderer::BuildRenderRequests(
const Components::Scene& scene,
Components::CameraComponent* overrideCamera,
const RenderContext& context,
const RenderSurface& surface) {
const std::vector<CameraFramePlan> plans =
BuildFramePlans(scene, overrideCamera, context, surface);
std::vector<CameraRenderRequest> requests = {};
requests.reserve(plans.size());
for (const CameraFramePlan& plan : plans) {
requests.push_back(BuildCompatibilityCameraRenderRequest(plan));
}
return requests;
}
std::vector<CameraFramePlan> SceneRenderer::BuildFramePlans(
const Components::Scene& scene,
Components::CameraComponent* overrideCamera,
@@ -71,15 +56,6 @@ std::vector<CameraFramePlan> SceneRenderer::BuildFramePlans(
: std::vector<CameraFramePlan>();
}
bool SceneRenderer::Render(const CameraRenderRequest& request) {
return Render(CameraFramePlan::FromRequest(request));
}
bool SceneRenderer::Render(const std::vector<CameraRenderRequest>& requests) {
std::vector<CameraFramePlan> plans = CreateFramePlansFromLegacyRequests(requests);
return Render(plans);
}
bool SceneRenderer::Render(const CameraFramePlan& plan) {
return m_cameraRenderer.Render(plan);
}
@@ -130,16 +106,5 @@ bool SceneRenderer::Render(
return Render(BuildFramePlans(scene, overrideCamera, context, surface));
}
std::vector<CameraFramePlan> SceneRenderer::CreateFramePlansFromLegacyRequests(
const std::vector<CameraRenderRequest>& requests) const {
std::vector<CameraFramePlan> plans = {};
plans.reserve(requests.size());
for (const CameraRenderRequest& request : requests) {
plans.push_back(CameraFramePlan::FromRequest(request));
}
return plans;
}
} // namespace Rendering
} // namespace XCEngine