Просмотр исходного кода

android: Expose fastmem option

Charles Lombardo 3 лет назад
Родитель
Сommit
3ac2c74e85

+ 2 - 0
src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt

@@ -8,6 +8,8 @@ enum class BooleanSetting(
     override val section: String,
     override val defaultValue: Boolean
 ) : AbstractBooleanSetting {
+    FASTMEM("cpuopt_fastmem", Settings.SECTION_CPU, true),
+    FASTMEM_EXCLUSIVES("cpuopt_fastmem_exclusives", Settings.SECTION_CPU, true),
     PICTURE_IN_PICTURE("picture_in_picture", Settings.SECTION_GENERAL, true),
     USE_CUSTOM_RTC("custom_rtc_enabled", Settings.SECTION_SYSTEM, false);
 

+ 22 - 0
src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt

@@ -487,6 +487,28 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
                     IntSetting.RENDERER_DEBUG.defaultValue
                 )
             )
+
+            val fastmem = object : AbstractBooleanSetting {
+                override var boolean: Boolean
+                    get() =
+                        BooleanSetting.FASTMEM.boolean && BooleanSetting.FASTMEM_EXCLUSIVES.boolean
+                    set(value) {
+                        BooleanSetting.FASTMEM.boolean = value
+                        BooleanSetting.FASTMEM_EXCLUSIVES.boolean = value
+                    }
+                override val key: String? = null
+                override val section: String = Settings.SECTION_CPU
+                override val isRuntimeEditable: Boolean = false
+                override val valueAsString: String = ""
+                override val defaultValue: Any = true
+            }
+            add(
+                SwitchSetting(
+                    fastmem,
+                    R.string.fastmem,
+                    0
+                )
+            )
         }
     }
 }

+ 29 - 26
src/android/app/src/main/res/layout/list_item_setting_switch.xml

@@ -1,16 +1,16 @@
 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
     android:background="?android:attr/selectableItemBackground"
     android:clickable="true"
     android:focusable="true"
     android:minHeight="72dp"
+    android:paddingVertical="@dimen/spacing_large"
     android:paddingStart="@dimen/spacing_large"
-    android:paddingEnd="24dp"
-    android:paddingVertical="@dimen/spacing_large">
+    android:paddingEnd="24dp">
 
     <com.google.android.material.materialswitch.MaterialSwitch
         android:id="@+id/switch_widget"
@@ -19,32 +19,35 @@
         android:layout_alignParentEnd="true"
         android:layout_centerVertical="true" />
 
-    <com.google.android.material.textview.MaterialTextView
-        style="@style/TextAppearance.Material3.BodySmall"
-        android:id="@+id/text_setting_description"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_alignParentStart="true"
-        android:layout_alignStart="@+id/text_setting_name"
-        android:layout_below="@+id/text_setting_name"
-        android:layout_marginEnd="@dimen/spacing_large"
-        android:layout_marginTop="@dimen/spacing_small"
-        android:layout_toStartOf="@+id/switch_widget"
-        android:textAlignment="viewStart"
-        tools:text="@string/frame_limit_enable_description" />
-
-    <com.google.android.material.textview.MaterialTextView
-        style="@style/TextAppearance.Material3.HeadlineMedium"
-        android:id="@+id/text_setting_name"
-        android:layout_width="0dp"
+    <LinearLayout
+        android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_alignParentStart="true"
         android:layout_alignParentTop="true"
+        android:layout_centerVertical="true"
         android:layout_marginEnd="@dimen/spacing_large"
         android:layout_toStartOf="@+id/switch_widget"
-        android:textSize="16sp"
-        android:textAlignment="viewStart"
-        app:lineHeight="28dp"
-        tools:text="@string/frame_limit_enable" />
+        android:gravity="center_vertical"
+        android:orientation="vertical">
+
+        <com.google.android.material.textview.MaterialTextView
+            android:id="@+id/text_setting_name"
+            style="@style/TextAppearance.Material3.HeadlineMedium"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textAlignment="viewStart"
+            android:textSize="16sp"
+            app:lineHeight="28dp"
+            tools:text="@string/frame_limit_enable" />
+
+        <com.google.android.material.textview.MaterialTextView
+            android:id="@+id/text_setting_description"
+            style="@style/TextAppearance.Material3.BodySmall"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/spacing_small"
+            android:textAlignment="viewStart"
+            tools:text="@string/frame_limit_enable_description" />
+
+    </LinearLayout>
 
 </RelativeLayout>

+ 6 - 3
src/android/app/src/main/res/values/strings.xml

@@ -158,7 +158,6 @@
     <string name="set_custom_rtc">Set custom RTC</string>
 
     <!-- Graphics settings strings -->
-    <string name="renderer_api">API</string>
     <string name="renderer_accuracy">Accuracy level</string>
     <string name="renderer_resolution">Resolution (Handheld/Docked)</string>
     <string name="renderer_vsync">VSync mode</string>
@@ -172,11 +171,15 @@
     <string name="renderer_asynchronous_shaders_description">Compiles shaders asynchronously, reducing stutter but may introduce glitches.</string>
     <string name="renderer_reactive_flushing">Use reactive flushing</string>
     <string name="renderer_reactive_flushing_description">Improves rendering accuracy in some games at the cost of performance.</string>
-    <string name="renderer_debug">Graphics debugging</string>
-    <string name="renderer_debug_description">Sets the graphics API to a slow debugging mode.</string>
     <string name="use_disk_shader_cache">Disk shader cache</string>
     <string name="use_disk_shader_cache_description">Reduces stuttering by locally storing and loading generated shaders.</string>
 
+    <!-- Debug settings strings -->
+    <string name="renderer_api">API</string>
+    <string name="renderer_debug">Graphics debugging</string>
+    <string name="renderer_debug_description">Sets the graphics API to a slow debugging mode.</string>
+    <string name="fastmem">Fastmem</string>
+
     <!-- Audio settings strings -->
     <string name="audio_volume">Volume</string>
     <string name="audio_volume_description">Specifies the volume of audio output.</string>