From baecdd85cad9cf9324c15a2bb796e7d2b52fcf5f Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 19 Sep 2025 11:12:45 +0100 Subject: [PATCH] Improve arrow key nudging behaviour on NPOT mips in texture viewer --- qrenderdoc/Windows/TextureViewer.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/qrenderdoc/Windows/TextureViewer.cpp b/qrenderdoc/Windows/TextureViewer.cpp index d322a8f9b..b2e6895be 100644 --- a/qrenderdoc/Windows/TextureViewer.cpp +++ b/qrenderdoc/Windows/TextureViewer.cpp @@ -2754,26 +2754,27 @@ void TextureViewer::render_keyPress(QKeyEvent *e) bool nudged = false; - int increment = 1 << (int)m_TexDisplay.subresource.mip; + uint32_t mipx = MipCoordFromBase(m_PickedPoint.x(), texptr->width); + uint32_t mipy = MipCoordFromBase(m_PickedPoint.y(), texptr->height); if(e->key() == Qt::Key_Up && m_PickedPoint.y() > 0) { - m_PickedPoint -= QPoint(0, increment); + m_PickedPoint.setY(BaseCoordFromMip(mipy - 1, texptr->height)); nudged = true; } else if(e->key() == Qt::Key_Down && m_PickedPoint.y() < (int)texptr->height - 1) { - m_PickedPoint += QPoint(0, increment); + m_PickedPoint.setY(BaseCoordFromMip(mipy + 1, texptr->height)); nudged = true; } else if(e->key() == Qt::Key_Left && m_PickedPoint.x() > 0) { - m_PickedPoint -= QPoint(increment, 0); + m_PickedPoint.setX(BaseCoordFromMip(mipx - 1, texptr->width)); nudged = true; } else if(e->key() == Qt::Key_Right && m_PickedPoint.x() < (int)texptr->width - 1) { - m_PickedPoint += QPoint(increment, 0); + m_PickedPoint.setX(BaseCoordFromMip(mipx + 1, texptr->width)); nudged = true; }