diff options
author | Franz Koch <franz.koch@elements-net.de> | 2013-06-05 23:08:19 +0200 |
---|---|---|
committer | Joakim Plate <elupus@ecce.se> | 2013-08-01 16:59:01 +0200 |
commit | 4e90810c9e0ff097f1d0aab2be30ee952c686eeb (patch) | |
tree | 6c2ce4ea4dfa4afe797fbecdb49de2fad37f5508 | |
parent | 352862d1c2d612b930bbd2ea1b487b96878ad333 (diff) |
[3D] add stereoscopic mode "mono" (2D)
-rw-r--r-- | language/English/strings.po | 5 | ||||
-rw-r--r-- | xbmc/Application.cpp | 10 | ||||
-rw-r--r-- | xbmc/rendering/RenderSystem.cpp | 1 | ||||
-rw-r--r-- | xbmc/rendering/RenderSystem.h | 1 | ||||
-rw-r--r-- | xbmc/settings/DisplaySettings.cpp | 18 |
5 files changed, 18 insertions, 17 deletions
diff --git a/language/English/strings.po b/language/English/strings.po index 705f7ac37f..b04d1ea28a 100644 --- a/language/English/strings.po +++ b/language/English/strings.po @@ -14193,6 +14193,11 @@ msgctxt "#36508" msgid "Hardware Based" msgstr "" +#: system/settings/settings.xml +msgctxt "#36509" +msgid "Mono (2D)" +msgstr "" + #reserved strings 365XX #: xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamNavigator.cpp diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp index 77f8a43a45..739abd6150 100644 --- a/xbmc/Application.cpp +++ b/xbmc/Application.cpp @@ -2121,9 +2121,13 @@ void CApplication::Render() g_graphicsContext.SetStereoView(RENDER_STEREO_VIEW_LEFT); if(RenderNoPresent()) hasRendered = true; - g_graphicsContext.SetStereoView(RENDER_STEREO_VIEW_RIGHT); - if(RenderNoPresent()) - hasRendered = true; + + if(g_graphicsContext.GetStereoMode() != RENDER_STEREO_MODE_MONO) + { + g_graphicsContext.SetStereoView(RENDER_STEREO_VIEW_RIGHT); + if(RenderNoPresent()) + hasRendered = true; + } g_graphicsContext.SetStereoView(RENDER_STEREO_VIEW_OFF); } else diff --git a/xbmc/rendering/RenderSystem.cpp b/xbmc/rendering/RenderSystem.cpp index 6e3a203c0c..e5a98f69f2 100644 --- a/xbmc/rendering/RenderSystem.cpp +++ b/xbmc/rendering/RenderSystem.cpp @@ -72,6 +72,7 @@ bool CRenderSystemBase::SupportsStereo(RENDER_STEREO_MODE mode) const case RENDER_STEREO_MODE_OFF: case RENDER_STEREO_MODE_SPLIT_HORIZONTAL: case RENDER_STEREO_MODE_SPLIT_VERTICAL: + case RENDER_STEREO_MODE_MONO: return true; default: return false; diff --git a/xbmc/rendering/RenderSystem.h b/xbmc/rendering/RenderSystem.h index c4e6e409c6..cb787e58cf 100644 --- a/xbmc/rendering/RenderSystem.h +++ b/xbmc/rendering/RenderSystem.h @@ -76,6 +76,7 @@ enum RENDER_STEREO_MODE RENDER_STEREO_MODE_ANAGLYPH_GREEN_MAGENTA, RENDER_STEREO_MODE_INTERLACED, RENDER_STEREO_MODE_HARDWAREBASED, + RENDER_STEREO_MODE_MONO, RENDER_STEREO_MODE_COUNT, }; diff --git a/xbmc/settings/DisplaySettings.cpp b/xbmc/settings/DisplaySettings.cpp index eaf921e3be..4d8e378063 100644 --- a/xbmc/settings/DisplaySettings.cpp +++ b/xbmc/settings/DisplaySettings.cpp @@ -600,20 +600,10 @@ void CDisplaySettings::SettingOptionsVerticalSyncsFiller(const CSetting *setting void CDisplaySettings::SettingOptionsStereoscopicModesFiller(const CSetting *setting, std::vector< std::pair<std::string, int> > &list, int ¤t) { - list.push_back(make_pair(g_localizeStrings.Get(36502),RENDER_STEREO_MODE_OFF)); - list.push_back(make_pair(g_localizeStrings.Get(36503),RENDER_STEREO_MODE_SPLIT_HORIZONTAL)); - list.push_back(make_pair(g_localizeStrings.Get(36504),RENDER_STEREO_MODE_SPLIT_VERTICAL)); - list.push_back(make_pair(g_localizeStrings.Get(36505),RENDER_STEREO_MODE_ANAGLYPH_RED_CYAN)); - list.push_back(make_pair(g_localizeStrings.Get(36506),RENDER_STEREO_MODE_ANAGLYPH_GREEN_MAGENTA)); - list.push_back(make_pair(g_localizeStrings.Get(36507),RENDER_STEREO_MODE_INTERLACED)); - list.push_back(make_pair(g_localizeStrings.Get(36508),RENDER_STEREO_MODE_HARDWAREBASED)); - - // Remove any mode not supported by render system - for(std::vector< std::pair<std::string, int> >::iterator it = list.begin(); it != list.end();) + for (int i = RENDER_STEREO_MODE_OFF; i < RENDER_STEREO_MODE_COUNT; i++) { - if(!g_Windowing.SupportsStereo((RENDER_STEREO_MODE)it->second)) - it = list.erase(it); - else - ++it; + RENDER_STEREO_MODE mode = (RENDER_STEREO_MODE) i; + if (g_Windowing.SupportsStereo(mode)) + list.push_back(make_pair(CStereoscopicsManager::Get().GetLabelForStereoMode(mode), mode)); } } |