summaryrefslogtreecommitdiffstats
path: root/examples/datavisualization
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2014-09-01 14:45:05 +0300
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2014-09-02 09:11:56 +0300
commit3c2d0623c74cc51d0c3b73e0b56b5f5052676ee4 (patch)
treea808859fae11c73df396768f5783c10b66d16592 /examples/datavisualization
parenta20806dac74415f3d8cb6679c9eae86ce074ddae (diff)
Add option to use low definition volume shader.
Low definition volume shader samples the texture at even intervals, so it will sometimes skip texels, causing flickering. Change-Id: Iee6cb0e8893498b89ce1a40f34701a53d100283e Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'examples/datavisualization')
-rw-r--r--examples/datavisualization/volumetric/main.cpp9
-rw-r--r--examples/datavisualization/volumetric/volumetric.cpp5
-rw-r--r--examples/datavisualization/volumetric/volumetric.h1
3 files changed, 14 insertions, 1 deletions
diff --git a/examples/datavisualization/volumetric/main.cpp b/examples/datavisualization/volumetric/main.cpp
index 84062969..68895b17 100644
--- a/examples/datavisualization/volumetric/main.cpp
+++ b/examples/datavisualization/volumetric/main.cpp
@@ -135,6 +135,10 @@ int main(int argc, char **argv)
preserveOpacityCheckBox->setText(QStringLiteral("Preserve opacity"));
preserveOpacityCheckBox->setChecked(true);
+ QCheckBox *useHighDefShaderCheckBox = new QCheckBox(widget);
+ useHighDefShaderCheckBox->setText(QStringLiteral("Use HD shader"));
+ useHighDefShaderCheckBox->setChecked(true);
+
vLayout->addWidget(sliceXCheckBox);
vLayout->addWidget(sliceXSlider);
vLayout->addWidget(sliceImageXLabel);
@@ -150,7 +154,8 @@ int main(int argc, char **argv)
vLayout2->addWidget(colorTableCheckBox);
vLayout2->addWidget(alphaMultiplierLabel);
vLayout2->addWidget(alphaMultiplierSlider);
- vLayout2->addWidget(preserveOpacityCheckBox, 1, Qt::AlignTop);
+ vLayout2->addWidget(preserveOpacityCheckBox);
+ vLayout2->addWidget(useHighDefShaderCheckBox, 1, Qt::AlignTop);
VolumetricModifier *modifier = new VolumetricModifier(graph);
modifier->setFpsLabel(fpsLabel);
@@ -184,6 +189,8 @@ int main(int argc, char **argv)
&VolumetricModifier::changeColorTable);
QObject::connect(preserveOpacityCheckBox, &QCheckBox::stateChanged, modifier,
&VolumetricModifier::setPreserveOpacity);
+ QObject::connect(useHighDefShaderCheckBox, &QCheckBox::stateChanged, modifier,
+ &VolumetricModifier::setUseHighDefShader);
QObject::connect(alphaMultiplierSlider, &QSlider::valueChanged, modifier,
&VolumetricModifier::adjustAlphaMultiplier);
diff --git a/examples/datavisualization/volumetric/volumetric.cpp b/examples/datavisualization/volumetric/volumetric.cpp
index 56f02dcb..1de4b1b7 100644
--- a/examples/datavisualization/volumetric/volumetric.cpp
+++ b/examples/datavisualization/volumetric/volumetric.cpp
@@ -338,6 +338,11 @@ void VolumetricModifier::setPreserveOpacity(bool enabled)
adjustSliceZ(m_sliceSliderZ->value());
}
+void VolumetricModifier::setUseHighDefShader(bool enabled)
+{
+ m_volumeItem->setUseHighDefShader(enabled);
+}
+
void VolumetricModifier::adjustAlphaMultiplier(int value)
{
float mult;
diff --git a/examples/datavisualization/volumetric/volumetric.h b/examples/datavisualization/volumetric/volumetric.h
index 497506ad..83af4b3c 100644
--- a/examples/datavisualization/volumetric/volumetric.h
+++ b/examples/datavisualization/volumetric/volumetric.h
@@ -60,6 +60,7 @@ public slots:
void setSliceSliders(QSlider *sliderX, QSlider *sliderY, QSlider *sliderZ);
void changeColorTable(int enabled);
void setPreserveOpacity(bool enabled);
+ void setUseHighDefShader(bool enabled);
void adjustAlphaMultiplier(int value);
private: