diff options
author | bunnei <bunneidev@gmail.com> | 2018-01-10 04:47:49 +0100 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2018-01-11 05:28:49 +0100 |
commit | 9e2ad45c9872f8f81d0e67cf08320fa388f2ca21 (patch) | |
tree | 08e83d5a4d6c1faca6a417c78f1076b9bb1c9c8c | |
parent | CMakeLists: Add framebuffer_layout.cpp. (diff) | |
download | yuzu-9e2ad45c9872f8f81d0e67cf08320fa388f2ca21.tar yuzu-9e2ad45c9872f8f81d0e67cf08320fa388f2ca21.tar.gz yuzu-9e2ad45c9872f8f81d0e67cf08320fa388f2ca21.tar.bz2 yuzu-9e2ad45c9872f8f81d0e67cf08320fa388f2ca21.tar.lz yuzu-9e2ad45c9872f8f81d0e67cf08320fa388f2ca21.tar.xz yuzu-9e2ad45c9872f8f81d0e67cf08320fa388f2ca21.tar.zst yuzu-9e2ad45c9872f8f81d0e67cf08320fa388f2ca21.zip |
-rw-r--r-- | src/video_core/renderer_opengl/renderer_opengl.cpp | 32 | ||||
-rw-r--r-- | src/video_core/renderer_opengl/renderer_opengl.h | 2 |
2 files changed, 11 insertions, 23 deletions
diff --git a/src/video_core/renderer_opengl/renderer_opengl.cpp b/src/video_core/renderer_opengl/renderer_opengl.cpp index 65c18aecc..ee9291f8c 100644 --- a/src/video_core/renderer_opengl/renderer_opengl.cpp +++ b/src/video_core/renderer_opengl/renderer_opengl.cpp @@ -349,19 +349,15 @@ void RendererOpenGL::ConfigureFramebufferTexture(TextureInfo& texture, state.Apply(); } -/** - * Draws a single texture to the emulator window, rotating the texture to correct for the 3DS's LCD - * rotation. - */ -void RendererOpenGL::DrawSingleScreenRotated(const ScreenInfo& screen_info, float x, float y, - float w, float h) { +void RendererOpenGL::DrawSingleScreen(const ScreenInfo& screen_info, float x, float y, float w, + float h) { auto& texcoords = screen_info.display_texcoords; std::array<ScreenRectVertex, 4> vertices = {{ - ScreenRectVertex(x, y, texcoords.bottom, texcoords.left), - ScreenRectVertex(x + w, y, texcoords.bottom, texcoords.right), - ScreenRectVertex(x, y + h, texcoords.top, texcoords.left), - ScreenRectVertex(x + w, y + h, texcoords.top, texcoords.right), + ScreenRectVertex(x, y, texcoords.top, texcoords.left), + ScreenRectVertex(x + w, y, texcoords.bottom, texcoords.left), + ScreenRectVertex(x, y + h, texcoords.top, texcoords.right), + ScreenRectVertex(x + w, y + h, texcoords.bottom, texcoords.right), }}; state.texture_units[0].texture_2d = screen_info.display_texture; @@ -378,9 +374,8 @@ void RendererOpenGL::DrawSingleScreenRotated(const ScreenInfo& screen_info, floa * Draws the emulated screens to the emulator window. */ void RendererOpenGL::DrawScreens() { - auto layout = render_window->GetFramebufferLayout(); - const auto& top_screen = layout.top_screen; - const auto& bottom_screen = layout.bottom_screen; + const auto& layout = render_window->GetFramebufferLayout(); + const auto& screen = layout.screen; glViewport(0, 0, layout.width, layout.height); glClear(GL_COLOR_BUFFER_BIT); @@ -394,15 +389,8 @@ void RendererOpenGL::DrawScreens() { glActiveTexture(GL_TEXTURE0); glUniform1i(uniform_color_texture, 0); - 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()); - } + DrawSingleScreen(screen_infos[0], (float)screen.left, (float)screen.top, + (float)screen.GetWidth(), (float)screen.GetHeight()); m_current_frame++; } diff --git a/src/video_core/renderer_opengl/renderer_opengl.h b/src/video_core/renderer_opengl/renderer_opengl.h index 0b4f69e8f..111b78466 100644 --- a/src/video_core/renderer_opengl/renderer_opengl.h +++ b/src/video_core/renderer_opengl/renderer_opengl.h @@ -57,7 +57,7 @@ private: void ConfigureFramebufferTexture(TextureInfo& texture, const GPU::Regs::FramebufferConfig& framebuffer); void DrawScreens(); - void DrawSingleScreenRotated(const ScreenInfo& screen_info, float x, float y, float w, float h); + void DrawSingleScreen(const ScreenInfo& screen_info, float x, float y, float w, float h); void UpdateFramerate(); // Loads framebuffer from emulated memory into the display information structure |