configure_graphics.cpp 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. // Copyright 2016 Citra Emulator Project
  2. // Licensed under GPLv2 or any later version
  3. // Refer to the license.txt file included.
  4. #include "core/core.h"
  5. #include "core/settings.h"
  6. #include "ui_configure_graphics.h"
  7. #include "yuzu/configuration/configure_graphics.h"
  8. ConfigureGraphics::ConfigureGraphics(QWidget* parent)
  9. : QWidget(parent), ui(new Ui::ConfigureGraphics) {
  10. ui->setupUi(this);
  11. this->setConfiguration();
  12. }
  13. ConfigureGraphics::~ConfigureGraphics() {}
  14. enum class Resolution : int {
  15. Auto,
  16. Scale1x,
  17. Scale2x,
  18. Scale3x,
  19. Scale4x,
  20. };
  21. float ToResolutionFactor(Resolution option) {
  22. switch (option) {
  23. case Resolution::Auto:
  24. return 0.f;
  25. case Resolution::Scale1x:
  26. return 1.f;
  27. case Resolution::Scale2x:
  28. return 2.f;
  29. case Resolution::Scale3x:
  30. return 3.f;
  31. case Resolution::Scale4x:
  32. return 4.f;
  33. }
  34. return 0.f;
  35. }
  36. Resolution FromResolutionFactor(float factor) {
  37. if (factor == 0.f) {
  38. return Resolution::Auto;
  39. } else if (factor == 1.f) {
  40. return Resolution::Scale1x;
  41. } else if (factor == 2.f) {
  42. return Resolution::Scale2x;
  43. } else if (factor == 3.f) {
  44. return Resolution::Scale3x;
  45. } else if (factor == 4.f) {
  46. return Resolution::Scale4x;
  47. }
  48. return Resolution::Auto;
  49. }
  50. void ConfigureGraphics::setConfiguration() {
  51. ui->resolution_factor_combobox->setCurrentIndex(
  52. static_cast<int>(FromResolutionFactor(Settings::values.resolution_factor)));
  53. ui->toggle_framelimit->setChecked(Settings::values.toggle_framelimit);
  54. }
  55. void ConfigureGraphics::applyConfiguration() {
  56. Settings::values.resolution_factor =
  57. ToResolutionFactor(static_cast<Resolution>(ui->resolution_factor_combobox->currentIndex()));
  58. Settings::values.toggle_framelimit = ui->toggle_framelimit->isChecked();
  59. Settings::Apply();
  60. }