summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/utils/shaderhelper.cpp
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2014-08-13 15:09:36 +0300
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2014-08-18 09:11:30 +0300
commit169a4d638c6c1b6634ffcfd19c4fe3cb94cf27d5 (patch)
tree454810f2e9cc418bae9f1c6716c51c3fae38a968 /src/datavisualization/utils/shaderhelper.cpp
parentbe7bdaa8930caf15fcc58a480d223e0c2b8af6ed (diff)
Implement volume rendering support
New subclass of QCustom3DItem, QCustom3DVolume is provided. The documentation for the example will be done in a separate commit. Change-Id: Idb3fdb0654c6bec7606ca012b75852a5a8412397 Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'src/datavisualization/utils/shaderhelper.cpp')
-rw-r--r--src/datavisualization/utils/shaderhelper.cpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/datavisualization/utils/shaderhelper.cpp b/src/datavisualization/utils/shaderhelper.cpp
index 7fb237c6..3c3d93ac 100644
--- a/src/datavisualization/utils/shaderhelper.cpp
+++ b/src/datavisualization/utils/shaderhelper.cpp
@@ -93,6 +93,10 @@ void ShaderHelper::initialize()
m_gradientMinUniform = m_program->uniformLocation("gradMin");
m_gradientHeightUniform = m_program->uniformLocation("gradHeight");
m_lightColorUniform = m_program->uniformLocation("lightColor");
+ m_volumeSliceIndices = m_program->uniformLocation("volumeSliceIndices");
+ m_colorIndex = m_program->uniformLocation("colorIndex");
+ m_cameraPositionRelativeToModel = m_program->uniformLocation("cameraPositionRelativeToModel");
+ m_color8Bit = m_program->uniformLocation("color8Bit");
m_initialized = true;
}
@@ -150,6 +154,11 @@ void ShaderHelper::setUniformValue(GLuint uniform, GLint value)
m_program->setUniformValue(uniform, value);
}
+void ShaderHelper::setUniformValueArray(GLuint uniform, const QVector4D *values, int count)
+{
+ m_program->setUniformValueArray(uniform, values, count);
+}
+
GLuint ShaderHelper::MVP()
{
if (!m_initialized)
@@ -255,6 +264,34 @@ GLuint ShaderHelper::lightColor()
return m_lightColorUniform;
}
+GLuint ShaderHelper::volumeSliceIndices()
+{
+ if (!m_initialized)
+ qFatal("Shader not initialized");
+ return m_volumeSliceIndices;
+}
+
+GLuint ShaderHelper::colorIndex()
+{
+ if (!m_initialized)
+ qFatal("Shader not initialized");
+ return m_colorIndex;
+}
+
+GLuint ShaderHelper::cameraPositionRelativeToModel()
+{
+ if (!m_initialized)
+ qFatal("Shader not initialized");
+ return m_cameraPositionRelativeToModel;
+}
+
+GLuint ShaderHelper::color8Bit()
+{
+ if (!m_initialized)
+ qFatal("Shader not initialized");
+ return m_color8Bit;
+}
+
GLuint ShaderHelper::posAtt()
{
if (!m_initialized)