summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Charles Lombardo2023-05-28 20:05:55 -0400
committerGravatar bunnei2023-06-03 00:06:04 -0700
commitd49eb7faad11c700d982a4e8023404da13a2a93f (patch)
tree3d8546e9bf1e48b875f8528089abc1a57f5ce9ee /src
parentCI: use the verify pipeline to do releases (diff)
downloadyuzu-d49eb7faad11c700d982a4e8023404da13a2a93f.tar.gz
yuzu-d49eb7faad11c700d982a4e8023404da13a2a93f.tar.xz
yuzu-d49eb7faad11c700d982a4e8023404da13a2a93f.zip
android: Add FPS toggle
Diffstat (limited to 'src')
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt36
-rw-r--r--src/android/app/src/main/res/layout/fragment_emulation.xml5
-rw-r--r--src/android/app/src/main/res/menu/menu_overlay_options.xml5
-rw-r--r--src/android/app/src/main/res/values/strings.xml1
4 files changed, 37 insertions, 10 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt
index 1d1c1333d..a31414a0e 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt
@@ -111,19 +111,23 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
111 } 111 }
112 true 112 true
113 } 113 }
114
114 R.id.menu_settings -> { 115 R.id.menu_settings -> {
115 SettingsActivity.launch(requireContext(), SettingsFile.FILE_NAME_CONFIG, "") 116 SettingsActivity.launch(requireContext(), SettingsFile.FILE_NAME_CONFIG, "")
116 true 117 true
117 } 118 }
119
118 R.id.menu_overlay_controls -> { 120 R.id.menu_overlay_controls -> {
119 showOverlayOptions() 121 showOverlayOptions()
120 true 122 true
121 } 123 }
124
122 R.id.menu_exit -> { 125 R.id.menu_exit -> {
123 requireActivity().finish() 126 requireActivity().finish()
124 emulationState.stop() 127 emulationState.stop()
125 true 128 true
126 } 129 }
130
127 else -> true 131 else -> true
128 } 132 }
129 } 133 }
@@ -224,6 +228,7 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
224 popup.menuInflater.inflate(R.menu.menu_overlay_options, popup.menu) 228 popup.menuInflater.inflate(R.menu.menu_overlay_options, popup.menu)
225 229
226 popup.menu.apply { 230 popup.menu.apply {
231 findItem(R.id.menu_toggle_fps).isChecked = EmulationMenuSettings.showFps
227 findItem(R.id.menu_rel_stick_center).isChecked = EmulationMenuSettings.joystickRelCenter 232 findItem(R.id.menu_rel_stick_center).isChecked = EmulationMenuSettings.joystickRelCenter
228 findItem(R.id.menu_dpad_slide).isChecked = EmulationMenuSettings.dpadSlide 233 findItem(R.id.menu_dpad_slide).isChecked = EmulationMenuSettings.dpadSlide
229 findItem(R.id.menu_show_overlay).isChecked = EmulationMenuSettings.showOverlay 234 findItem(R.id.menu_show_overlay).isChecked = EmulationMenuSettings.showOverlay
@@ -232,12 +237,20 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
232 237
233 popup.setOnMenuItemClickListener { 238 popup.setOnMenuItemClickListener {
234 when (it.itemId) { 239 when (it.itemId) {
240 R.id.menu_toggle_fps -> {
241 it.isChecked = !it.isChecked
242 EmulationMenuSettings.showFps = it.isChecked
243 updateShowFpsOverlay()
244 true
245 }
246
235 R.id.menu_edit_overlay -> { 247 R.id.menu_edit_overlay -> {
236 binding.drawerLayout.close() 248 binding.drawerLayout.close()
237 binding.surfaceInputOverlay.requestFocus() 249 binding.surfaceInputOverlay.requestFocus()
238 startConfiguringControls() 250 startConfiguringControls()
239 true 251 true
240 } 252 }
253
241 R.id.menu_toggle_controls -> { 254 R.id.menu_toggle_controls -> {
242 val preferences = 255 val preferences =
243 PreferenceManager.getDefaultSharedPreferences(YuzuApplication.appContext) 256 PreferenceManager.getDefaultSharedPreferences(YuzuApplication.appContext)
@@ -276,32 +289,38 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
276 } 289 }
277 true 290 true
278 } 291 }
292
279 R.id.menu_show_overlay -> { 293 R.id.menu_show_overlay -> {
280 it.isChecked = !it.isChecked 294 it.isChecked = !it.isChecked
281 EmulationMenuSettings.showOverlay = it.isChecked 295 EmulationMenuSettings.showOverlay = it.isChecked
282 refreshInputOverlay() 296 refreshInputOverlay()
283 true 297 true
284 } 298 }
299
285 R.id.menu_rel_stick_center -> { 300 R.id.menu_rel_stick_center -> {
286 it.isChecked = !it.isChecked 301 it.isChecked = !it.isChecked
287 EmulationMenuSettings.joystickRelCenter = it.isChecked 302 EmulationMenuSettings.joystickRelCenter = it.isChecked
288 true 303 true
289 } 304 }
305
290 R.id.menu_dpad_slide -> { 306 R.id.menu_dpad_slide -> {
291 it.isChecked = !it.isChecked 307 it.isChecked = !it.isChecked
292 EmulationMenuSettings.dpadSlide = it.isChecked 308 EmulationMenuSettings.dpadSlide = it.isChecked
293 true 309 true
294 } 310 }
311
295 R.id.menu_haptics -> { 312 R.id.menu_haptics -> {
296 it.isChecked = !it.isChecked 313 it.isChecked = !it.isChecked
297 EmulationMenuSettings.hapticFeedback = it.isChecked 314 EmulationMenuSettings.hapticFeedback = it.isChecked
298 true 315 true
299 } 316 }
317
300 R.id.menu_reset_overlay -> { 318 R.id.menu_reset_overlay -> {
301 binding.drawerLayout.close() 319 binding.drawerLayout.close()
302 resetInputOverlay() 320 resetInputOverlay()
303 true 321 true
304 } 322 }
323
305 else -> true 324 else -> true
306 } 325 }
307 } 326 }
@@ -333,12 +352,14 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
333 right = cutInsets.right 352 right = cutInsets.right
334 } 353 }
335 354
336 // Don't use padding if the navigation bar isn't in the way 355 v.setPadding(left, cutInsets.top, right, 0)
337 if (InsetsHelper.getBottomPaddingRequired(requireActivity()) > 0) { 356
338 v.setPadding(left, cutInsets.top, right, 0) 357 binding.showFpsText.setPadding(
339 } else { 358 cutInsets.left,
340 v.setPadding(left, cutInsets.top, right, 0) 359 cutInsets.top,
341 } 360 cutInsets.right,
361 cutInsets.bottom
362 )
342 windowInsets 363 windowInsets
343 } 364 }
344 } 365 }
@@ -431,6 +452,7 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
431 NativeLibrary.surfaceDestroyed() 452 NativeLibrary.surfaceDestroyed()
432 state = State.PAUSED 453 state = State.PAUSED
433 } 454 }
455
434 State.PAUSED -> Log.warning("[EmulationFragment] Surface cleared while emulation paused.") 456 State.PAUSED -> Log.warning("[EmulationFragment] Surface cleared while emulation paused.")
435 else -> Log.warning("[EmulationFragment] Surface cleared while emulation stopped.") 457 else -> Log.warning("[EmulationFragment] Surface cleared while emulation stopped.")
436 } 458 }
@@ -448,11 +470,13 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
448 }, "NativeEmulation") 470 }, "NativeEmulation")
449 mEmulationThread.start() 471 mEmulationThread.start()
450 } 472 }
473
451 State.PAUSED -> { 474 State.PAUSED -> {
452 Log.debug("[EmulationFragment] Resuming emulation.") 475 Log.debug("[EmulationFragment] Resuming emulation.")
453 NativeLibrary.surfaceChanged(surface) 476 NativeLibrary.surfaceChanged(surface)
454 NativeLibrary.unPauseEmulation() 477 NativeLibrary.unPauseEmulation()
455 } 478 }
479
456 else -> Log.debug("[EmulationFragment] Bug, run called while already running.") 480 else -> Log.debug("[EmulationFragment] Bug, run called while already running.")
457 } 481 }
458 state = State.RUNNING 482 state = State.RUNNING
diff --git a/src/android/app/src/main/res/layout/fragment_emulation.xml b/src/android/app/src/main/res/layout/fragment_emulation.xml
index 68eedffe1..648b5aaed 100644
--- a/src/android/app/src/main/res/layout/fragment_emulation.xml
+++ b/src/android/app/src/main/res/layout/fragment_emulation.xml
@@ -32,11 +32,8 @@
32 android:id="@+id/show_fps_text" 32 android:id="@+id/show_fps_text"
33 android:layout_width="wrap_content" 33 android:layout_width="wrap_content"
34 android:layout_height="wrap_content" 34 android:layout_height="wrap_content"
35 android:layout_marginStart="18dp"
36 android:layout_marginTop="2dp"
37 android:clickable="false" 35 android:clickable="false"
38 android:linksClickable="false" 36 android:focusable="false"
39 android:longClickable="false"
40 android:shadowColor="@android:color/black" 37 android:shadowColor="@android:color/black"
41 android:textColor="@android:color/white" 38 android:textColor="@android:color/white"
42 android:textSize="12sp" /> 39 android:textSize="12sp" />
diff --git a/src/android/app/src/main/res/menu/menu_overlay_options.xml b/src/android/app/src/main/res/menu/menu_overlay_options.xml
index 9acc29405..09e8b7970 100644
--- a/src/android/app/src/main/res/menu/menu_overlay_options.xml
+++ b/src/android/app/src/main/res/menu/menu_overlay_options.xml
@@ -2,6 +2,11 @@
2<menu xmlns:android="http://schemas.android.com/apk/res/android"> 2<menu xmlns:android="http://schemas.android.com/apk/res/android">
3 3
4 <item 4 <item
5 android:id="@+id/menu_toggle_fps"
6 android:title="@string/emulation_fps_counter"
7 android:checkable="true" />
8
9 <item
5 android:id="@+id/menu_edit_overlay" 10 android:id="@+id/menu_edit_overlay"
6 android:title="@string/emulation_touch_overlay_edit" /> 11 android:title="@string/emulation_touch_overlay_edit" />
7 12
diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml
index 87e07b581..09b95848f 100644
--- a/src/android/app/src/main/res/values/strings.xml
+++ b/src/android/app/src/main/res/values/strings.xml
@@ -183,6 +183,7 @@
183 <!-- Emulation Menu --> 183 <!-- Emulation Menu -->
184 <string name="emulation_exit">Exit Emulation</string> 184 <string name="emulation_exit">Exit Emulation</string>
185 <string name="emulation_done">Done</string> 185 <string name="emulation_done">Done</string>
186 <string name="emulation_fps_counter">FPS Counter</string>
186 <string name="emulation_toggle_controls">Toggle Controls</string> 187 <string name="emulation_toggle_controls">Toggle Controls</string>
187 <string name="emulation_rel_stick_center">Relative Stick Center</string> 188 <string name="emulation_rel_stick_center">Relative Stick Center</string>
188 <string name="emulation_dpad_slide">DPad Slide</string> 189 <string name="emulation_dpad_slide">DPad Slide</string>