Skip to content

Commit 8b0e6e8

Browse files
alex-vazquez-unity3dEvergreen
authored andcommitted
[RG Viewer] Make sure the RG events are not unsubscribed when comming back from a Maximized state
The `OnDisable` is called just after the on Enable when coming back from a Maximized state. Making events unsubscribed.
1 parent 6372da0 commit 8b0e6e8

File tree

1 file changed

+28
-7
lines changed

1 file changed

+28
-7
lines changed

Packages/com.unity.render-pipelines.core/Editor/RenderGraph/RenderGraphViewer.cs

Lines changed: 28 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1706,12 +1706,7 @@ void OnEnable()
17061706
foreach (var graph in registeredGraph)
17071707
m_RegisteredGraphs.Add(graph, new HashSet<string>());
17081708

1709-
RenderGraph.isRenderGraphViewerActive = true;
1710-
RenderGraph.onGraphRegistered += OnGraphRegistered;
1711-
RenderGraph.onGraphUnregistered += OnGraphUnregistered;
1712-
RenderGraph.onExecutionRegistered += OnExecutionRegistered;
1713-
RenderGraph.onExecutionUnregistered += OnExecutionUnregistered;
1714-
RenderGraph.onDebugDataCaptured += OnDebugDataCaptured;
1709+
SubscribeToRenderGraphEvents();
17151710

17161711
if (EditorPrefs.HasKey(kPassFilterLegacyEditorPrefsKey))
17171712
m_PassFilterLegacy = (PassFilterLegacy)EditorPrefs.GetInt(kPassFilterLegacyEditorPrefsKey);
@@ -1738,14 +1733,40 @@ void CreateGUI()
17381733

17391734
void OnDisable()
17401735
{
1736+
UnsubscribeToRenderGraphEvents();
1737+
RenderGraphViewerLifetimeAnalytic.WindowClosed();
1738+
}
1739+
1740+
void SubscribeToRenderGraphEvents()
1741+
{
1742+
if (RenderGraph.isRenderGraphViewerActive)
1743+
return;
1744+
1745+
RenderGraph.isRenderGraphViewerActive = true;
1746+
RenderGraph.onGraphRegistered += OnGraphRegistered;
1747+
RenderGraph.onGraphUnregistered += OnGraphUnregistered;
1748+
RenderGraph.onExecutionRegistered += OnExecutionRegistered;
1749+
RenderGraph.onExecutionUnregistered += OnExecutionUnregistered;
1750+
RenderGraph.onDebugDataCaptured += OnDebugDataCaptured;
1751+
}
1752+
1753+
void UnsubscribeToRenderGraphEvents()
1754+
{
1755+
if (!RenderGraph.isRenderGraphViewerActive)
1756+
return;
1757+
17411758
RenderGraph.isRenderGraphViewerActive = false;
17421759
RenderGraph.onGraphRegistered -= OnGraphRegistered;
17431760
RenderGraph.onGraphUnregistered -= OnGraphUnregistered;
17441761
RenderGraph.onExecutionRegistered -= OnExecutionRegistered;
17451762
RenderGraph.onExecutionUnregistered -= OnExecutionUnregistered;
17461763
RenderGraph.onDebugDataCaptured -= OnDebugDataCaptured;
1764+
}
17471765

1748-
RenderGraphViewerLifetimeAnalytic.WindowClosed();
1766+
void Update()
1767+
{
1768+
// UUM-70378: In case the OnDisable Unsubscribes to Render Graph events when coming back from a Maximized state
1769+
SubscribeToRenderGraphEvents();
17491770
}
17501771
}
17511772

0 commit comments

Comments
 (0)