diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2014-08-18 14:32:40 +0300 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2014-08-19 08:12:14 +0300 |
commit | 1574c9353885ec48dbf9d5d7618e496d00c3862c (patch) | |
tree | 074de4a48a438943349d559782402436f9dbac4f /examples/datavisualization/volumetric/volumetric.cpp | |
parent | cf95478ea842cd42a8888b0b74de3d0d0d0233ea (diff) |
Show warning label in volumetric example on OpenGL ES
Change-Id: I29ec58f9485a75a00cb1c60d7c57f4c06f620032
Reviewed-by: Mika Salmela <mika.salmela@digia.com>
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'examples/datavisualization/volumetric/volumetric.cpp')
-rw-r--r-- | examples/datavisualization/volumetric/volumetric.cpp | 32 |
1 files changed, 25 insertions, 7 deletions
diff --git a/examples/datavisualization/volumetric/volumetric.cpp b/examples/datavisualization/volumetric/volumetric.cpp index 8e61ecf2..0c56374e 100644 --- a/examples/datavisualization/volumetric/volumetric.cpp +++ b/examples/datavisualization/volumetric/volumetric.cpp @@ -21,6 +21,7 @@ #include <QtDataVisualization/q3dscene.h> #include <QtDataVisualization/q3dcamera.h> #include <QtDataVisualization/q3dtheme.h> +#include <QtDataVisualization/qcustom3dlabel.h> #include <QtCore/qmath.h> #include <QtGui/QRgb> #include <QtWidgets/QLabel> @@ -42,15 +43,29 @@ VolumetricModifier::VolumetricModifier(Q3DScatter *scatter) m_graph->scene()->activeCamera()->setCameraPreset(Q3DCamera::CameraPresetFront); m_graph->setOrthoProjection(true); +#if !defined(QT_OPENGL_ES_2) createVolume(); - m_graph->addCustomItem(m_volumeItem); +#else + // OpenGL ES2 doesn't support 3D textures, so show a warning label instead + QCustom3DLabel *warningLabel = new QCustom3DLabel( + "QCustom3DVolume is not supported with OpenGL ES2", + QFont(), + QVector3D(0.0f, 0.5f, 0.0f), + QVector3D(1.5f, 1.5f, 0.0f), + QQuaternion()); + warningLabel->setPositionAbsolute(true); + warningLabel->setFacingCamera(true); + m_graph->addCustomItem(warningLabel); + m_graph->activeTheme()->setLightStrength(1.0f); +#endif m_graph->setMeasureFps(true); QObject::connect(m_graph->scene()->activeCamera(), &Q3DCamera::zoomLevelChanged, this, &VolumetricModifier::handleZoomLevelChange); QObject::connect(m_graph, &QAbstract3DGraph::currentFpsChanged, this, &VolumetricModifier::handleFpsChange); + } VolumetricModifier::~VolumetricModifier() @@ -65,37 +80,40 @@ void VolumetricModifier::setFpsLabel(QLabel *fpsLabel) void VolumetricModifier::sliceX(int enabled) { - m_volumeItem->setSliceIndexX(enabled ? m_sliceIndexX : -1); + if (m_volumeItem) + m_volumeItem->setSliceIndexX(enabled ? m_sliceIndexX : -1); } void VolumetricModifier::sliceY(int enabled) { - m_volumeItem->setSliceIndexY(enabled ? m_sliceIndexY : -1); + if (m_volumeItem) + m_volumeItem->setSliceIndexY(enabled ? m_sliceIndexY : -1); } void VolumetricModifier::sliceZ(int enabled) { - m_volumeItem->setSliceIndexZ(enabled ? m_sliceIndexZ : -1); + if (m_volumeItem) + m_volumeItem->setSliceIndexZ(enabled ? m_sliceIndexZ : -1); } void VolumetricModifier::adjustSliceX(int value) { m_sliceIndexX = value / (1024 / textureSize); - if (m_volumeItem->sliceIndexX() != -1) + if (m_volumeItem && m_volumeItem->sliceIndexX() != -1) m_volumeItem->setSliceIndexX(m_sliceIndexX); } void VolumetricModifier::adjustSliceY(int value) { m_sliceIndexY = value / (1024 / textureSize * 2); - if (m_volumeItem->sliceIndexY() != -1) + if (m_volumeItem && m_volumeItem->sliceIndexY() != -1) m_volumeItem->setSliceIndexY(m_sliceIndexY); } void VolumetricModifier::adjustSliceZ(int value) { m_sliceIndexZ = value / (1024 / textureSize); - if (m_volumeItem->sliceIndexZ() != -1) + if (m_volumeItem && m_volumeItem->sliceIndexZ() != -1) m_volumeItem->setSliceIndexZ(m_sliceIndexZ); } |