configure_graphics.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. // Copyright 2016 Citra Emulator Project
  2. // Licensed under GPLv2 or any later version
  3. // Refer to the license.txt file included.
  4. #pragma once
  5. #include <memory>
  6. #include <vector>
  7. #include <QString>
  8. #include <QWidget>
  9. #include "common/settings.h"
  10. namespace Core {
  11. class System;
  12. }
  13. namespace ConfigurationShared {
  14. enum class CheckState;
  15. }
  16. namespace Ui {
  17. class ConfigureGraphics;
  18. }
  19. class ConfigureGraphics : public QWidget {
  20. Q_OBJECT
  21. public:
  22. explicit ConfigureGraphics(const Core::System& system_, QWidget* parent = nullptr);
  23. ~ConfigureGraphics() override;
  24. void ApplyConfiguration();
  25. void SetConfiguration();
  26. private:
  27. void changeEvent(QEvent* event) override;
  28. void RetranslateUI();
  29. void UpdateBackgroundColorButton(QColor color);
  30. void UpdateAPILayout();
  31. void UpdateDeviceSelection(int device);
  32. void UpdateShaderBackendSelection(int backend);
  33. void RetrieveVulkanDevices();
  34. void SetupPerGameUI();
  35. Settings::RendererBackend GetCurrentGraphicsBackend() const;
  36. Settings::NvdecEmulation GetCurrentNvdecEmulation() const;
  37. std::unique_ptr<Ui::ConfigureGraphics> ui;
  38. QColor bg_color;
  39. ConfigurationShared::CheckState use_nvdec_emulation;
  40. ConfigurationShared::CheckState accelerate_astc;
  41. ConfigurationShared::CheckState use_disk_shader_cache;
  42. ConfigurationShared::CheckState use_asynchronous_gpu_emulation;
  43. std::vector<QString> vulkan_devices;
  44. u32 vulkan_device{};
  45. Settings::ShaderBackend shader_backend{};
  46. const Core::System& system;
  47. };