diff --git a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/FloatSetting.kt b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/FloatSetting.kt index dc27ca2c5..69bc16ca7 100644 --- a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/FloatSetting.kt +++ b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/FloatSetting.kt @@ -1,4 +1,4 @@ -// Copyright Citra Emulator Project / Lime3DS Emulator Project +// Copyright Citra Emulator Project / Azahar Emulator Project // Licensed under GPLv2 or any later version // Refer to the license.txt file included. @@ -10,6 +10,7 @@ enum class FloatSetting( override val defaultValue: Float ) : AbstractFloatSetting { LARGE_SCREEN_PROPORTION("large_screen_proportion",Settings.SECTION_LAYOUT,2.25f), + SECOND_SCREEN_OPACITY("custom_second_layer_opacity", Settings.SECTION_RENDERER, 100f), BACKGROUND_RED("bg_red", Settings.SECTION_RENDERER, 0f), BACKGROUND_BLUE("bg_blue", Settings.SECTION_RENDERER, 0f), BACKGROUND_GREEN("bg_green", Settings.SECTION_RENDERER, 0f), diff --git a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsFragmentPresenter.kt b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsFragmentPresenter.kt index f43a6432b..7216fcf73 100644 --- a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsFragmentPresenter.kt +++ b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsFragmentPresenter.kt @@ -1166,6 +1166,20 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView) FloatSetting.LARGE_SCREEN_PROPORTION.defaultValue ) ) + add( + SliderSetting( + FloatSetting.SECOND_SCREEN_OPACITY, + R.string.second_screen_opacity, + R.string.second_screen_opacity_description, + 0, + 100, + "%", + FloatSetting.SECOND_SCREEN_OPACITY.key, + FloatSetting.SECOND_SCREEN_OPACITY.defaultValue, + // TODO: Remove graphics API check when #895 is merged + isEnabled = IntSetting.SCREEN_LAYOUT.int == 5 && IntSetting.GRAPHICS_API.int == 1 + ) + ) add(HeaderSetting(R.string.bg_color, R.string.bg_color_description)) val bgRedSetting = object : AbstractIntSetting { override var int: Int diff --git a/src/android/app/src/main/jni/config.cpp b/src/android/app/src/main/jni/config.cpp index 1f2e8708b..9ac9f3737 100644 --- a/src/android/app/src/main/jni/config.cpp +++ b/src/android/app/src/main/jni/config.cpp @@ -172,6 +172,7 @@ void Config::ReadValues() { ReadSetting("Renderer", Settings::values.bg_red); ReadSetting("Renderer", Settings::values.bg_green); ReadSetting("Renderer", Settings::values.bg_blue); + ReadSetting("Renderer", Settings::values.custom_second_layer_opacity); ReadSetting("Renderer", Settings::values.delay_game_render_thread_us); ReadSetting("Renderer", Settings::values.disable_right_eye_render); diff --git a/src/android/app/src/main/jni/default_ini.h b/src/android/app/src/main/jni/default_ini.h index 46083be50..481e8d927 100644 --- a/src/android/app/src/main/jni/default_ini.h +++ b/src/android/app/src/main/jni/default_ini.h @@ -170,6 +170,9 @@ bg_red = bg_blue = bg_green = +# Opacity of second layer when using custom layout option (bottom screen unless swapped). Useful if positioning on top of the first layer. OpenGL only. +custom_second_layer_opacity = + # Whether and how Stereoscopic 3D should be rendered # 0 (default): Off, 1: Side by Side, 2: Reverse Side by Side, 3: Anaglyph, 4: Interlaced, 5: Reverse Interlaced, 6: Cardboard VR render_3d = diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml index 2a4e6f567..ebcf856b5 100644 --- a/src/android/app/src/main/res/values/strings.xml +++ b/src/android/app/src/main/res/values/strings.xml @@ -453,6 +453,8 @@ Red Green Blue + Custom Layout Second Screen Opacity (OpenGL Only) + The opacity of the second 3DS screen when using a custom screen layout. Useful if the second screen is to be positioned on top of the first screen. Small Screen Position Where should the small screen appear relative to the large one in Large Screen Layout? Top Right