Forcibly refresh UI state after editing a shader or removing an edit

This commit is contained in:
baldurk
2016-02-21 16:10:46 +01:00
parent c35531c65f
commit 1a05f4fc4a
8 changed files with 31 additions and 17 deletions
@@ -2008,6 +2008,8 @@ namespace renderdocui.Windows.PipelineState
if (files.Count == 0)
return;
D3D11PipelineStateViewer pipeviewer = this;
ShaderViewer sv = new ShaderViewer(m_Core, false, entryFunc, files,
// Save Callback
@@ -2101,10 +2103,12 @@ namespace renderdocui.Windows.PipelineState
if (to == ResourceId.Null)
{
r.RemoveReplacement(from);
pipeviewer.BeginInvoke((MethodInvoker)delegate { m_Core.RefreshStatus(); });
}
else
{
r.ReplaceResource(from, to);
pipeviewer.BeginInvoke((MethodInvoker)delegate { m_Core.RefreshStatus(); });
}
});
},
@@ -2117,6 +2121,7 @@ namespace renderdocui.Windows.PipelineState
m_Core.Renderer.BeginInvoke((ReplayRenderer r) =>
{
r.RemoveReplacement(stage.Shader);
pipeviewer.BeginInvoke((MethodInvoker)delegate { m_Core.RefreshStatus(); });
});
});
@@ -1884,6 +1884,8 @@ namespace renderdocui.Windows.PipelineState
if (files.Count == 0)
return;
GLPipelineStateViewer pipeviewer = this;
ShaderViewer sv = new ShaderViewer(m_Core, false, "main", files,
// Save Callback
@@ -1906,10 +1908,12 @@ namespace renderdocui.Windows.PipelineState
if (to == ResourceId.Null)
{
r.RemoveReplacement(from);
pipeviewer.BeginInvoke((MethodInvoker)delegate { m_Core.RefreshStatus(); });
}
else
{
r.ReplaceResource(from, to);
pipeviewer.BeginInvoke((MethodInvoker)delegate { m_Core.RefreshStatus(); });
}
});
},
@@ -1922,6 +1926,7 @@ namespace renderdocui.Windows.PipelineState
m_Core.Renderer.BeginInvoke((ReplayRenderer r) =>
{
r.RemoveReplacement(stage.Shader);
pipeviewer.BeginInvoke((MethodInvoker)delegate { m_Core.RefreshStatus(); });
});
});