From a2a63104dd59180464bd2054d56e222250e2b5ab Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 16 Sep 2016 18:36:38 +0200 Subject: [PATCH] When nudging with arrow keys, account for selected mip --- renderdocui/Windows/TextureViewer.cs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/renderdocui/Windows/TextureViewer.cs b/renderdocui/Windows/TextureViewer.cs index a81e397a7..523bb0dcb 100644 --- a/renderdocui/Windows/TextureViewer.cs +++ b/renderdocui/Windows/TextureViewer.cs @@ -2803,29 +2803,34 @@ namespace renderdocui.Windows } + int increment = 1 << (int)m_TexDisplay.mip; + if (e.KeyCode == Keys.Up && m_PickedPoint.Y > 0) { - m_PickedPoint = new Point(m_PickedPoint.X, m_PickedPoint.Y - 1); + m_PickedPoint = new Point(m_PickedPoint.X, m_PickedPoint.Y - increment); nudged = true; } else if (e.KeyCode == Keys.Down && m_PickedPoint.Y < tex.height-1) { - m_PickedPoint = new Point(m_PickedPoint.X, m_PickedPoint.Y + 1); + m_PickedPoint = new Point(m_PickedPoint.X, m_PickedPoint.Y + increment); nudged = true; } else if (e.KeyCode == Keys.Left && m_PickedPoint.X > 0) { - m_PickedPoint = new Point(m_PickedPoint.X - 1, m_PickedPoint.Y); + m_PickedPoint = new Point(m_PickedPoint.X - increment, m_PickedPoint.Y); nudged = true; } else if (e.KeyCode == Keys.Right && m_PickedPoint.X < tex.width - 1) { - m_PickedPoint = new Point(m_PickedPoint.X + 1, m_PickedPoint.Y); + m_PickedPoint = new Point(m_PickedPoint.X + increment, m_PickedPoint.Y); nudged = true; } if(nudged) { + m_PickedPoint = new Point( + Helpers.Clamp(m_PickedPoint.X, 0, (int)tex.width-1), + Helpers.Clamp(m_PickedPoint.Y, 0, (int)tex.height - 1)); e.Handled = true; m_Core.Renderer.BeginInvoke((ReplayRenderer r) =>