diff options
author | Miodrag Milanovic <mmicko@gmail.com> | 2018-10-14 12:40:19 +0200 |
---|---|---|
committer | Miodrag Milanovic <mmicko@gmail.com> | 2018-10-14 12:40:19 +0200 |
commit | 529a595157a2eef24f8529b0de0c504a40ed503b (patch) | |
tree | a5e6c1f5fff31146da8ee3946ab864cc8745b4e6 /gui | |
parent | 96efe48847dbf7f25f97b6059dacacd33fde4bec (diff) | |
download | nextpnr-529a595157a2eef24f8529b0de0c504a40ed503b.tar.gz nextpnr-529a595157a2eef24f8529b0de0c504a40ed503b.tar.bz2 nextpnr-529a595157a2eef24f8529b0de0c504a40ed503b.zip |
Recalculate max zoom level depending of arch
Diffstat (limited to 'gui')
-rw-r--r-- | gui/fpgaviewwidget.cc | 12 | ||||
-rw-r--r-- | gui/fpgaviewwidget.h | 4 |
2 files changed, 9 insertions, 7 deletions
diff --git a/gui/fpgaviewwidget.cc b/gui/fpgaviewwidget.cc index 53ee7282..3b0b3df7 100644 --- a/gui/fpgaviewwidget.cc +++ b/gui/fpgaviewwidget.cc @@ -276,7 +276,7 @@ QMatrix4x4 FPGAViewWidget::getProjection(void) QMatrix4x4 matrix; const float aspect = float(width()) / float(height()); - matrix.perspective(90, aspect, zoomNear_, zoomFar_); + matrix.perspective(90, aspect, zoomNear_, zoomFar_ + 0.1f); return matrix; } @@ -756,7 +756,7 @@ void FPGAViewWidget::zoomIn() { zoom(10); } void FPGAViewWidget::zoomOut() { zoom(-10); } -void FPGAViewWidget::zoomToBB(const PickQuadTree::BoundingBox &bb, float margin) +void FPGAViewWidget::zoomToBB(const PickQuadTree::BoundingBox &bb, float margin, bool clamp) { if (fabs(bb.w()) < 0.00005 && fabs(bb.h()) < 0.00005) return; @@ -769,14 +769,15 @@ void FPGAViewWidget::zoomToBB(const PickQuadTree::BoundingBox &bb, float margin) float distance_w = bb.w() / 2 + margin; float distance_h = bb.h() / 2 + margin; zoom_ = std::max(distance_w, distance_h); - clampZoom(); + if (clamp) + clampZoom(); } void FPGAViewWidget::zoomSelected() { { QMutexLocker lock(&rendererDataLock_); - zoomToBB(rendererData_->bbSelected, 0.5f); + zoomToBB(rendererData_->bbSelected, 0.5f, true); } update(); } @@ -785,7 +786,8 @@ void FPGAViewWidget::zoomOutbound() { { QMutexLocker lock(&rendererDataLock_); - zoomToBB(rendererData_->bbGlobal, 1.0f); + zoomToBB(rendererData_->bbGlobal, 1.0f, false); + zoomFar_ = zoom_; } } diff --git a/gui/fpgaviewwidget.h b/gui/fpgaviewwidget.h index 51a038fc..4be41bf5 100644 --- a/gui/fpgaviewwidget.h +++ b/gui/fpgaviewwidget.h @@ -127,7 +127,7 @@ class FPGAViewWidget : public QOpenGLWidget, protected QOpenGLFunctions private: const float zoomNear_ = 0.1f; // do not zoom closer than this - const float zoomFar_ = 30.0f; // do not zoom further than this + float zoomFar_ = 10.0f; // do not zoom further than this const float zoomLvl1_ = 1.0f; const float zoomLvl2_ = 5.0f; @@ -291,7 +291,7 @@ class FPGAViewWidget : public QOpenGLWidget, protected QOpenGLFunctions QMutex rendererDataLock_; void clampZoom(); - void zoomToBB(const PickQuadTree::BoundingBox &bb, float margin); + void zoomToBB(const PickQuadTree::BoundingBox &bb, float margin, bool clamp); void zoom(int level); void renderLines(void); void renderGraphicElement(LineShaderData &out, PickQuadTree::BoundingBox &bb, const GraphicElement &el, float x, |