summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorKaj Grönholm <kaj.gronholm@qt.io>2019-10-09 20:51:39 +0300
committerKaj Grönholm <kaj.gronholm@qt.io>2019-10-11 13:10:32 +0300
commit7da61c9da6b885fa90d274d220c2bcef2553b006 (patch)
treefbd473eff154ab42133ff14724e87128892b9922 /tools
parentd0cfd79d940bd9ed4dd63334ecf686fa013eaf37 (diff)
Add anaglyph stereoscopic modes into opengl runtime
Implement also anaglyph red-cyan & green-magenta stereoscopic modes for opengl runtime. APIs for C++ and QML. Add options into viewer. Task-number: QT3DS-3981 Change-Id: Idb9f659b3799e954253e37045c1a3b2a55fb2779 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> Reviewed-by: Antti Määttä <antti.maatta@qt.io>
Diffstat (limited to 'tools')
-rw-r--r--tools/viewer/main.cpp4
-rw-r--r--tools/viewer/qml/main.qml24
2 files changed, 28 insertions, 0 deletions
diff --git a/tools/viewer/main.cpp b/tools/viewer/main.cpp
index 70da8fa..1bcbe9d 100644
--- a/tools/viewer/main.cpp
+++ b/tools/viewer/main.cpp
@@ -377,6 +377,10 @@ int main(int argc, char *argv[])
appWindow->setProperty("stereoMode", Q3DSViewerSettings::StereoModeTopBottom);
else if (stereoStr == QStringLiteral("leftright"))
appWindow->setProperty("stereoMode", Q3DSViewerSettings::StereoModeLeftRight);
+ else if (stereoStr == QStringLiteral("anaglyphredcyan"))
+ appWindow->setProperty("stereoMode", Q3DSViewerSettings::StereoModeAnaglyphRedCyan);
+ else if (stereoStr == QStringLiteral("anaglyphgreenmagenta"))
+ appWindow->setProperty("stereoMode", Q3DSViewerSettings::StereoModeAnaglyphGreenMagenta);
else
appWindow->setProperty("stereoMode", Q3DSViewerSettings::StereoModeMono);
}
diff --git a/tools/viewer/qml/main.qml b/tools/viewer/qml/main.qml
index a53c0df..153753a 100644
--- a/tools/viewer/qml/main.qml
+++ b/tools/viewer/qml/main.qml
@@ -570,6 +570,10 @@ ApplicationWindow {
else if (window.stereoMode === ViewerSettings.StereoModeTopBottom)
window.stereoMode = ViewerSettings.StereoModeLeftRight;
else if (window.stereoMode === ViewerSettings.StereoModeLeftRight)
+ window.stereoMode = ViewerSettings.StereoModeAnaglyphRedCyan;
+ else if (window.stereoMode === ViewerSettings.StereoModeAnaglyphRedCyan)
+ window.stereoMode = ViewerSettings.StereoModeAnaglyphGreenMagenta;
+ else if (window.stereoMode === ViewerSettings.StereoModeAnaglyphGreenMagenta)
window.stereoMode = ViewerSettings.StereoModeMono;
}
}
@@ -610,6 +614,26 @@ ApplicationWindow {
}
}
StyledMenuItem {
+ id: stereoAnaglyphRedCyan
+ text: qsTr("Anaglyph (Red-Cyan)")
+ enabled: _viewerHelper.contentView === ViewerHelper.StudioView
+ showCheckMark: window.stereoMode === ViewerSettings.StereoModeAnaglyphRedCyan
+ onTriggered: {
+ if (enabled)
+ window.stereoMode = ViewerSettings.StereoModeAnaglyphRedCyan;
+ }
+ }
+ StyledMenuItem {
+ id: stereoAnaglyphGreenMagenta
+ text: qsTr("Anaglyph (Green-Magenta)")
+ enabled: _viewerHelper.contentView === ViewerHelper.StudioView
+ showCheckMark: window.stereoMode === ViewerSettings.StereoModeAnaglyphGreenMagenta
+ onTriggered: {
+ if (enabled)
+ window.stereoMode = ViewerSettings.StereoModeAnaglyphGreenMagenta;
+ }
+ }
+ StyledMenuItem {
id: stereoEyeSeparationUp
text: qsTr("Increase Separation")
shortcut: "Ctrl+Shift++"