diff options
Diffstat (limited to 'src/datavisualization/engine')
-rw-r--r-- | src/datavisualization/engine/abstract3drenderer.cpp | 22 | ||||
-rw-r--r-- | src/datavisualization/engine/abstract3drenderer_p.h | 3 | ||||
-rw-r--r-- | src/datavisualization/engine/bars3drenderer.cpp | 12 | ||||
-rw-r--r-- | src/datavisualization/engine/bars3drenderer_p.h | 2 | ||||
-rw-r--r-- | src/datavisualization/engine/scatter3drenderer.cpp | 13 | ||||
-rw-r--r-- | src/datavisualization/engine/scatter3drenderer_p.h | 2 | ||||
-rw-r--r-- | src/datavisualization/engine/surface3drenderer.cpp | 12 | ||||
-rw-r--r-- | src/datavisualization/engine/surface3drenderer_p.h | 2 |
8 files changed, 21 insertions, 47 deletions
diff --git a/src/datavisualization/engine/abstract3drenderer.cpp b/src/datavisualization/engine/abstract3drenderer.cpp index a0e0bc45..d0f3c04b 100644 --- a/src/datavisualization/engine/abstract3drenderer.cpp +++ b/src/datavisualization/engine/abstract3drenderer.cpp @@ -63,6 +63,7 @@ Abstract3DRenderer::Abstract3DRenderer(Abstract3DController *controller) m_volumeTextureLowDefShader(0), m_volumeTextureSliceShader(0), m_volumeSliceFrameShader(0), + m_labelShader(0), m_useOrthoProjection(false), m_xFlipped(false), m_yFlipped(false), @@ -108,6 +109,7 @@ Abstract3DRenderer::~Abstract3DRenderer() delete m_volumeTextureLowDefShader; delete m_volumeSliceFrameShader; delete m_volumeTextureSliceShader; + delete m_labelShader; foreach (SeriesRenderCache *cache, m_renderCacheList) { cache->cleanup(m_textureHelper); @@ -152,6 +154,9 @@ void Abstract3DRenderer::initializeOpenGL() axisCacheForOrientation(QAbstract3DAxis::AxisOrientationX).setDrawer(m_drawer); axisCacheForOrientation(QAbstract3DAxis::AxisOrientationY).setDrawer(m_drawer); axisCacheForOrientation(QAbstract3DAxis::AxisOrientationZ).setDrawer(m_drawer); + + initLabelShaders(QStringLiteral(":/shaders/vertexLabel"), + QStringLiteral(":/shaders/fragmentLabel")); } void Abstract3DRenderer::render(const GLuint defaultFboHandle) @@ -232,6 +237,13 @@ void Abstract3DRenderer::initVolumeTextureShaders(const QString &vertexShader, m_volumeSliceFrameShader->initialize(); } +void Abstract3DRenderer::initLabelShaders(const QString &vertexShader, const QString &fragmentShader) +{ + delete m_labelShader; + m_labelShader = new ShaderHelper(this, vertexShader, fragmentShader); + m_labelShader->initialize(); +} + void Abstract3DRenderer::updateTheme(Q3DTheme *theme) { // Synchronize the controller theme with renderer @@ -1366,8 +1378,8 @@ void Abstract3DRenderer::drawCustomItems(RenderingState state, if (RenderingNormal == state) { // Normal render -#if !defined(QT_OPENGL_ES_2) ShaderHelper *prevShader = shader; +#if !defined(QT_OPENGL_ES_2) if (item->isVolume()) { if (item->drawSlices() && (item->sliceIndexX() >= 0 @@ -1379,12 +1391,14 @@ void Abstract3DRenderer::drawCustomItems(RenderingState state, } else { shader = m_volumeTextureLowDefShader; } - } else { + } else +#endif + if (item->isLabel()) + shader = m_labelShader; + else shader = regularShader; - } if (shader != prevShader) shader->bind(); -#endif shader->setUniformValue(shader->model(), modelMatrix); shader->setUniformValue(shader->MVP(), MVPMatrix); shader->setUniformValue(shader->nModel(), itModelMatrix.inverted().transposed()); diff --git a/src/datavisualization/engine/abstract3drenderer_p.h b/src/datavisualization/engine/abstract3drenderer_p.h index 2072314b..a46e6176 100644 --- a/src/datavisualization/engine/abstract3drenderer_p.h +++ b/src/datavisualization/engine/abstract3drenderer_p.h @@ -98,6 +98,8 @@ public: const QString &sliceShader, const QString &sliceFrameVertexShader, const QString &sliceFrameShader); + virtual void initLabelShaders(const QString &vertexShader, const QString &fragmentShader); + virtual void updateAxisType(QAbstract3DAxis::AxisOrientation orientation, QAbstract3DAxis::AxisType type); virtual void updateAxisTitle(QAbstract3DAxis::AxisOrientation orientation, @@ -253,6 +255,7 @@ protected: ShaderHelper *m_volumeTextureLowDefShader; ShaderHelper *m_volumeTextureSliceShader; ShaderHelper *m_volumeSliceFrameShader; + ShaderHelper *m_labelShader; bool m_useOrthoProjection; bool m_xFlipped; diff --git a/src/datavisualization/engine/bars3drenderer.cpp b/src/datavisualization/engine/bars3drenderer.cpp index 1f395422..e9cd9d43 100644 --- a/src/datavisualization/engine/bars3drenderer.cpp +++ b/src/datavisualization/engine/bars3drenderer.cpp @@ -47,7 +47,6 @@ Bars3DRenderer::Bars3DRenderer(Bars3DController *controller) m_depthShader(0), m_selectionShader(0), m_backgroundShader(0), - m_labelShader(0), m_bgrTexture(0), m_selectionTexture(0), m_depthFrameBuffer(0), @@ -102,7 +101,6 @@ Bars3DRenderer::~Bars3DRenderer() delete m_depthShader; delete m_selectionShader; delete m_backgroundShader; - delete m_labelShader; } void Bars3DRenderer::initializeOpenGL() @@ -110,8 +108,6 @@ void Bars3DRenderer::initializeOpenGL() Abstract3DRenderer::initializeOpenGL(); // Initialize shaders - initLabelShaders(QStringLiteral(":/shaders/vertexLabel"), - QStringLiteral(":/shaders/fragmentLabel")); #if !defined(QT_OPENGL_ES_2) // Init depth shader (for shadows). Init in any case, easier to handle shadow activation if done via api. @@ -2814,14 +2810,6 @@ void Bars3DRenderer::initBackgroundShaders(const QString &vertexShader, m_backgroundShader->initialize(); } -void Bars3DRenderer::initLabelShaders(const QString &vertexShader, const QString &fragmentShader) -{ - if (m_labelShader) - delete m_labelShader; - m_labelShader = new ShaderHelper(this, vertexShader, fragmentShader); - m_labelShader->initialize(); -} - QVector3D Bars3DRenderer::convertPositionToTranslation(const QVector3D &position, bool isAbsolute) { float xTrans = 0.0f; diff --git a/src/datavisualization/engine/bars3drenderer_p.h b/src/datavisualization/engine/bars3drenderer_p.h index 7f1e83bb..47c9ab1d 100644 --- a/src/datavisualization/engine/bars3drenderer_p.h +++ b/src/datavisualization/engine/bars3drenderer_p.h @@ -66,7 +66,6 @@ private: ShaderHelper *m_depthShader; ShaderHelper *m_selectionShader; ShaderHelper *m_backgroundShader; - ShaderHelper *m_labelShader; GLuint m_bgrTexture; GLuint m_selectionTexture; GLuint m_depthFrameBuffer; @@ -164,7 +163,6 @@ private: void loadBackgroundMesh(); void initSelectionShader(); void initBackgroundShaders(const QString &vertexShader, const QString &fragmentShader); - void initLabelShaders(const QString &vertexShader, const QString &fragmentShader); void initSelectionBuffer(); #if !defined(QT_OPENGL_ES_2) void initDepthShader(); diff --git a/src/datavisualization/engine/scatter3drenderer.cpp b/src/datavisualization/engine/scatter3drenderer.cpp index 22d40a74..e9e395be 100644 --- a/src/datavisualization/engine/scatter3drenderer.cpp +++ b/src/datavisualization/engine/scatter3drenderer.cpp @@ -49,7 +49,6 @@ Scatter3DRenderer::Scatter3DRenderer(Scatter3DController *controller) m_depthShader(0), m_selectionShader(0), m_backgroundShader(0), - m_labelShader(0), m_staticGradientPointShader(0), m_bgrTexture(0), m_selectionTexture(0), @@ -93,7 +92,6 @@ Scatter3DRenderer::~Scatter3DRenderer() delete m_depthShader; delete m_selectionShader; delete m_backgroundShader; - delete m_labelShader; delete m_staticGradientPointShader; } @@ -102,8 +100,6 @@ void Scatter3DRenderer::initializeOpenGL() Abstract3DRenderer::initializeOpenGL(); // Initialize shaders - initLabelShaders(QStringLiteral(":/shaders/vertexLabel"), - QStringLiteral(":/shaders/fragmentLabel")); #if !defined(QT_OPENGL_ES_2) // Init depth shader (for shadows). Init in any case, easier to handle shadow activation if done via api. @@ -2260,14 +2256,6 @@ void Scatter3DRenderer::initBackgroundShaders(const QString &vertexShader, m_backgroundShader->initialize(); } -void Scatter3DRenderer::initLabelShaders(const QString &vertexShader, const QString &fragmentShader) -{ - if (m_labelShader) - delete m_labelShader; - m_labelShader = new ShaderHelper(this, vertexShader, fragmentShader); - m_labelShader->initialize(); -} - void Scatter3DRenderer::initStaticPointShaders(const QString &vertexShader, const QString &fragmentShader) { @@ -2277,7 +2265,6 @@ void Scatter3DRenderer::initStaticPointShaders(const QString &vertexShader, m_staticGradientPointShader->initialize(); } - void Scatter3DRenderer::selectionColorToSeriesAndIndex(const QVector4D &color, int &index, QAbstract3DSeries *&series) diff --git a/src/datavisualization/engine/scatter3drenderer_p.h b/src/datavisualization/engine/scatter3drenderer_p.h index 0852f262..d8908e59 100644 --- a/src/datavisualization/engine/scatter3drenderer_p.h +++ b/src/datavisualization/engine/scatter3drenderer_p.h @@ -59,7 +59,6 @@ private: ShaderHelper *m_depthShader; ShaderHelper *m_selectionShader; ShaderHelper *m_backgroundShader; - ShaderHelper *m_labelShader; ShaderHelper *m_staticGradientPointShader; GLuint m_bgrTexture; GLuint m_selectionTexture; @@ -130,7 +129,6 @@ private: void loadBackgroundMesh(); void initSelectionShader(); void initBackgroundShaders(const QString &vertexShader, const QString &fragmentShader); - void initLabelShaders(const QString &vertexShader, const QString &fragmentShader); void initStaticPointShaders(const QString &vertexShader, const QString &fragmentShader); void initSelectionBuffer(); #if !defined(QT_OPENGL_ES_2) diff --git a/src/datavisualization/engine/surface3drenderer.cpp b/src/datavisualization/engine/surface3drenderer.cpp index 9bee6b30..9121e37c 100644 --- a/src/datavisualization/engine/surface3drenderer.cpp +++ b/src/datavisualization/engine/surface3drenderer.cpp @@ -49,7 +49,6 @@ Surface3DRenderer::Surface3DRenderer(Surface3DController *controller) m_surfaceSliceFlatShader(0), m_surfaceSliceSmoothShader(0), m_selectionShader(0), - m_labelShader(0), m_heightNormalizer(0.0f), m_scaleX(0.0f), m_scaleY(0.0f), @@ -110,7 +109,6 @@ Surface3DRenderer::~Surface3DRenderer() delete m_surfaceGridShader; delete m_surfaceSliceFlatShader; delete m_surfaceSliceSmoothShader; - delete m_labelShader; } void Surface3DRenderer::initializeOpenGL() @@ -119,8 +117,6 @@ void Surface3DRenderer::initializeOpenGL() // Initialize shaders initSurfaceShaders(); - initLabelShaders(QStringLiteral(":/shaders/vertexLabel"), - QStringLiteral(":/shaders/fragmentLabel")); #if !defined(QT_OPENGL_ES_2) // Init depth shader (for shadows). Init in any case, easier to handle shadow activation if done via api. @@ -2956,14 +2952,6 @@ void Surface3DRenderer::initSurfaceShaders() handleShadowQualityChange(); } -void Surface3DRenderer::initLabelShaders(const QString &vertexShader, const QString &fragmentShader) -{ - if (m_labelShader) - delete m_labelShader; - m_labelShader = new ShaderHelper(this, vertexShader, fragmentShader); - m_labelShader->initialize(); -} - #if !defined(QT_OPENGL_ES_2) void Surface3DRenderer::initDepthShader() { diff --git a/src/datavisualization/engine/surface3drenderer_p.h b/src/datavisualization/engine/surface3drenderer_p.h index 623951d4..cba1b959 100644 --- a/src/datavisualization/engine/surface3drenderer_p.h +++ b/src/datavisualization/engine/surface3drenderer_p.h @@ -57,7 +57,6 @@ private: ShaderHelper *m_surfaceSliceFlatShader; ShaderHelper *m_surfaceSliceSmoothShader; ShaderHelper *m_selectionShader; - ShaderHelper *m_labelShader; float m_heightNormalizer; float m_scaleX; float m_scaleY; @@ -137,7 +136,6 @@ private: void calculateSceneScalingFactors(); void initBackgroundShaders(const QString &vertexShader, const QString &fragmentShader); - void initLabelShaders(const QString &vertexShader, const QString &fragmentShader); void initSelectionShaders(); void initSurfaceShaders(); void initSelectionBuffer(); |