aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFranz Koch <franz.koch@elements-net.de>2013-06-05 23:08:19 +0200
committerJoakim Plate <elupus@ecce.se>2013-08-01 16:59:01 +0200
commit4e90810c9e0ff097f1d0aab2be30ee952c686eeb (patch)
tree6c2ce4ea4dfa4afe797fbecdb49de2fad37f5508
parent352862d1c2d612b930bbd2ea1b487b96878ad333 (diff)
[3D] add stereoscopic mode "mono" (2D)
-rw-r--r--language/English/strings.po5
-rw-r--r--xbmc/Application.cpp10
-rw-r--r--xbmc/rendering/RenderSystem.cpp1
-rw-r--r--xbmc/rendering/RenderSystem.h1
-rw-r--r--xbmc/settings/DisplaySettings.cpp18
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 &current)
{
- 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));
}
}