summaryrefslogtreecommitdiff
path: root/src/yuzu/configuration/configure_graphics.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/yuzu/configuration/configure_graphics.h')
-rw-r--r--src/yuzu/configuration/configure_graphics.h32
1 files changed, 30 insertions, 2 deletions
diff --git a/src/yuzu/configuration/configure_graphics.h b/src/yuzu/configuration/configure_graphics.h
index d98d6624e..be9310b74 100644
--- a/src/yuzu/configuration/configure_graphics.h
+++ b/src/yuzu/configuration/configure_graphics.h
@@ -3,11 +3,25 @@
#pragma once
+#include <functional>
#include <memory>
#include <vector>
+#include <QColor>
#include <QString>
#include <QWidget>
-#include "common/settings.h"
+#include <qobjectdefs.h>
+#include <vulkan/vulkan_core.h>
+#include "common/common_types.h"
+#include "vk_device_info.h"
+
+class QEvent;
+class QObject;
+
+namespace Settings {
+enum class NvdecEmulation : u32;
+enum class RendererBackend : u32;
+enum class ShaderBackend : u32;
+} // namespace Settings
namespace Core {
class System;
@@ -25,7 +39,10 @@ class ConfigureGraphics : public QWidget {
Q_OBJECT
public:
- explicit ConfigureGraphics(const Core::System& system_, QWidget* parent = nullptr);
+ explicit ConfigureGraphics(const Core::System& system_,
+ std::vector<VkDeviceInfo::Record>& records,
+ const std::function<void()>& expose_compute_option_,
+ QWidget* parent = nullptr);
~ConfigureGraphics() override;
void ApplyConfiguration();
@@ -35,6 +52,7 @@ private:
void changeEvent(QEvent* event) override;
void RetranslateUI();
+ void PopulateVSyncModeSelection();
void UpdateBackgroundColorButton(QColor color);
void UpdateAPILayout();
void UpdateDeviceSelection(int device);
@@ -43,6 +61,10 @@ private:
void RetrieveVulkanDevices();
void SetFSRIndicatorText(int percentage);
+ /* Turns a Vulkan present mode into a textual string for a UI
+ * (and eventually for a human to read) */
+ const QString TranslateVSyncMode(VkPresentModeKHR mode,
+ Settings::RendererBackend backend) const;
void SetupPerGameUI();
@@ -57,9 +79,15 @@ private:
ConfigurationShared::CheckState use_disk_shader_cache;
ConfigurationShared::CheckState use_asynchronous_gpu_emulation;
+ std::vector<VkDeviceInfo::Record>& records;
std::vector<QString> vulkan_devices;
+ std::vector<std::vector<VkPresentModeKHR>> device_present_modes;
+ std::vector<VkPresentModeKHR>
+ vsync_mode_combobox_enum_map; //< Keeps track of which present mode corresponds to which
+ // selection in the combobox
u32 vulkan_device{};
Settings::ShaderBackend shader_backend{};
+ const std::function<void()>& expose_compute_option;
const Core::System& system;
};