diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2014-09-30 15:25:16 +0300 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2014-10-01 10:15:02 +0300 |
commit | 0c5d66e630c903c8a7fb63f56a19188a53b2c383 (patch) | |
tree | c1888401292faced5c9a628c6b844296138c336b /src/datavisualization/engine/abstract3drenderer.cpp | |
parent | 6821c16e36a7454627ac9a18cd1d8b0f0bd9246f (diff) |
Fix selection color and gradient for static optimization
Added separate shaders for rendering selected items, as the texture
mapping that the regular static optimization shaders expect is not
correct for single objects.
Task-number: QTRD-3306
Change-Id: I6eb6cef94a4d2b4e5bdd03748f18db641a9fc4f6
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'src/datavisualization/engine/abstract3drenderer.cpp')
-rw-r--r-- | src/datavisualization/engine/abstract3drenderer.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/datavisualization/engine/abstract3drenderer.cpp b/src/datavisualization/engine/abstract3drenderer.cpp index aaf5418f..277ef03e 100644 --- a/src/datavisualization/engine/abstract3drenderer.cpp +++ b/src/datavisualization/engine/abstract3drenderer.cpp @@ -223,6 +223,18 @@ void Abstract3DRenderer::initGradientShaders(const QString &vertexShader, Q_UNUSED(fragmentShader) } +void Abstract3DRenderer::initStaticSelectedItemShaders(const QString &vertexShader, + const QString &fragmentShader, + const QString &gradientVertexShader, + const QString &gradientFragmentShader) +{ + // Do nothing by default + Q_UNUSED(vertexShader) + Q_UNUSED(fragmentShader) + Q_UNUSED(gradientVertexShader) + Q_UNUSED(gradientFragmentShader) +} + void Abstract3DRenderer::initCustomItemShaders(const QString &vertexShader, const QString &fragmentShader) { @@ -362,6 +374,10 @@ void Abstract3DRenderer::reInitShaders() && qobject_cast<Scatter3DRenderer *>(this)) { initGradientShaders(QStringLiteral(":/shaders/vertexShadow"), QStringLiteral(":/shaders/fragmentShadow")); + initStaticSelectedItemShaders(QStringLiteral(":/shaders/vertexShadow"), + QStringLiteral(":/shaders/fragmentShadowNoTex"), + QStringLiteral(":/shaders/vertexShadow"), + QStringLiteral(":/shaders/fragmentShadowNoTexColorOnY")); initShaders(QStringLiteral(":/shaders/vertexShadowNoMatrices"), QStringLiteral(":/shaders/fragmentShadowNoTex")); } else { @@ -379,6 +395,10 @@ void Abstract3DRenderer::reInitShaders() && qobject_cast<Scatter3DRenderer *>(this)) { initGradientShaders(QStringLiteral(":/shaders/vertexTexture"), QStringLiteral(":/shaders/fragmentTexture")); + initStaticSelectedItemShaders(QStringLiteral(":/shaders/vertex"), + QStringLiteral(":/shaders/fragment"), + QStringLiteral(":/shaders/vertex"), + QStringLiteral(":/shaders/fragmentColorOnY")); initShaders(QStringLiteral(":/shaders/vertexNoMatrices"), QStringLiteral(":/shaders/fragment")); } else { @@ -403,6 +423,10 @@ void Abstract3DRenderer::reInitShaders() && qobject_cast<Scatter3DRenderer *>(this)) { initGradientShaders(QStringLiteral(":/shaders/vertexTexture"), QStringLiteral(":/shaders/fragmentTextureES2")); + initStaticSelectedItemShaders(QStringLiteral(":/shaders/vertex"), + QStringLiteral(":/shaders/fragmentES2"), + QStringLiteral(":/shaders/vertex"), + QStringLiteral(":/shaders/fragmentColorOnYES2")); initBackgroundShaders(QStringLiteral(":/shaders/vertexNoMatrices"), QStringLiteral(":/shaders/fragmentES2")); } else { |