Pass changes WIP: moved child pass creation to Build phase

This commit is contained in:
antonmic
2021-06-08 12:03:58 -07:00
parent a30d9621d5
commit 6973d9c7a3
12 changed files with 49 additions and 97 deletions
@@ -46,8 +46,6 @@ namespace AZ
DisplayMapperPass::DisplayMapperPass(const RPI::PassDescriptor& descriptor)
: RPI::ParentPass(descriptor)
{
m_flags.m_alreadyCreated = false;
AzFramework::NativeWindowHandle windowHandle = nullptr;
AzFramework::WindowSystemRequestBus::BroadcastResult(
windowHandle,
@@ -61,8 +59,6 @@ namespace AZ
{
m_displayMapperConfigurationDescriptor = passData->m_config;
}
m_needToRebuildChildren = true;
}
DisplayMapperPass::~DisplayMapperPass()
@@ -199,24 +195,14 @@ namespace AZ
void DisplayMapperPass::FrameEndInternal()
{
GetDisplayMapperConfiguration();
if (m_needToRebuildChildren)
{
ClearChildren();
BuildGradingLutTemplate();
CreateGradingAndAcesPasses();
}
ParentPass::FrameEndInternal();
}
void DisplayMapperPass::CreateChildPassesInternal()
{
if (m_needToRebuildChildren)
{
ClearChildren();
BuildGradingLutTemplate();
CreateGradingAndAcesPasses();
}
ParentPass::CreateChildPassesInternal();
ClearChildren();
BuildGradingLutTemplate();
CreateGradingAndAcesPasses();
}
AZStd::shared_ptr<RPI::PassTemplate> CreatePassTemplateHelper(
@@ -485,7 +471,6 @@ namespace AZ
{
AddChild(m_ldrGradingLookupTablePass);
}
m_needToRebuildChildren = false;
}
void DisplayMapperPass::GetDisplayMapperConfiguration()
@@ -513,7 +498,8 @@ namespace AZ
desc.m_ldrColorGradingLut != m_displayMapperConfigurationDescriptor.m_ldrColorGradingLut ||
desc.m_acesParameterOverrides.m_overrideDefaults != m_displayMapperConfigurationDescriptor.m_acesParameterOverrides.m_overrideDefaults)
{
m_needToRebuildChildren = true;
m_flags.m_createChildren = true;
QueueForBuild();
}
m_displayMapperConfigurationDescriptor = desc;
}
@@ -527,41 +513,15 @@ namespace AZ
void DisplayMapperPass::ClearChildren()
{
if (m_acesOutputTransformPass)
{
RemoveChild(m_acesOutputTransformPass);
m_acesOutputTransformPass = nullptr;
}
if (m_bakeAcesOutputTransformLutPass)
{
RemoveChild(m_bakeAcesOutputTransformLutPass);
m_bakeAcesOutputTransformLutPass = nullptr;
}
if (m_acesOutputTransformLutPass)
{
RemoveChild(m_acesOutputTransformLutPass);
m_acesOutputTransformLutPass = nullptr;
}
if (m_displayMapperPassthroughPass)
{
RemoveChild(m_displayMapperPassthroughPass);
m_displayMapperPassthroughPass = nullptr;
}
if (m_displayMapperOnlyGammaCorrectionPass)
{
RemoveChild(m_displayMapperOnlyGammaCorrectionPass);
m_displayMapperOnlyGammaCorrectionPass = nullptr;
}
if (m_ldrGradingLookupTablePass)
{
RemoveChild(m_ldrGradingLookupTablePass);
m_ldrGradingLookupTablePass = nullptr;
}
if (m_outputTransformPass)
{
RemoveChild(m_outputTransformPass);
m_outputTransformPass = nullptr;
}
RemoveChildren();
m_acesOutputTransformPass = nullptr;
m_bakeAcesOutputTransformLutPass = nullptr;
m_acesOutputTransformLutPass = nullptr;
m_displayMapperPassthroughPass = nullptr;
m_displayMapperOnlyGammaCorrectionPass = nullptr;
m_ldrGradingLookupTablePass = nullptr;
m_outputTransformPass = nullptr;
}
} // namespace Render
} // namespace AZ