aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiodrag Milanovic <mmicko@gmail.com>2018-10-14 12:40:19 +0200
committerMiodrag Milanovic <mmicko@gmail.com>2018-10-14 12:40:19 +0200
commit529a595157a2eef24f8529b0de0c504a40ed503b (patch)
treea5e6c1f5fff31146da8ee3946ab864cc8745b4e6
parent96efe48847dbf7f25f97b6059dacacd33fde4bec (diff)
downloadnextpnr-529a595157a2eef24f8529b0de0c504a40ed503b.tar.gz
nextpnr-529a595157a2eef24f8529b0de0c504a40ed503b.tar.bz2
nextpnr-529a595157a2eef24f8529b0de0c504a40ed503b.zip
Recalculate max zoom level depending of arch
-rw-r--r--gui/fpgaviewwidget.cc12
-rw-r--r--gui/fpgaviewwidget.h4
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,