refactor(srp): enable managed standalone shadow and depth stages
This commit is contained in:
@@ -63,6 +63,8 @@ CameraFramePlan CameraFramePlan::FromRequest(const CameraRenderRequest& request)
|
||||
plan.shadowCasterStage.requested =
|
||||
request.shadowCaster.IsRequested() ||
|
||||
request.directionalShadow.IsValid();
|
||||
plan.depthOnlyStage.requested =
|
||||
request.depthOnly.IsRequested();
|
||||
plan.colorChain.postProcess.requested = request.postProcess.IsRequested();
|
||||
plan.colorChain.finalOutput.requested = request.finalOutput.IsRequested();
|
||||
return plan;
|
||||
@@ -232,6 +234,24 @@ void CameraFramePlan::ClearShadowCasterStage(
|
||||
explicitlyConfigured;
|
||||
}
|
||||
|
||||
bool CameraFramePlan::RequestDepthOnlyStage(
|
||||
bool explicitlyConfigured) {
|
||||
depthOnlyStage.requested =
|
||||
request.depthOnly.IsRequested();
|
||||
depthOnlyStage.explicitlyConfigured =
|
||||
depthOnlyStage.explicitlyConfigured ||
|
||||
explicitlyConfigured;
|
||||
return depthOnlyStage.requested;
|
||||
}
|
||||
|
||||
void CameraFramePlan::ClearDepthOnlyStage(
|
||||
bool explicitlyConfigured) {
|
||||
depthOnlyStage.requested = false;
|
||||
depthOnlyStage.explicitlyConfigured =
|
||||
depthOnlyStage.explicitlyConfigured ||
|
||||
explicitlyConfigured;
|
||||
}
|
||||
|
||||
bool CameraFramePlan::HasExplicitFullscreenStageConfiguration(
|
||||
CameraFrameStage stage) const {
|
||||
if (const CameraFrameFullscreenStagePlan* fullscreenStagePlan =
|
||||
@@ -247,10 +267,18 @@ bool CameraFramePlan::HasExplicitShadowCasterStageConfiguration() const {
|
||||
return shadowCasterStage.explicitlyConfigured;
|
||||
}
|
||||
|
||||
bool CameraFramePlan::HasExplicitDepthOnlyStageConfiguration() const {
|
||||
return depthOnlyStage.explicitlyConfigured;
|
||||
}
|
||||
|
||||
bool CameraFramePlan::IsShadowCasterStageRequested() const {
|
||||
return shadowCasterStage.requested;
|
||||
}
|
||||
|
||||
bool CameraFramePlan::IsDepthOnlyStageRequested() const {
|
||||
return depthOnlyStage.requested;
|
||||
}
|
||||
|
||||
bool CameraFramePlan::IsPostProcessStageValid() const {
|
||||
if (!IsFullscreenStageRequested(CameraFrameStage::PostProcess)) {
|
||||
return true;
|
||||
@@ -318,7 +346,7 @@ bool CameraFramePlan::HasFrameStage(CameraFrameStage stage) const {
|
||||
case CameraFrameStageRequestKind::ShadowCaster:
|
||||
return IsShadowCasterStageRequested();
|
||||
case CameraFrameStageRequestKind::DepthOnly:
|
||||
return request.depthOnly.IsRequested();
|
||||
return IsDepthOnlyStageRequested();
|
||||
case CameraFrameStageRequestKind::ObjectId:
|
||||
return request.objectId.IsRequested();
|
||||
default:
|
||||
|
||||
Reference in New Issue
Block a user