summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar bunnei2016-08-25 18:20:47 -0400
committerGravatar bunnei2016-08-29 21:42:30 -0400
commit08ad9b36d44e3cca0802bb1198036c5d77c844cc (patch)
tree8bbca77978c74081557adf548ec65e624ae3ccfd /src
parentqt: Add a configuration tab for Graphics and move relevant fields. (diff)
downloadyuzu-08ad9b36d44e3cca0802bb1198036c5d77c844cc.tar.gz
yuzu-08ad9b36d44e3cca0802bb1198036c5d77c844cc.tar.xz
yuzu-08ad9b36d44e3cca0802bb1198036c5d77c844cc.zip
config: Add a setting for graphics V-Sync.
Diffstat (limited to 'src')
-rw-r--r--src/citra/config.cpp1
-rw-r--r--src/citra/default_ini.h4
-rw-r--r--src/citra/emu_window/emu_window_sdl2.cpp1
-rw-r--r--src/citra_qt/bootmanager.cpp1
-rw-r--r--src/citra_qt/config.cpp2
-rw-r--r--src/citra_qt/configure_graphics.cpp3
-rw-r--r--src/citra_qt/configure_graphics.ui7
-rw-r--r--src/core/settings.h1
-rw-r--r--src/video_core/video_core.cpp1
9 files changed, 20 insertions, 1 deletions
diff --git a/src/citra/config.cpp b/src/citra/config.cpp
index e832ec58d..d71045646 100644
--- a/src/citra/config.cpp
+++ b/src/citra/config.cpp
@@ -71,6 +71,7 @@ void Config::ReadValues() {
71 Settings::values.use_hw_renderer = sdl2_config->GetBoolean("Renderer", "use_hw_renderer", true); 71 Settings::values.use_hw_renderer = sdl2_config->GetBoolean("Renderer", "use_hw_renderer", true);
72 Settings::values.use_shader_jit = sdl2_config->GetBoolean("Renderer", "use_shader_jit", true); 72 Settings::values.use_shader_jit = sdl2_config->GetBoolean("Renderer", "use_shader_jit", true);
73 Settings::values.use_scaled_resolution = sdl2_config->GetBoolean("Renderer", "use_scaled_resolution", false); 73 Settings::values.use_scaled_resolution = sdl2_config->GetBoolean("Renderer", "use_scaled_resolution", false);
74 Settings::values.use_vsync = sdl2_config->GetBoolean("Renderer", "use_vsync", false);
74 75
75 Settings::values.bg_red = (float)sdl2_config->GetReal("Renderer", "bg_red", 1.0); 76 Settings::values.bg_red = (float)sdl2_config->GetReal("Renderer", "bg_red", 1.0);
76 Settings::values.bg_green = (float)sdl2_config->GetReal("Renderer", "bg_green", 1.0); 77 Settings::values.bg_green = (float)sdl2_config->GetReal("Renderer", "bg_green", 1.0);
diff --git a/src/citra/default_ini.h b/src/citra/default_ini.h
index 6249ef9e2..b10700e62 100644
--- a/src/citra/default_ini.h
+++ b/src/citra/default_ini.h
@@ -55,6 +55,10 @@ use_shader_jit =
55# 0 (default): Native, 1: Scaled 55# 0 (default): Native, 1: Scaled
56use_scaled_resolution = 56use_scaled_resolution =
57 57
58# Whether to enable V-Sync (caps the framerate at 60FPS) or not.
59# 0 (default): Off, 1: On
60use_vsync =
61
58# The clear color for the renderer. What shows up on the sides of the bottom screen. 62# The clear color for the renderer. What shows up on the sides of the bottom screen.
59# Must be in range of 0.0-1.0. Defaults to 1.0 for all. 63# Must be in range of 0.0-1.0. Defaults to 1.0 for all.
60bg_red = 64bg_red =
diff --git a/src/citra/emu_window/emu_window_sdl2.cpp b/src/citra/emu_window/emu_window_sdl2.cpp
index 591f68aa4..da12307b7 100644
--- a/src/citra/emu_window/emu_window_sdl2.cpp
+++ b/src/citra/emu_window/emu_window_sdl2.cpp
@@ -108,6 +108,7 @@ EmuWindow_SDL2::EmuWindow_SDL2() {
108 OnResize(); 108 OnResize();
109 OnMinimalClientAreaChangeRequest(GetActiveConfig().min_client_area_size); 109 OnMinimalClientAreaChangeRequest(GetActiveConfig().min_client_area_size);
110 SDL_PumpEvents(); 110 SDL_PumpEvents();
111 SDL_GL_SetSwapInterval(Settings::values.use_vsync);
111 112
112 DoneCurrent(); 113 DoneCurrent();
113} 114}
diff --git a/src/citra_qt/bootmanager.cpp b/src/citra_qt/bootmanager.cpp
index 414b2f8af..a9669c559 100644
--- a/src/citra_qt/bootmanager.cpp
+++ b/src/citra_qt/bootmanager.cpp
@@ -119,6 +119,7 @@ GRenderWindow::GRenderWindow(QWidget* parent, EmuThread* emu_thread) :
119 QGLFormat fmt; 119 QGLFormat fmt;
120 fmt.setVersion(3,3); 120 fmt.setVersion(3,3);
121 fmt.setProfile(QGLFormat::CoreProfile); 121 fmt.setProfile(QGLFormat::CoreProfile);
122 fmt.setSwapInterval(VideoCore::g_vsync_enabled);
122 // Requests a forward-compatible context, which is required to get a 3.2+ context on OS X 123 // Requests a forward-compatible context, which is required to get a 3.2+ context on OS X
123 fmt.setOption(QGL::NoDeprecatedFunctions); 124 fmt.setOption(QGL::NoDeprecatedFunctions);
124 125
diff --git a/src/citra_qt/config.cpp b/src/citra_qt/config.cpp
index 93c6a6e41..ff7af445e 100644
--- a/src/citra_qt/config.cpp
+++ b/src/citra_qt/config.cpp
@@ -48,6 +48,7 @@ void Config::ReadValues() {
48 Settings::values.use_hw_renderer = qt_config->value("use_hw_renderer", true).toBool(); 48 Settings::values.use_hw_renderer = qt_config->value("use_hw_renderer", true).toBool();
49 Settings::values.use_shader_jit = qt_config->value("use_shader_jit", true).toBool(); 49 Settings::values.use_shader_jit = qt_config->value("use_shader_jit", true).toBool();
50 Settings::values.use_scaled_resolution = qt_config->value("use_scaled_resolution", false).toBool(); 50 Settings::values.use_scaled_resolution = qt_config->value("use_scaled_resolution", false).toBool();
51 Settings::values.use_vsync = qt_config->value("use_vsync", false).toBool();
51 52
52 Settings::values.bg_red = qt_config->value("bg_red", 1.0).toFloat(); 53 Settings::values.bg_red = qt_config->value("bg_red", 1.0).toFloat();
53 Settings::values.bg_green = qt_config->value("bg_green", 1.0).toFloat(); 54 Settings::values.bg_green = qt_config->value("bg_green", 1.0).toFloat();
@@ -139,6 +140,7 @@ void Config::SaveValues() {
139 qt_config->setValue("use_hw_renderer", Settings::values.use_hw_renderer); 140 qt_config->setValue("use_hw_renderer", Settings::values.use_hw_renderer);
140 qt_config->setValue("use_shader_jit", Settings::values.use_shader_jit); 141 qt_config->setValue("use_shader_jit", Settings::values.use_shader_jit);
141 qt_config->setValue("use_scaled_resolution", Settings::values.use_scaled_resolution); 142 qt_config->setValue("use_scaled_resolution", Settings::values.use_scaled_resolution);
143 qt_config->setValue("use_vsync", Settings::values.use_vsync);
142 144
143 // Cast to double because Qt's written float values are not human-readable 145 // Cast to double because Qt's written float values are not human-readable
144 qt_config->setValue("bg_red", (double)Settings::values.bg_red); 146 qt_config->setValue("bg_red", (double)Settings::values.bg_red);
diff --git a/src/citra_qt/configure_graphics.cpp b/src/citra_qt/configure_graphics.cpp
index 85a120686..22def58d4 100644
--- a/src/citra_qt/configure_graphics.cpp
+++ b/src/citra_qt/configure_graphics.cpp
@@ -22,11 +22,12 @@ void ConfigureGraphics::setConfiguration() {
22 ui->toogle_hw_renderer->setChecked(Settings::values.use_hw_renderer); 22 ui->toogle_hw_renderer->setChecked(Settings::values.use_hw_renderer);
23 ui->toogle_shader_jit->setChecked(Settings::values.use_shader_jit); 23 ui->toogle_shader_jit->setChecked(Settings::values.use_shader_jit);
24 ui->toogle_scaled_resolution->setChecked(Settings::values.use_scaled_resolution); 24 ui->toogle_scaled_resolution->setChecked(Settings::values.use_scaled_resolution);
25 ui->toogle_vsync->setChecked(Settings::values.use_vsync);
25} 26}
26 27
27void ConfigureGraphics::applyConfiguration() { 28void ConfigureGraphics::applyConfiguration() {
28 Settings::values.use_hw_renderer = ui->toogle_hw_renderer->isChecked(); 29 Settings::values.use_hw_renderer = ui->toogle_hw_renderer->isChecked();
29 Settings::values.use_shader_jit = ui->toogle_shader_jit->isChecked(); 30 Settings::values.use_shader_jit = ui->toogle_shader_jit->isChecked();
30 Settings::values.use_scaled_resolution = ui->toogle_scaled_resolution->isChecked(); 31 Settings::values.use_vsync = ui->toogle_vsync->isChecked();
31 Settings::Apply(); 32 Settings::Apply();
32} 33}
diff --git a/src/citra_qt/configure_graphics.ui b/src/citra_qt/configure_graphics.ui
index 336d49b19..e68d68c0e 100644
--- a/src/citra_qt/configure_graphics.ui
+++ b/src/citra_qt/configure_graphics.ui
@@ -43,6 +43,13 @@
43 </property> 43 </property>
44 </widget> 44 </widget>
45 </item> 45 </item>
46 <item>
47 <widget class="QCheckBox" name="toogle_vsync">
48 <property name="text">
49 <string>Enable V-Sync</string>
50 </property>
51 </widget>
52 </item>
46 </layout> 53 </layout>
47 </widget> 54 </widget>
48 </item> 55 </item>
diff --git a/src/core/settings.h b/src/core/settings.h
index f95e62390..34ff22f3f 100644
--- a/src/core/settings.h
+++ b/src/core/settings.h
@@ -72,6 +72,7 @@ struct Values {
72 bool use_hw_renderer; 72 bool use_hw_renderer;
73 bool use_shader_jit; 73 bool use_shader_jit;
74 bool use_scaled_resolution; 74 bool use_scaled_resolution;
75 bool use_vsync;
75 76
76 float bg_red; 77 float bg_red;
77 float bg_green; 78 float bg_green;
diff --git a/src/video_core/video_core.cpp b/src/video_core/video_core.cpp
index c9975876d..bd6e5eb6b 100644
--- a/src/video_core/video_core.cpp
+++ b/src/video_core/video_core.cpp
@@ -22,6 +22,7 @@ std::unique_ptr<RendererBase> g_renderer; ///< Renderer plugin
22std::atomic<bool> g_hw_renderer_enabled; 22std::atomic<bool> g_hw_renderer_enabled;
23std::atomic<bool> g_shader_jit_enabled; 23std::atomic<bool> g_shader_jit_enabled;
24std::atomic<bool> g_scaled_resolution_enabled; 24std::atomic<bool> g_scaled_resolution_enabled;
25std::atomic<bool> g_vsync_enabled;
25 26
26/// Initialize the video core 27/// Initialize the video core
27bool Init(EmuWindow* emu_window) { 28bool Init(EmuWindow* emu_window) {