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.
This commit is contained in:
James Rowe 2016-05-03 00:07:17 -06:00
parent 1f70365faa
commit 2b1654ad9b
16 changed files with 522 additions and 132 deletions

View file

@ -7,6 +7,8 @@
#include "settings.h"
#include "video_core/video_core.h"
#include "common/emu_window.h"
namespace Settings {
Values values = {};
@ -20,6 +22,11 @@ void Apply() {
VideoCore::g_shader_jit_enabled = values.use_shader_jit;
VideoCore::g_scaled_resolution_enabled = values.use_scaled_resolution;
if (VideoCore::g_emu_window) {
auto layout = VideoCore::g_emu_window->GetFramebufferLayout();
VideoCore::g_emu_window->UpdateCurrentFramebufferLayout(layout.width, layout.height);
}
AudioCore::SelectSink(values.sink_id);
AudioCore::EnableStretching(values.enable_audio_stretching);
}

View file

@ -10,7 +10,15 @@
namespace Settings {
enum class LayoutOption {
Default,
SingleScreen,
LargeScreen,
Custom,
};
namespace NativeInput {
enum Values {
// directly mapped keys
A,
@ -84,6 +92,9 @@ struct Values {
bool use_scaled_resolution;
bool use_vsync;
LayoutOption layout_option;
bool swap_screen;
float bg_red;
float bg_green;
float bg_blue;