From 2b1654ad9bbd8af53f22434d350704a1a1d0a285 Mon Sep 17 00:00:00 2001 From: James Rowe Date: Tue, 3 May 2016 00:07:17 -0600 Subject: Support additional screen layouts. Allows users to choose a single screen layout or a large screen layout. Adds a configuration option to change the prominent screen. --- src/video_core/renderer_opengl/renderer_opengl.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'src/video_core') diff --git a/src/video_core/renderer_opengl/renderer_opengl.cpp b/src/video_core/renderer_opengl/renderer_opengl.cpp index 03a588364..fd0d74ace 100644 --- a/src/video_core/renderer_opengl/renderer_opengl.cpp +++ b/src/video_core/renderer_opengl/renderer_opengl.cpp @@ -390,6 +390,8 @@ void RendererOpenGL::DrawSingleScreenRotated(const ScreenInfo& screen_info, floa */ void RendererOpenGL::DrawScreens() { auto layout = render_window->GetFramebufferLayout(); + const auto& top_screen = layout.top_screen; + const auto& bottom_screen = layout.bottom_screen; glViewport(0, 0, layout.width, layout.height); glClear(GL_COLOR_BUFFER_BIT); @@ -403,12 +405,16 @@ void RendererOpenGL::DrawScreens() { glActiveTexture(GL_TEXTURE0); glUniform1i(uniform_color_texture, 0); - DrawSingleScreenRotated(screen_infos[0], (float)layout.top_screen.left, - (float)layout.top_screen.top, (float)layout.top_screen.GetWidth(), - (float)layout.top_screen.GetHeight()); - DrawSingleScreenRotated(screen_infos[1], (float)layout.bottom_screen.left, - (float)layout.bottom_screen.top, (float)layout.bottom_screen.GetWidth(), - (float)layout.bottom_screen.GetHeight()); + if (layout.top_screen_enabled) { + DrawSingleScreenRotated(screen_infos[0], (float)top_screen.left, + (float)top_screen.top, (float)top_screen.GetWidth(), + (float)top_screen.GetHeight()); + } + if (layout.bottom_screen_enabled) { + DrawSingleScreenRotated(screen_infos[1], (float)bottom_screen.left, + (float)bottom_screen.top, (float)bottom_screen.GetWidth(), + (float)bottom_screen.GetHeight()); + } m_current_frame++; } -- cgit v1.2.3