yuzu-emu
/
yuzu-android
Archived
1
0
Fork 0

settings,opengl,yuzu-qt: Fix AA, Filter maximums

The new enum macros don't support setting values directly.
For LastAA and LastFilter, this means we need a simpler approach to loop
around the toggle in the frontend...
This commit is contained in:
lat9nq 2023-06-20 23:29:07 -04:00
parent 7ffbffe170
commit 8366736b67
3 changed files with 8 additions and 9 deletions

View File

@ -122,9 +122,9 @@ ENUM(NvdecEmulation, Off, Cpu, Gpu);
ENUM(ResolutionSetup, Res1_2X, Res3_4X, Res1X, Res3_2X, Res2X, Res3X, Res4X, Res5X, Res6X, Res7X, ENUM(ResolutionSetup, Res1_2X, Res3_4X, Res1X, Res3_2X, Res2X, Res3X, Res4X, Res5X, Res6X, Res7X,
Res8X); Res8X);
ENUM(ScalingFilter, NearestNeighbor, Bilinear, Bicubic, Gaussian, ScaleForce, Fsr, LastFilter); ENUM(ScalingFilter, NearestNeighbor, Bilinear, Bicubic, Gaussian, ScaleForce, Fsr, MaxEnum);
ENUM(AntiAliasing, None, Fxaa, Smaa, LastAA); ENUM(AntiAliasing, None, Fxaa, Smaa, MaxEnum);
ENUM(AspectRatio, R16_9, R4_3, R21_9, R16_10, Stretch); ENUM(AspectRatio, R16_9, R4_3, R21_9, R16_10, Stretch);

View File

@ -473,7 +473,7 @@ void RendererOpenGL::DrawScreen(const Layout::FramebufferLayout& layout) {
glBindTextureUnit(0, screen_info.display_texture); glBindTextureUnit(0, screen_info.display_texture);
auto anti_aliasing = Settings::values.anti_aliasing.GetValue(); auto anti_aliasing = Settings::values.anti_aliasing.GetValue();
if (anti_aliasing > Settings::AntiAliasing::LastAA) { if (anti_aliasing >= Settings::AntiAliasing::MaxEnum) {
LOG_ERROR(Render_OpenGL, "Invalid antialiasing option selected {}", anti_aliasing); LOG_ERROR(Render_OpenGL, "Invalid antialiasing option selected {}", anti_aliasing);
anti_aliasing = Settings::AntiAliasing::None; anti_aliasing = Settings::AntiAliasing::None;
Settings::values.anti_aliasing.SetValue(anti_aliasing); Settings::values.anti_aliasing.SetValue(anti_aliasing);

View File

@ -24,6 +24,7 @@
#include "applets/qt_software_keyboard.h" #include "applets/qt_software_keyboard.h"
#include "applets/qt_web_browser.h" #include "applets/qt_web_browser.h"
#include "common/nvidia_flags.h" #include "common/nvidia_flags.h"
#include "common/settings_enums.h"
#include "configuration/configure_input.h" #include "configuration/configure_input.h"
#include "configuration/configure_per_game.h" #include "configuration/configure_per_game.h"
#include "configuration/configure_tas.h" #include "configuration/configure_tas.h"
@ -1095,10 +1096,9 @@ void GMainWindow::InitializeWidgets() {
aa_status_button->setFocusPolicy(Qt::NoFocus); aa_status_button->setFocusPolicy(Qt::NoFocus);
connect(aa_status_button, &QPushButton::clicked, [&] { connect(aa_status_button, &QPushButton::clicked, [&] {
auto aa_mode = Settings::values.anti_aliasing.GetValue(); auto aa_mode = Settings::values.anti_aliasing.GetValue();
if (aa_mode == Settings::AntiAliasing::LastAA) {
aa_mode = Settings::AntiAliasing::None;
} else {
aa_mode = static_cast<Settings::AntiAliasing>(static_cast<u32>(aa_mode) + 1); aa_mode = static_cast<Settings::AntiAliasing>(static_cast<u32>(aa_mode) + 1);
if (aa_mode == Settings::AntiAliasing::MaxEnum) {
aa_mode = Settings::AntiAliasing::None;
} }
Settings::values.anti_aliasing.SetValue(aa_mode); Settings::values.anti_aliasing.SetValue(aa_mode);
aa_status_button->setChecked(true); aa_status_button->setChecked(true);
@ -3702,10 +3702,9 @@ void GMainWindow::OnIncreaseVolume() {
void GMainWindow::OnToggleAdaptingFilter() { void GMainWindow::OnToggleAdaptingFilter() {
auto filter = Settings::values.scaling_filter.GetValue(); auto filter = Settings::values.scaling_filter.GetValue();
if (filter == Settings::ScalingFilter::LastFilter) {
filter = Settings::ScalingFilter::NearestNeighbor;
} else {
filter = static_cast<Settings::ScalingFilter>(static_cast<u32>(filter) + 1); filter = static_cast<Settings::ScalingFilter>(static_cast<u32>(filter) + 1);
if (filter == Settings::ScalingFilter::MaxEnum) {
filter = Settings::ScalingFilter::NearestNeighbor;
} }
Settings::values.scaling_filter.SetValue(filter); Settings::values.scaling_filter.SetValue(filter);
filter_status_button->setChecked(true); filter_status_button->setChecked(true);