mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu.git
				synced 2025-05-12 00:45:25 +00:00 
			
		
		
		
	Merge pull request #2032 from bunnei/qt-graphics
Qt graphics configure & V-Sync option
This commit is contained in:
		
						commit
						09063dc5bb
					
				@ -71,6 +71,7 @@ void Config::ReadValues() {
 | 
			
		||||
    Settings::values.use_hw_renderer = sdl2_config->GetBoolean("Renderer", "use_hw_renderer", true);
 | 
			
		||||
    Settings::values.use_shader_jit = sdl2_config->GetBoolean("Renderer", "use_shader_jit", true);
 | 
			
		||||
    Settings::values.use_scaled_resolution = sdl2_config->GetBoolean("Renderer", "use_scaled_resolution", false);
 | 
			
		||||
    Settings::values.use_vsync = sdl2_config->GetBoolean("Renderer", "use_vsync", false);
 | 
			
		||||
 | 
			
		||||
    Settings::values.bg_red   = (float)sdl2_config->GetReal("Renderer", "bg_red",   1.0);
 | 
			
		||||
    Settings::values.bg_green = (float)sdl2_config->GetReal("Renderer", "bg_green", 1.0);
 | 
			
		||||
 | 
			
		||||
@ -55,6 +55,10 @@ use_shader_jit =
 | 
			
		||||
# 0 (default): Native, 1: Scaled
 | 
			
		||||
use_scaled_resolution =
 | 
			
		||||
 | 
			
		||||
# Whether to enable V-Sync (caps the framerate at 60FPS) or not.
 | 
			
		||||
# 0 (default): Off, 1: On
 | 
			
		||||
use_vsync =
 | 
			
		||||
 | 
			
		||||
# The clear color for the renderer. What shows up on the sides of the bottom screen.
 | 
			
		||||
# Must be in range of 0.0-1.0. Defaults to 1.0 for all.
 | 
			
		||||
bg_red =
 | 
			
		||||
 | 
			
		||||
@ -108,6 +108,7 @@ EmuWindow_SDL2::EmuWindow_SDL2() {
 | 
			
		||||
    OnResize();
 | 
			
		||||
    OnMinimalClientAreaChangeRequest(GetActiveConfig().min_client_area_size);
 | 
			
		||||
    SDL_PumpEvents();
 | 
			
		||||
    SDL_GL_SetSwapInterval(Settings::values.use_vsync);
 | 
			
		||||
 | 
			
		||||
    DoneCurrent();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -22,6 +22,7 @@ set(SRCS
 | 
			
		||||
            configure_debug.cpp
 | 
			
		||||
            configure_dialog.cpp
 | 
			
		||||
            configure_general.cpp
 | 
			
		||||
            configure_graphics.cpp
 | 
			
		||||
            configure_system.cpp
 | 
			
		||||
            configure_input.cpp
 | 
			
		||||
            game_list.cpp
 | 
			
		||||
@ -54,6 +55,7 @@ set(HEADERS
 | 
			
		||||
            configure_debug.h
 | 
			
		||||
            configure_dialog.h
 | 
			
		||||
            configure_general.h
 | 
			
		||||
            configure_graphics.h
 | 
			
		||||
            configure_system.h
 | 
			
		||||
            configure_input.h
 | 
			
		||||
            game_list.h
 | 
			
		||||
@ -73,6 +75,7 @@ set(UIS
 | 
			
		||||
            configure_audio.ui
 | 
			
		||||
            configure_debug.ui
 | 
			
		||||
            configure_general.ui
 | 
			
		||||
            configure_graphics.ui
 | 
			
		||||
            configure_system.ui
 | 
			
		||||
            configure_input.ui
 | 
			
		||||
            hotkeys.ui
 | 
			
		||||
 | 
			
		||||
@ -107,36 +107,13 @@ private:
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
GRenderWindow::GRenderWindow(QWidget* parent, EmuThread* emu_thread) :
 | 
			
		||||
    QWidget(parent), keyboard_id(0), emu_thread(emu_thread) {
 | 
			
		||||
    QWidget(parent), keyboard_id(0), emu_thread(emu_thread), child(nullptr) {
 | 
			
		||||
 | 
			
		||||
    std::string window_title = Common::StringFromFormat("Citra | %s-%s", Common::g_scm_branch, Common::g_scm_desc);
 | 
			
		||||
    setWindowTitle(QString::fromStdString(window_title));
 | 
			
		||||
 | 
			
		||||
    keyboard_id = KeyMap::NewDeviceId();
 | 
			
		||||
    ReloadSetKeymaps();
 | 
			
		||||
 | 
			
		||||
    // TODO: One of these flags might be interesting: WA_OpaquePaintEvent, WA_NoBackground, WA_DontShowOnScreen, WA_DeleteOnClose
 | 
			
		||||
    QGLFormat fmt;
 | 
			
		||||
    fmt.setVersion(3,3);
 | 
			
		||||
    fmt.setProfile(QGLFormat::CoreProfile);
 | 
			
		||||
    // Requests a forward-compatible context, which is required to get a 3.2+ context on OS X
 | 
			
		||||
    fmt.setOption(QGL::NoDeprecatedFunctions);
 | 
			
		||||
 | 
			
		||||
    child = new GGLWidgetInternal(fmt, this);
 | 
			
		||||
    QBoxLayout* layout = new QHBoxLayout(this);
 | 
			
		||||
 | 
			
		||||
    resize(VideoCore::kScreenTopWidth, VideoCore::kScreenTopHeight + VideoCore::kScreenBottomHeight);
 | 
			
		||||
    layout->addWidget(child);
 | 
			
		||||
    layout->setMargin(0);
 | 
			
		||||
    setLayout(layout);
 | 
			
		||||
 | 
			
		||||
    OnMinimalClientAreaChangeRequest(GetActiveConfig().min_client_area_size);
 | 
			
		||||
 | 
			
		||||
    OnFramebufferSizeChanged();
 | 
			
		||||
    NotifyClientAreaSizeChanged(std::pair<unsigned,unsigned>(child->width(), child->height()));
 | 
			
		||||
 | 
			
		||||
    BackupGeometry();
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void GRenderWindow::moveContext()
 | 
			
		||||
@ -281,6 +258,40 @@ void GRenderWindow::OnClientAreaResized(unsigned width, unsigned height)
 | 
			
		||||
    NotifyClientAreaSizeChanged(std::make_pair(width, height));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void GRenderWindow::InitRenderTarget() {
 | 
			
		||||
    if (child) {
 | 
			
		||||
        delete child;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (layout()) {
 | 
			
		||||
        delete layout();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // TODO: One of these flags might be interesting: WA_OpaquePaintEvent, WA_NoBackground, WA_DontShowOnScreen, WA_DeleteOnClose
 | 
			
		||||
    QGLFormat fmt;
 | 
			
		||||
    fmt.setVersion(3, 3);
 | 
			
		||||
    fmt.setProfile(QGLFormat::CoreProfile);
 | 
			
		||||
    fmt.setSwapInterval(Settings::values.use_vsync);
 | 
			
		||||
 | 
			
		||||
    // Requests a forward-compatible context, which is required to get a 3.2+ context on OS X
 | 
			
		||||
    fmt.setOption(QGL::NoDeprecatedFunctions);
 | 
			
		||||
 | 
			
		||||
    child = new GGLWidgetInternal(fmt, this);
 | 
			
		||||
    QBoxLayout* layout = new QHBoxLayout(this);
 | 
			
		||||
 | 
			
		||||
    resize(VideoCore::kScreenTopWidth, VideoCore::kScreenTopHeight + VideoCore::kScreenBottomHeight);
 | 
			
		||||
    layout->addWidget(child);
 | 
			
		||||
    layout->setMargin(0);
 | 
			
		||||
    setLayout(layout);
 | 
			
		||||
 | 
			
		||||
    OnMinimalClientAreaChangeRequest(GetActiveConfig().min_client_area_size);
 | 
			
		||||
 | 
			
		||||
    OnFramebufferSizeChanged();
 | 
			
		||||
    NotifyClientAreaSizeChanged(std::pair<unsigned, unsigned>(child->width(), child->height()));
 | 
			
		||||
 | 
			
		||||
    BackupGeometry();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void GRenderWindow::OnMinimalClientAreaChangeRequest(const std::pair<unsigned,unsigned>& minimal_size) {
 | 
			
		||||
    setMinimumSize(minimal_size.first, minimal_size.second);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -126,6 +126,8 @@ public:
 | 
			
		||||
 | 
			
		||||
    void OnClientAreaResized(unsigned width, unsigned height);
 | 
			
		||||
 | 
			
		||||
    void InitRenderTarget();
 | 
			
		||||
 | 
			
		||||
public slots:
 | 
			
		||||
    void moveContext();  // overridden
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -48,6 +48,7 @@ void Config::ReadValues() {
 | 
			
		||||
    Settings::values.use_hw_renderer = qt_config->value("use_hw_renderer", true).toBool();
 | 
			
		||||
    Settings::values.use_shader_jit = qt_config->value("use_shader_jit", true).toBool();
 | 
			
		||||
    Settings::values.use_scaled_resolution = qt_config->value("use_scaled_resolution", false).toBool();
 | 
			
		||||
    Settings::values.use_vsync = qt_config->value("use_vsync", false).toBool();
 | 
			
		||||
 | 
			
		||||
    Settings::values.bg_red   = qt_config->value("bg_red",   1.0).toFloat();
 | 
			
		||||
    Settings::values.bg_green = qt_config->value("bg_green", 1.0).toFloat();
 | 
			
		||||
@ -140,6 +141,7 @@ void Config::SaveValues() {
 | 
			
		||||
    qt_config->setValue("use_hw_renderer", Settings::values.use_hw_renderer);
 | 
			
		||||
    qt_config->setValue("use_shader_jit", Settings::values.use_shader_jit);
 | 
			
		||||
    qt_config->setValue("use_scaled_resolution", Settings::values.use_scaled_resolution);
 | 
			
		||||
    qt_config->setValue("use_vsync", Settings::values.use_vsync);
 | 
			
		||||
 | 
			
		||||
    // Cast to double because Qt's written float values are not human-readable
 | 
			
		||||
    qt_config->setValue("bg_red",   (double)Settings::values.bg_red);
 | 
			
		||||
 | 
			
		||||
@ -34,6 +34,11 @@
 | 
			
		||||
       <string>Input</string>
 | 
			
		||||
      </attribute>
 | 
			
		||||
     </widget>
 | 
			
		||||
      <widget class="ConfigureGraphics" name="graphicsTab">
 | 
			
		||||
        <attribute name="title">
 | 
			
		||||
          <string>Graphics</string>
 | 
			
		||||
        </attribute>
 | 
			
		||||
      </widget>
 | 
			
		||||
     <widget class="ConfigureAudio" name="audioTab">
 | 
			
		||||
       <attribute name="title">
 | 
			
		||||
         <string>Audio</string>
 | 
			
		||||
@ -86,6 +91,12 @@
 | 
			
		||||
   <header>configure_input.h</header>
 | 
			
		||||
   <container>1</container>
 | 
			
		||||
  </customwidget>
 | 
			
		||||
  <customwidget>
 | 
			
		||||
   <class>ConfigureGraphics</class>
 | 
			
		||||
   <extends>QWidget</extends>
 | 
			
		||||
   <header>configure_graphics.h</header>
 | 
			
		||||
   <container>1</container>
 | 
			
		||||
  </customwidget>
 | 
			
		||||
 </customwidgets>
 | 
			
		||||
 <resources/>
 | 
			
		||||
 <connections>
 | 
			
		||||
 | 
			
		||||
@ -19,13 +19,13 @@ ConfigureDebug::~ConfigureDebug() {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ConfigureDebug::setConfiguration() {
 | 
			
		||||
    ui->toogle_gdbstub->setChecked(Settings::values.use_gdbstub);
 | 
			
		||||
    ui->toggle_gdbstub->setChecked(Settings::values.use_gdbstub);
 | 
			
		||||
    ui->gdbport_spinbox->setEnabled(Settings::values.use_gdbstub);
 | 
			
		||||
    ui->gdbport_spinbox->setValue(Settings::values.gdbstub_port);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ConfigureDebug::applyConfiguration() {
 | 
			
		||||
    Settings::values.use_gdbstub = ui->toogle_gdbstub->isChecked();
 | 
			
		||||
    Settings::values.use_gdbstub = ui->toggle_gdbstub->isChecked();
 | 
			
		||||
    Settings::values.gdbstub_port = ui->gdbport_spinbox->value();
 | 
			
		||||
    Settings::Apply();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -25,7 +25,7 @@
 | 
			
		||||
        <item>
 | 
			
		||||
         <layout class="QHBoxLayout" name="horizontalLayout_3">
 | 
			
		||||
          <item>
 | 
			
		||||
           <widget class="QCheckBox" name="toogle_gdbstub">
 | 
			
		||||
           <widget class="QCheckBox" name="toggle_gdbstub">
 | 
			
		||||
            <property name="text">
 | 
			
		||||
             <string>Enable GDB Stub</string>
 | 
			
		||||
            </property>
 | 
			
		||||
@ -83,7 +83,7 @@
 | 
			
		||||
 <resources/>
 | 
			
		||||
 <connections>
 | 
			
		||||
  <connection>
 | 
			
		||||
   <sender>toogle_gdbstub</sender>
 | 
			
		||||
   <sender>toggle_gdbstub</sender>
 | 
			
		||||
   <signal>toggled(bool)</signal>
 | 
			
		||||
   <receiver>gdbport_spinbox</receiver>
 | 
			
		||||
   <slot>setEnabled(bool)</slot>
 | 
			
		||||
 | 
			
		||||
@ -31,6 +31,7 @@ void ConfigureDialog::applyConfiguration() {
 | 
			
		||||
    ui->generalTab->applyConfiguration();
 | 
			
		||||
    ui->systemTab->applyConfiguration();
 | 
			
		||||
    ui->inputTab->applyConfiguration();
 | 
			
		||||
    ui->graphicsTab->applyConfiguration();
 | 
			
		||||
    ui->audioTab->applyConfiguration();
 | 
			
		||||
    ui->debugTab->applyConfiguration();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -20,20 +20,14 @@ ConfigureGeneral::~ConfigureGeneral() {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ConfigureGeneral::setConfiguration() {
 | 
			
		||||
    ui->toogle_deepscan->setChecked(UISettings::values.gamedir_deepscan);
 | 
			
		||||
    ui->toogle_check_exit->setChecked(UISettings::values.confirm_before_closing);
 | 
			
		||||
    ui->toggle_deepscan->setChecked(UISettings::values.gamedir_deepscan);
 | 
			
		||||
    ui->toggle_check_exit->setChecked(UISettings::values.confirm_before_closing);
 | 
			
		||||
    ui->region_combobox->setCurrentIndex(Settings::values.region_value);
 | 
			
		||||
    ui->toogle_hw_renderer->setChecked(Settings::values.use_hw_renderer);
 | 
			
		||||
    ui->toogle_shader_jit->setChecked(Settings::values.use_shader_jit);
 | 
			
		||||
    ui->toogle_scaled_resolution->setChecked(Settings::values.use_scaled_resolution);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ConfigureGeneral::applyConfiguration() {
 | 
			
		||||
    UISettings::values.gamedir_deepscan = ui->toogle_deepscan->isChecked();
 | 
			
		||||
    UISettings::values.confirm_before_closing = ui->toogle_check_exit->isChecked();
 | 
			
		||||
    UISettings::values.gamedir_deepscan = ui->toggle_deepscan->isChecked();
 | 
			
		||||
    UISettings::values.confirm_before_closing = ui->toggle_check_exit->isChecked();
 | 
			
		||||
    Settings::values.region_value = ui->region_combobox->currentIndex();
 | 
			
		||||
    Settings::values.use_hw_renderer = ui->toogle_hw_renderer->isChecked();
 | 
			
		||||
    Settings::values.use_shader_jit = ui->toogle_shader_jit->isChecked();
 | 
			
		||||
    Settings::values.use_scaled_resolution = ui->toogle_scaled_resolution->isChecked();
 | 
			
		||||
    Settings::Apply();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -25,14 +25,14 @@
 | 
			
		||||
        <item>
 | 
			
		||||
         <layout class="QVBoxLayout" name="verticalLayout_2">
 | 
			
		||||
          <item>
 | 
			
		||||
           <widget class="QCheckBox" name="toogle_deepscan">
 | 
			
		||||
           <widget class="QCheckBox" name="toggle_deepscan">
 | 
			
		||||
            <property name="text">
 | 
			
		||||
             <string>Recursive scan for game folder</string>
 | 
			
		||||
            </property>
 | 
			
		||||
           </widget>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item>
 | 
			
		||||
           <widget class="QCheckBox" name="toogle_check_exit">
 | 
			
		||||
           <widget class="QCheckBox" name="toggle_check_exit">
 | 
			
		||||
            <property name="text">
 | 
			
		||||
             <string>Confirm exit while emulation is running</string>
 | 
			
		||||
            </property>
 | 
			
		||||
@ -106,40 +106,6 @@
 | 
			
		||||
       </layout>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
     <item>
 | 
			
		||||
      <widget class="QGroupBox" name="groupBox_2">
 | 
			
		||||
       <property name="title">
 | 
			
		||||
        <string>Performance</string>
 | 
			
		||||
       </property>
 | 
			
		||||
       <layout class="QHBoxLayout" name="horizontalLayout_2">
 | 
			
		||||
        <item>
 | 
			
		||||
         <layout class="QVBoxLayout" name="verticalLayout_3">
 | 
			
		||||
          <item>
 | 
			
		||||
           <widget class="QCheckBox" name="toogle_hw_renderer">
 | 
			
		||||
            <property name="text">
 | 
			
		||||
             <string>Enable hardware renderer</string>
 | 
			
		||||
            </property>
 | 
			
		||||
           </widget>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item>
 | 
			
		||||
           <widget class="QCheckBox" name="toogle_shader_jit">
 | 
			
		||||
            <property name="text">
 | 
			
		||||
             <string>Enable shader JIT</string>
 | 
			
		||||
            </property>
 | 
			
		||||
           </widget>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item>
 | 
			
		||||
           <widget class="QCheckBox" name="toogle_scaled_resolution">
 | 
			
		||||
            <property name="text">
 | 
			
		||||
             <string>Enable scaled resolution</string>
 | 
			
		||||
            </property>
 | 
			
		||||
           </widget>
 | 
			
		||||
          </item>
 | 
			
		||||
         </layout>
 | 
			
		||||
        </item>
 | 
			
		||||
       </layout>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
     <item>
 | 
			
		||||
      <widget class="QGroupBox" name="groupBox_3">
 | 
			
		||||
       <property name="title">
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										37
									
								
								src/citra_qt/configure_graphics.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								src/citra_qt/configure_graphics.cpp
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,37 @@
 | 
			
		||||
// Copyright 2016 Citra Emulator Project
 | 
			
		||||
// Licensed under GPLv2 or any later version
 | 
			
		||||
// Refer to the license.txt file included.
 | 
			
		||||
 | 
			
		||||
#include "citra_qt/configure_graphics.h"
 | 
			
		||||
#include "ui_configure_graphics.h"
 | 
			
		||||
 | 
			
		||||
#include "core/settings.h"
 | 
			
		||||
#include "core/system.h"
 | 
			
		||||
 | 
			
		||||
ConfigureGraphics::ConfigureGraphics(QWidget *parent) :
 | 
			
		||||
    QWidget(parent),
 | 
			
		||||
    ui(new Ui::ConfigureGraphics)
 | 
			
		||||
{
 | 
			
		||||
    ui->setupUi(this);
 | 
			
		||||
    this->setConfiguration();
 | 
			
		||||
 | 
			
		||||
    ui->toggle_vsync->setEnabled(!System::IsPoweredOn());
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ConfigureGraphics::~ConfigureGraphics() {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ConfigureGraphics::setConfiguration() {
 | 
			
		||||
    ui->toggle_hw_renderer->setChecked(Settings::values.use_hw_renderer);
 | 
			
		||||
    ui->toggle_shader_jit->setChecked(Settings::values.use_shader_jit);
 | 
			
		||||
    ui->toggle_scaled_resolution->setChecked(Settings::values.use_scaled_resolution);
 | 
			
		||||
    ui->toggle_vsync->setChecked(Settings::values.use_vsync);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ConfigureGraphics::applyConfiguration() {
 | 
			
		||||
    Settings::values.use_hw_renderer = ui->toggle_hw_renderer->isChecked();
 | 
			
		||||
    Settings::values.use_shader_jit = ui->toggle_shader_jit->isChecked();
 | 
			
		||||
    Settings::values.use_scaled_resolution = ui->toggle_scaled_resolution->isChecked();
 | 
			
		||||
    Settings::values.use_vsync = ui->toggle_vsync->isChecked();
 | 
			
		||||
    Settings::Apply();
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										29
									
								
								src/citra_qt/configure_graphics.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								src/citra_qt/configure_graphics.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,29 @@
 | 
			
		||||
// Copyright 2016 Citra Emulator Project
 | 
			
		||||
// Licensed under GPLv2 or any later version
 | 
			
		||||
// Refer to the license.txt file included.
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include <memory>
 | 
			
		||||
#include <QWidget>
 | 
			
		||||
 | 
			
		||||
namespace Ui {
 | 
			
		||||
class ConfigureGraphics;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class ConfigureGraphics : public QWidget
 | 
			
		||||
{
 | 
			
		||||
    Q_OBJECT
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
    explicit ConfigureGraphics(QWidget *parent = nullptr);
 | 
			
		||||
    ~ConfigureGraphics();
 | 
			
		||||
 | 
			
		||||
    void applyConfiguration();
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    void setConfiguration();
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    std::unique_ptr<Ui::ConfigureGraphics> ui;
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										92
									
								
								src/citra_qt/configure_graphics.ui
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										92
									
								
								src/citra_qt/configure_graphics.ui
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,92 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<ui version="4.0">
 | 
			
		||||
 <class>ConfigureGraphics</class>
 | 
			
		||||
 <widget class="QWidget" name="ConfigureGraphics">
 | 
			
		||||
  <property name="geometry">
 | 
			
		||||
   <rect>
 | 
			
		||||
    <x>0</x>
 | 
			
		||||
    <y>0</y>
 | 
			
		||||
    <width>400</width>
 | 
			
		||||
    <height>300</height>
 | 
			
		||||
   </rect>
 | 
			
		||||
  </property>
 | 
			
		||||
  <property name="windowTitle">
 | 
			
		||||
   <string>Form</string>
 | 
			
		||||
  </property>
 | 
			
		||||
  <layout class="QVBoxLayout" name="verticalLayout">
 | 
			
		||||
   <item>
 | 
			
		||||
    <layout class="QVBoxLayout" name="verticalLayout_3">
 | 
			
		||||
     <item>
 | 
			
		||||
      <widget class="QGroupBox" name="groupBox">
 | 
			
		||||
       <property name="title">
 | 
			
		||||
        <string>Graphics</string>
 | 
			
		||||
       </property>
 | 
			
		||||
       <layout class="QVBoxLayout" name="verticalLayout_2">
 | 
			
		||||
         <item>
 | 
			
		||||
           <widget class="QCheckBox" name="toggle_hw_renderer">
 | 
			
		||||
             <property name="text">
 | 
			
		||||
               <string>Enable hardware renderer</string>
 | 
			
		||||
             </property>
 | 
			
		||||
           </widget>
 | 
			
		||||
         </item>
 | 
			
		||||
         <item>
 | 
			
		||||
           <widget class="QCheckBox" name="toggle_shader_jit">
 | 
			
		||||
             <property name="text">
 | 
			
		||||
               <string>Enable shader JIT</string>
 | 
			
		||||
             </property>
 | 
			
		||||
           </widget>
 | 
			
		||||
         </item>
 | 
			
		||||
         <item>
 | 
			
		||||
           <widget class="QCheckBox" name="toggle_scaled_resolution">
 | 
			
		||||
             <property name="text">
 | 
			
		||||
               <string>Enable scaled resolution</string>
 | 
			
		||||
             </property>
 | 
			
		||||
           </widget>
 | 
			
		||||
         </item>
 | 
			
		||||
         <item>
 | 
			
		||||
           <widget class="QCheckBox" name="toggle_vsync">
 | 
			
		||||
             <property name="text">
 | 
			
		||||
               <string>Enable V-Sync</string>
 | 
			
		||||
             </property>
 | 
			
		||||
           </widget>
 | 
			
		||||
         </item>
 | 
			
		||||
       </layout>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
    </layout>
 | 
			
		||||
   </item>
 | 
			
		||||
   <item>
 | 
			
		||||
    <spacer name="verticalSpacer">
 | 
			
		||||
     <property name="orientation">
 | 
			
		||||
      <enum>Qt::Vertical</enum>
 | 
			
		||||
     </property>
 | 
			
		||||
     <property name="sizeHint" stdset="0">
 | 
			
		||||
      <size>
 | 
			
		||||
       <width>20</width>
 | 
			
		||||
       <height>40</height>
 | 
			
		||||
      </size>
 | 
			
		||||
     </property>
 | 
			
		||||
    </spacer>
 | 
			
		||||
   </item>
 | 
			
		||||
  </layout>
 | 
			
		||||
 </widget>
 | 
			
		||||
 <resources/>
 | 
			
		||||
 <connections>
 | 
			
		||||
  <connection>
 | 
			
		||||
   <sender>toggle_gdbstub</sender>
 | 
			
		||||
   <signal>toggled(bool)</signal>
 | 
			
		||||
   <receiver>gdbport_spinbox</receiver>
 | 
			
		||||
   <slot>setEnabled(bool)</slot>
 | 
			
		||||
   <hints>
 | 
			
		||||
    <hint type="sourcelabel">
 | 
			
		||||
     <x>84</x>
 | 
			
		||||
     <y>157</y>
 | 
			
		||||
    </hint>
 | 
			
		||||
    <hint type="destinationlabel">
 | 
			
		||||
     <x>342</x>
 | 
			
		||||
     <y>158</y>
 | 
			
		||||
    </hint>
 | 
			
		||||
   </hints>
 | 
			
		||||
  </connection>
 | 
			
		||||
 </connections>
 | 
			
		||||
</ui>
 | 
			
		||||
@ -243,7 +243,9 @@ bool GMainWindow::InitializeSystem() {
 | 
			
		||||
    if (emu_thread != nullptr)
 | 
			
		||||
        ShutdownGame();
 | 
			
		||||
 | 
			
		||||
    render_window->InitRenderTarget();
 | 
			
		||||
    render_window->MakeCurrent();
 | 
			
		||||
 | 
			
		||||
    if (!gladLoadGL()) {
 | 
			
		||||
        QMessageBox::critical(this, tr("Error while starting Citra!"),
 | 
			
		||||
                              tr("Failed to initialize the video core!\n\n"
 | 
			
		||||
 | 
			
		||||
@ -72,6 +72,7 @@ struct Values {
 | 
			
		||||
    bool use_hw_renderer;
 | 
			
		||||
    bool use_shader_jit;
 | 
			
		||||
    bool use_scaled_resolution;
 | 
			
		||||
    bool use_vsync;
 | 
			
		||||
 | 
			
		||||
    float bg_red;
 | 
			
		||||
    float bg_green;
 | 
			
		||||
 | 
			
		||||
@ -17,6 +17,8 @@
 | 
			
		||||
 | 
			
		||||
namespace System {
 | 
			
		||||
 | 
			
		||||
static bool is_powered_on{ false };
 | 
			
		||||
 | 
			
		||||
Result Init(EmuWindow* emu_window) {
 | 
			
		||||
    Core::Init();
 | 
			
		||||
    CoreTiming::Init();
 | 
			
		||||
@ -30,9 +32,15 @@ Result Init(EmuWindow* emu_window) {
 | 
			
		||||
    AudioCore::Init();
 | 
			
		||||
    GDBStub::Init();
 | 
			
		||||
 | 
			
		||||
    is_powered_on = true;
 | 
			
		||||
 | 
			
		||||
    return Result::Success;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool IsPoweredOn() {
 | 
			
		||||
    return is_powered_on;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Shutdown() {
 | 
			
		||||
    GDBStub::Shutdown();
 | 
			
		||||
    AudioCore::Shutdown();
 | 
			
		||||
@ -42,6 +50,8 @@ void Shutdown() {
 | 
			
		||||
    HW::Shutdown();
 | 
			
		||||
    CoreTiming::Shutdown();
 | 
			
		||||
    Core::Shutdown();
 | 
			
		||||
 | 
			
		||||
    is_powered_on = false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
} // namespace
 | 
			
		||||
 | 
			
		||||
@ -16,6 +16,7 @@ enum class Result {
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
Result Init(EmuWindow* emu_window);
 | 
			
		||||
bool IsPoweredOn();
 | 
			
		||||
void Shutdown();
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -22,6 +22,7 @@ std::unique_ptr<RendererBase> g_renderer;             ///< Renderer plugin
 | 
			
		||||
std::atomic<bool> g_hw_renderer_enabled;
 | 
			
		||||
std::atomic<bool> g_shader_jit_enabled;
 | 
			
		||||
std::atomic<bool> g_scaled_resolution_enabled;
 | 
			
		||||
std::atomic<bool> g_vsync_enabled;
 | 
			
		||||
 | 
			
		||||
/// Initialize the video core
 | 
			
		||||
bool Init(EmuWindow* emu_window) {
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user