mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-06 01:50:38 +00:00
Texture buffers now default to viewing in the buffer not texture viewer
* The pipeline state windows will open up the buffer viewer instead of the texture viewer to show the contents of texture buffers.
This commit is contained in:
@@ -646,12 +646,12 @@ namespace renderdocui.Windows
|
||||
|
||||
#region Get Data Formats/Organisation
|
||||
|
||||
public void ViewRawBuffer(ResourceId buff)
|
||||
public void ViewRawBuffer(bool isBuffer, ResourceId id)
|
||||
{
|
||||
ViewRawBuffer(buff, "");
|
||||
ViewRawBuffer(isBuffer, id, "");
|
||||
}
|
||||
|
||||
public void ViewRawBuffer(ResourceId buff, string formatString)
|
||||
public void ViewRawBuffer(bool isBuffer, ResourceId id, string formatString)
|
||||
{
|
||||
if (m_Core.CurBuffers == null) return;
|
||||
|
||||
@@ -660,7 +660,7 @@ namespace renderdocui.Windows
|
||||
Text = "Buffer Contents";
|
||||
foreach (var b in m_Core.CurBuffers)
|
||||
{
|
||||
if (b.ID == buff)
|
||||
if (b.ID == id)
|
||||
{
|
||||
Text = b.name + " - Contents";
|
||||
break;
|
||||
@@ -674,7 +674,7 @@ namespace renderdocui.Windows
|
||||
FormatElement[] elems = FormatElement.ParseFormatString(formatString, true, out errors);
|
||||
|
||||
input.Strides = new uint[] { elems.Last().offset + elems.Last().ByteSize };
|
||||
input.Buffers = new ResourceId[] { buff };
|
||||
input.Buffers = new ResourceId[] { isBuffer ? id : ResourceId.Null, isBuffer ? ResourceId.Null : id };
|
||||
input.Offsets = new uint[] { 0 };
|
||||
input.IndexBuffer = ResourceId.Null;
|
||||
input.BufferFormats = elems;
|
||||
@@ -855,11 +855,14 @@ namespace renderdocui.Windows
|
||||
|
||||
if (!MeshView)
|
||||
{
|
||||
if (input != null && input.Buffers[0] != ResourceId.Null)
|
||||
if (input != null && (input.Buffers[0] != ResourceId.Null || input.Buffers[1] != ResourceId.Null))
|
||||
{
|
||||
ret.Buffers = new byte[1][];
|
||||
|
||||
ret.Buffers[0] = r.GetBufferData(input.Buffers[0], 0, 0);
|
||||
if(input.Buffers[0] != ResourceId.Null)
|
||||
ret.Buffers[0] = r.GetBufferData(input.Buffers[0], 0, 0);
|
||||
else if (input.Buffers[1] != ResourceId.Null)
|
||||
ret.Buffers[0] = r.GetTextureData(input.Buffers[1], 0, 0);
|
||||
|
||||
ret.Indices = null;
|
||||
ret.IndexCount = (uint)ret.Buffers[0].Length / input.Strides[0];
|
||||
@@ -2717,7 +2720,16 @@ namespace renderdocui.Windows
|
||||
|
||||
public void ProcessBufferFormat(string formatText)
|
||||
{
|
||||
ViewRawBuffer(GetUIState(MeshDataStage.VSIn).m_Input.Buffers[0], formatText);
|
||||
ResourceId id = GetUIState(MeshDataStage.VSIn).m_Input.Buffers[0];
|
||||
bool isBuffer = true;
|
||||
|
||||
if (id == ResourceId.Null)
|
||||
{
|
||||
isBuffer = false;
|
||||
id = GetUIState(MeshDataStage.VSIn).m_Input.Buffers[1];
|
||||
}
|
||||
|
||||
ViewRawBuffer(isBuffer, id, formatText);
|
||||
}
|
||||
|
||||
private void ShowFormatSpecifier()
|
||||
|
||||
@@ -1458,11 +1458,19 @@ namespace renderdocui.Windows.PipelineState
|
||||
{
|
||||
FetchTexture tex = (FetchTexture)tag;
|
||||
|
||||
var viewer = m_Core.GetTextureViewer();
|
||||
|
||||
viewer.Show(m_DockContent.DockPanel);
|
||||
if (!viewer.IsDisposed)
|
||||
viewer.ViewTexture(tex.ID, true);
|
||||
if (tex.resType == ShaderResourceType.Buffer)
|
||||
{
|
||||
var viewer = new BufferViewer(m_Core, false);
|
||||
viewer.ViewRawBuffer(false, tex.ID);
|
||||
viewer.Show(m_DockContent.DockPanel);
|
||||
}
|
||||
else
|
||||
{
|
||||
var viewer = m_Core.GetTextureViewer();
|
||||
viewer.Show(m_DockContent.DockPanel);
|
||||
if (!viewer.IsDisposed)
|
||||
viewer.ViewTexture(tex.ID, true);
|
||||
}
|
||||
}
|
||||
else if(tag is FetchBuffer)
|
||||
{
|
||||
@@ -1581,9 +1589,9 @@ namespace renderdocui.Windows.PipelineState
|
||||
{
|
||||
var viewer = new BufferViewer(m_Core, false);
|
||||
if (format.Length == 0)
|
||||
viewer.ViewRawBuffer(buf.ID);
|
||||
viewer.ViewRawBuffer(true, buf.ID);
|
||||
else
|
||||
viewer.ViewRawBuffer(buf.ID, format);
|
||||
viewer.ViewRawBuffer(true, buf.ID, format);
|
||||
viewer.Show(m_DockContent.DockPanel);
|
||||
}
|
||||
}
|
||||
@@ -1661,7 +1669,7 @@ namespace renderdocui.Windows.PipelineState
|
||||
if (id != ResourceId.Null)
|
||||
{
|
||||
var viewer = new BufferViewer(m_Core, false);
|
||||
viewer.ViewRawBuffer(id);
|
||||
viewer.ViewRawBuffer(true, id);
|
||||
viewer.Show(m_DockContent.DockPanel);
|
||||
}
|
||||
}
|
||||
@@ -2004,7 +2012,7 @@ namespace renderdocui.Windows.PipelineState
|
||||
return;
|
||||
|
||||
var buf = stage.ConstantBuffers[slot].Buffer;
|
||||
viewer.ViewRawBuffer(buf);
|
||||
viewer.ViewRawBuffer(true, buf);
|
||||
viewer.Show(m_DockContent.DockPanel);
|
||||
|
||||
return;
|
||||
|
||||
@@ -1595,10 +1595,19 @@ namespace renderdocui.Windows.PipelineState
|
||||
{
|
||||
FetchTexture tex = (FetchTexture)tag;
|
||||
|
||||
var viewer = m_Core.GetTextureViewer();
|
||||
viewer.Show(m_DockContent.DockPanel);
|
||||
if (!viewer.IsDisposed)
|
||||
viewer.ViewTexture(tex.ID, true);
|
||||
if (tex.resType == ShaderResourceType.Buffer)
|
||||
{
|
||||
var viewer = new BufferViewer(m_Core, false);
|
||||
viewer.ViewRawBuffer(false, tex.ID);
|
||||
viewer.Show(m_DockContent.DockPanel);
|
||||
}
|
||||
else
|
||||
{
|
||||
var viewer = m_Core.GetTextureViewer();
|
||||
viewer.Show(m_DockContent.DockPanel);
|
||||
if (!viewer.IsDisposed)
|
||||
viewer.ViewTexture(tex.ID, true);
|
||||
}
|
||||
}
|
||||
else if(tag is ReadWriteTag)
|
||||
{
|
||||
@@ -1628,9 +1637,9 @@ namespace renderdocui.Windows.PipelineState
|
||||
{
|
||||
var viewer = new BufferViewer(m_Core, false);
|
||||
if (format.Length == 0)
|
||||
viewer.ViewRawBuffer(buf.ID);
|
||||
viewer.ViewRawBuffer(true, buf.ID);
|
||||
else
|
||||
viewer.ViewRawBuffer(buf.ID, format);
|
||||
viewer.ViewRawBuffer(true, buf.ID, format);
|
||||
viewer.Show(m_DockContent.DockPanel);
|
||||
}
|
||||
}
|
||||
@@ -1662,7 +1671,7 @@ namespace renderdocui.Windows.PipelineState
|
||||
if (id != ResourceId.Null)
|
||||
{
|
||||
var viewer = new BufferViewer(m_Core, false);
|
||||
viewer.ViewRawBuffer(id);
|
||||
viewer.ViewRawBuffer(true, id);
|
||||
viewer.Show(m_DockContent.DockPanel);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -481,7 +481,7 @@ namespace renderdocui.Windows
|
||||
if (m_Core.CurBuffers[i].ID == ID)
|
||||
{
|
||||
var viewer = new BufferViewer(m_Core, false);
|
||||
viewer.ViewRawBuffer(ID);
|
||||
viewer.ViewRawBuffer(true, ID);
|
||||
viewer.Show(DockPanel);
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user