Added "Reverse Side by Side" Sterioscopic 3D mode
This commit is contained in:
@@ -751,6 +751,15 @@ void RendererOpenGL::DrawTopScreen(const Layout::FramebufferLayout& layout,
|
||||
top_screen_top, top_screen_width / 2, top_screen_height, orientation);
|
||||
break;
|
||||
}
|
||||
case Settings::StereoRenderOption::ReverseSideBySide: {
|
||||
DrawSingleScreen(screen_infos[1], top_screen_left / 2, top_screen_top, top_screen_width / 2,
|
||||
top_screen_height, orientation);
|
||||
glUniform1i(uniform_layer, 1);
|
||||
DrawSingleScreen(screen_infos[0],
|
||||
static_cast<float>((top_screen_left / 2) + (layout.width / 2)),
|
||||
top_screen_top, top_screen_width / 2, top_screen_height, orientation);
|
||||
break;
|
||||
}
|
||||
case Settings::StereoRenderOption::CardboardVR: {
|
||||
DrawSingleScreen(screen_infos[0], top_screen_left, top_screen_top, top_screen_width,
|
||||
top_screen_height, orientation);
|
||||
@@ -791,7 +800,8 @@ void RendererOpenGL::DrawBottomScreen(const Layout::FramebufferLayout& layout,
|
||||
bottom_screen_width, bottom_screen_height, orientation);
|
||||
break;
|
||||
}
|
||||
case Settings::StereoRenderOption::SideBySide: {
|
||||
case Settings::StereoRenderOption::SideBySide: // Bottom screen is identical on both sides
|
||||
case Settings::StereoRenderOption::ReverseSideBySide: {
|
||||
DrawSingleScreen(screen_infos[2], bottom_screen_left / 2, bottom_screen_top,
|
||||
bottom_screen_width / 2, bottom_screen_height, orientation);
|
||||
glUniform1i(uniform_layer, 1);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// Copyright 2023 Citra Emulator Project
|
||||
// Copyright Citra Emulator Project / Lime3DS Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
@@ -698,6 +698,14 @@ void RendererVulkan::DrawTopScreen(const Layout::FramebufferLayout& layout,
|
||||
top_screen_top, top_screen_width / 2, top_screen_height, orientation);
|
||||
break;
|
||||
}
|
||||
case Settings::StereoRenderOption::ReverseSideBySide: {
|
||||
DrawSingleScreen(1, top_screen_left / 2, top_screen_top, top_screen_width / 2,
|
||||
top_screen_height, orientation);
|
||||
draw_info.layer = 1;
|
||||
DrawSingleScreen(0, static_cast<float>((top_screen_left / 2) + (layout.width / 2)),
|
||||
top_screen_top, top_screen_width / 2, top_screen_height, orientation);
|
||||
break;
|
||||
}
|
||||
case Settings::StereoRenderOption::CardboardVR: {
|
||||
DrawSingleScreen(0, top_screen_left, top_screen_top, top_screen_width, top_screen_height,
|
||||
orientation);
|
||||
@@ -737,7 +745,8 @@ void RendererVulkan::DrawBottomScreen(const Layout::FramebufferLayout& layout,
|
||||
bottom_screen_height, orientation);
|
||||
break;
|
||||
}
|
||||
case Settings::StereoRenderOption::SideBySide: {
|
||||
case Settings::StereoRenderOption::SideBySide: // Bottom screen is identical on both sides
|
||||
case Settings::StereoRenderOption::ReverseSideBySide: {
|
||||
DrawSingleScreen(2, bottom_screen_left / 2, bottom_screen_top, bottom_screen_width / 2,
|
||||
bottom_screen_height, orientation);
|
||||
draw_info.layer = 1;
|
||||
|
||||
Reference in New Issue
Block a user