summaryrefslogtreecommitdiffstats
path: root/src/datavis3d
diff options
context:
space:
mode:
authorTomi Korpipää <tomi.korpipaa@digia.com>2013-04-25 13:25:09 +0300
committerTomi Korpipää <tomi.korpipaa@digia.com>2013-04-25 13:29:29 +0300
commit2675b0faeb9ae25cde5f708392ea20ebbf353f88 (patch)
tree44559be3a8147d2a48e823bf7b2e24c6f439e02c /src/datavis3d
parentf4f36fcb1f79849b0f468adfd51297f5e52a28ce (diff)
Bug fixes
Selection texture needed re-initializing after resize. Label rotations fixed in zoom mode. Change-Id: I98f14e1f98c27c08521da3ac14a348a154135e3a Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'src/datavis3d')
-rw-r--r--src/datavis3d/engine/q3dbars.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/datavis3d/engine/q3dbars.cpp b/src/datavis3d/engine/q3dbars.cpp
index 57f610f0..536502e7 100644
--- a/src/datavis3d/engine/q3dbars.cpp
+++ b/src/datavis3d/engine/q3dbars.cpp
@@ -1118,7 +1118,7 @@ void Q3DBars::drawLabel(const QDataItem &item, const LabelItem &label,
modelMatrix.rotate(rotationY, 0.0f, 1.0f, 0.0f);
modelMatrix.rotate(rotationX, 1.0f, 0.0f, 0.0f);
- if (!rotateAlong) {
+ if (useDepth && !rotateAlong) {
// Apply negative camera rotations to keep labels facing camera
QPointF rotations = CameraHelper::getCameraRotations();
modelMatrix.rotate(-rotations.x(), 0.0f, 1.0f, 0.0f);
@@ -1258,8 +1258,11 @@ void Q3DBars::resizeEvent(QResizeEvent *event)
GLfloat zoomAdjustment;
div = qMin(width(), height());
zoomAdjustment = defaultRatio * ((width() / div) / (height() / div));
- qDebug() << "zoom adjustment" << zoomAdjustment;
+ //qDebug() << "zoom adjustment" << zoomAdjustment;
d_ptr->m_zoomAdjustment = qMin(zoomAdjustment, 1.0f); // clamp to 1.0f
+
+ // Re-init selection buffer
+ d_ptr->initSelectionBuffer();
}
void Q3DBars::setBarSpecs(QSizeF thickness, QSizeF spacing, bool relative)
@@ -1671,6 +1674,12 @@ void Q3DBarsPrivate::initSelectionShader()
void Q3DBarsPrivate::initSelectionBuffer()
{
#ifndef USE_HAX0R_SELECTION
+ if (m_selectionTexture) {
+ m_textureHelper->glDeleteFramebuffers(1, &m_selectionFrameBuffer);
+ m_textureHelper->glDeleteRenderbuffers(1, &m_selectionDepthBuffer);
+ m_textureHelper->deleteTexture(&m_selectionTexture);
+ //m_textureHelper->deleteTexture(&m_selectionDepthTexture);
+ }
m_selectionTexture = m_textureHelper->createSelectionTexture(q_ptr->size(),
m_selectionFrameBuffer,
m_selectionDepthBuffer);