From 8f326c5193bd472b344818bcb8a21790c2598df6 Mon Sep 17 00:00:00 2001 From: Thomas Wilshaw Date: Sun, 21 Jun 2020 19:59:44 +0100 Subject: [PATCH] Fix pixel sampler with translate/zoomed image Pixel sampler now works with a zoomed/translated image. As usual we have to flip the y translation as OpenGl stores images upside down. Need to look at a better way of handling this. --- app/widget/viewer/viewerdisplay.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/widget/viewer/viewerdisplay.cpp b/app/widget/viewer/viewerdisplay.cpp index d89813c1a..867b922cd 100644 --- a/app/widget/viewer/viewerdisplay.cpp +++ b/app/widget/viewer/viewerdisplay.cpp @@ -271,8 +271,10 @@ void ViewerDisplayWidget::mouseMoveEvent(QMouseEvent *event) QVector3D pixel_pos(static_cast(event->x()) / static_cast(width()) * 2.0f - 1.0f, static_cast(event->y()) / static_cast(height()) * 2.0f - 1.0f, 0); + QMatrix4x4 transform = GetCompleteMatrix(); + *(transform.data() + 13) = *(transform.data() + 13) * -1.0f; - pixel_pos = pixel_pos * GetCompleteMatrix().inverted(); + pixel_pos = transform.inverted() * pixel_pos; int frame_x = qRound((pixel_pos.x() + 1.0f) * 0.5f * last_loaded_buffer_->width()); int frame_y = qRound((pixel_pos.y() + 1.0f) * 0.5f * last_loaded_buffer_->height());