From d2e55558dfe2b04eab5073b54e932c34bd1e9064 Mon Sep 17 00:00:00 2001 From: bunnei Date: Sun, 16 Apr 2023 01:05:28 -0700 Subject: android: settings: Add scaling filter & anti-aliasing options. (#66) --- .../settings/ui/SettingsFragmentPresenter.kt | 28 ++++++++++++++++++++ .../features/settings/utils/SettingsFile.kt | 2 ++ src/android/app/src/main/res/values/arrays.xml | 30 ++++++++++++++++++++++ src/android/app/src/main/res/values/strings.xml | 15 +++++++++++ 4 files changed, 75 insertions(+) (limited to 'src/android/app') diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt index a137d1c3a..aeb262ce6 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt @@ -194,6 +194,10 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView) val rendererBackend = rendererSection!!.getSetting(SettingsFile.KEY_RENDERER_BACKEND) val rendererAccuracy = rendererSection.getSetting(SettingsFile.KEY_RENDERER_ACCURACY) val rendererResolution = rendererSection.getSetting(SettingsFile.KEY_RENDERER_RESOLUTION) + val rendererScalingFilter = + rendererSection.getSetting(SettingsFile.KEY_RENDERER_SCALING_FILTER) + val rendererAntiAliasing = + rendererSection.getSetting(SettingsFile.KEY_RENDERER_ANTI_ALIASING) val rendererAspectRatio = rendererSection.getSetting(SettingsFile.KEY_RENDERER_ASPECT_RATIO) val rendererUseDiskShaderCache = @@ -240,6 +244,30 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView) 2 ) ) + add( + SingleChoiceSetting( + SettingsFile.KEY_RENDERER_SCALING_FILTER, + Settings.SECTION_RENDERER, + rendererScalingFilter, + R.string.renderer_scaling_filter, + 0, + R.array.rendererScalingFilterNames, + R.array.rendererScalingFilterValues, + 1 + ) + ) + add( + SingleChoiceSetting( + SettingsFile.KEY_RENDERER_ANTI_ALIASING, + Settings.SECTION_RENDERER, + rendererAntiAliasing, + R.string.renderer_anti_aliasing, + 0, + R.array.rendererAntiAliasingNames, + R.array.rendererAntiAliasingValues, + 0 + ) + ) add( SingleChoiceSetting( SettingsFile.KEY_RENDERER_ASPECT_RATIO, diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/utils/SettingsFile.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/utils/SettingsFile.kt index c518d9ba0..493d90954 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/utils/SettingsFile.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/utils/SettingsFile.kt @@ -34,6 +34,8 @@ object SettingsFile { // Renderer const val KEY_RENDERER_RESOLUTION = "resolution_setup" + const val KEY_RENDERER_SCALING_FILTER = "scaling_filter" + const val KEY_RENDERER_ANTI_ALIASING = "anti_aliasing" const val KEY_RENDERER_ASPECT_RATIO = "aspect_ratio" const val KEY_RENDERER_ACCURACY = "gpu_accuracy" const val KEY_RENDERER_USE_DISK_SHADER_CACHE = "use_disk_shader_cache" diff --git a/src/android/app/src/main/res/values/arrays.xml b/src/android/app/src/main/res/values/arrays.xml index 6d909ddae..628d43197 100644 --- a/src/android/app/src/main/res/values/arrays.xml +++ b/src/android/app/src/main/res/values/arrays.xml @@ -121,6 +121,36 @@ 4 + + @string/scaling_filter_nearest_neighbor + @string/scaling_filter_bilinear + @string/scaling_filter_bicubic + @string/scaling_filter_gaussian + @string/scaling_filter_scale_force + @string/scaling_filter_fsr + + + + 0 + 1 + 2 + 3 + 4 + 5 + + + + @string/anti_aliasing_none + @string/anti_aliasing_fxaa + @string/anti_aliasing_smaa + + + + 0 + 1 + 2 + + @string/cpu_accuracy_auto @string/cpu_accuracy_accurate diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml index 45a9694d4..75d1f2293 100644 --- a/src/android/app/src/main/res/values/strings.xml +++ b/src/android/app/src/main/res/values/strings.xml @@ -29,6 +29,8 @@ Accuracy level Resolution Aspect Ratio + Window Adapting Filter + Anti-Aliasing Method Force maximum clocks (Adreno only) Forces the GPU to run at the maximum possible clocks (thermal constraints will still be applied). Use asynchronous shaders @@ -166,6 +168,19 @@ 3X (2160p/3240p) (Slow) 4X (2880p/4320p) (Slow) + + Nearest Neighbor + Bilinear + Bicubic + Gaussian + ScaleForce + AMD FidelityFX™ Super Resolution + + + None + FXAA + SMAA + Default (16:9) Force 4:3 -- cgit v1.2.3