mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-06 01:50:38 +00:00
Clamp picked pixel co-ords to texture size. Closes #68
* "Hover" co-ords still show larger values, in []s.
This commit is contained in:
@@ -1318,7 +1318,11 @@ namespace renderdocui.Windows
|
||||
}
|
||||
}
|
||||
|
||||
string statusText = "Hover - " + (m_CurHoverPixel.X >> (int)m_TexDisplay.mip) + ", " + (m_CurHoverPixel.Y >> (int)m_TexDisplay.mip);
|
||||
string hoverCoords = String.Format("{0}, {1}", m_CurHoverPixel.X >> (int)m_TexDisplay.mip, m_CurHoverPixel.Y >> (int)m_TexDisplay.mip);
|
||||
string statusText = "Hover - " + hoverCoords;
|
||||
|
||||
if (m_CurHoverPixel.X > tex.width || m_CurHoverPixel.Y > tex.height || m_CurHoverPixel.X < 0 || m_CurHoverPixel.Y < 0)
|
||||
statusText = "Hover - [" + hoverCoords + "]";
|
||||
|
||||
if (m_CurPixelValue != null)
|
||||
{
|
||||
@@ -1845,22 +1849,26 @@ namespace renderdocui.Windows
|
||||
{
|
||||
bool nudged = false;
|
||||
|
||||
if (e.KeyCode == Keys.Up)
|
||||
FetchTexture tex = CurrentTexture;
|
||||
|
||||
if (tex == null) return;
|
||||
|
||||
if (e.KeyCode == Keys.Up && m_PickedPoint.Y > 0)
|
||||
{
|
||||
m_PickedPoint = new Point(m_PickedPoint.X, m_PickedPoint.Y - 1);
|
||||
nudged = true;
|
||||
}
|
||||
else if (e.KeyCode == Keys.Down)
|
||||
else if (e.KeyCode == Keys.Down && m_PickedPoint.Y < tex.height-1)
|
||||
{
|
||||
m_PickedPoint = new Point(m_PickedPoint.X, m_PickedPoint.Y + 1);
|
||||
nudged = true;
|
||||
}
|
||||
else if (e.KeyCode == Keys.Left)
|
||||
else if (e.KeyCode == Keys.Left && m_PickedPoint.X > 0)
|
||||
{
|
||||
m_PickedPoint = new Point(m_PickedPoint.X - 1, m_PickedPoint.Y);
|
||||
nudged = true;
|
||||
}
|
||||
else if (e.KeyCode == Keys.Right)
|
||||
else if (e.KeyCode == Keys.Right && m_PickedPoint.X < tex.width - 1)
|
||||
{
|
||||
m_PickedPoint = new Point(m_PickedPoint.X + 1, m_PickedPoint.Y);
|
||||
nudged = true;
|
||||
@@ -1921,13 +1929,21 @@ namespace renderdocui.Windows
|
||||
|
||||
if (e.Button == MouseButtons.Right && m_TexDisplay.texid != ResourceId.Null)
|
||||
{
|
||||
m_PickedPoint = m_CurHoverPixel;
|
||||
FetchTexture tex = CurrentTexture;
|
||||
|
||||
m_Core.Renderer.BeginInvoke((ReplayRenderer r) =>
|
||||
if (tex != null)
|
||||
{
|
||||
if (m_Output != null)
|
||||
RT_PickPixelsAndUpdate(m_CurHoverPixel.X, m_CurHoverPixel.Y, true);
|
||||
});
|
||||
m_PickedPoint = m_CurHoverPixel;
|
||||
|
||||
m_PickedPoint.X = Helpers.Clamp(m_PickedPoint.X, 0, (int)tex.width-1);
|
||||
m_PickedPoint.Y = Helpers.Clamp(m_PickedPoint.Y, 0, (int)tex.height - 1);
|
||||
|
||||
m_Core.Renderer.BeginInvoke((ReplayRenderer r) =>
|
||||
{
|
||||
if (m_Output != null)
|
||||
RT_PickPixelsAndUpdate(m_PickedPoint.X, m_PickedPoint.Y, true);
|
||||
});
|
||||
}
|
||||
|
||||
Cursor = Cursors.Cross;
|
||||
}
|
||||
@@ -1973,13 +1989,21 @@ namespace renderdocui.Windows
|
||||
|
||||
if (e.Button == MouseButtons.Right)
|
||||
{
|
||||
m_PickedPoint = m_CurHoverPixel;
|
||||
FetchTexture tex = CurrentTexture;
|
||||
|
||||
m_Core.Renderer.BeginInvoke((ReplayRenderer r) =>
|
||||
if (tex != null)
|
||||
{
|
||||
if (m_Output != null)
|
||||
RT_PickPixelsAndUpdate(m_CurHoverPixel.X, m_CurHoverPixel.Y, true);
|
||||
});
|
||||
m_PickedPoint = m_CurHoverPixel;
|
||||
|
||||
m_PickedPoint.X = Helpers.Clamp(m_PickedPoint.X, 0, (int)tex.width - 1);
|
||||
m_PickedPoint.Y = Helpers.Clamp(m_PickedPoint.Y, 0, (int)tex.height - 1);
|
||||
|
||||
m_Core.Renderer.BeginInvoke((ReplayRenderer r) =>
|
||||
{
|
||||
if (m_Output != null)
|
||||
RT_PickPixelsAndUpdate(m_PickedPoint.X, m_PickedPoint.Y, true);
|
||||
});
|
||||
}
|
||||
|
||||
Cursor = Cursors.Cross;
|
||||
}
|
||||
@@ -2450,6 +2474,9 @@ namespace renderdocui.Windows
|
||||
|
||||
ShaderReflection shaderDetails = m_Core.CurPipelineState.GetShaderReflection(ShaderStageType.Pixel);
|
||||
|
||||
if(m_PickedPoint.X < 0 || m_PickedPoint.Y < 0)
|
||||
return;
|
||||
|
||||
m_Core.Renderer.Invoke((ReplayRenderer r) =>
|
||||
{
|
||||
trace = r.PSGetDebugStates((UInt32)m_PickedPoint.X, (UInt32)m_PickedPoint.Y);
|
||||
|
||||
Reference in New Issue
Block a user