android: Add FPS toggle
This commit is contained in:
		| @@ -111,19 +111,23 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback { | ||||
|                     } | ||||
|                     true | ||||
|                 } | ||||
|  | ||||
|                 R.id.menu_settings -> { | ||||
|                     SettingsActivity.launch(requireContext(), SettingsFile.FILE_NAME_CONFIG, "") | ||||
|                     true | ||||
|                 } | ||||
|  | ||||
|                 R.id.menu_overlay_controls -> { | ||||
|                     showOverlayOptions() | ||||
|                     true | ||||
|                 } | ||||
|  | ||||
|                 R.id.menu_exit -> { | ||||
|                     requireActivity().finish() | ||||
|                     emulationState.stop() | ||||
|                     true | ||||
|                 } | ||||
|  | ||||
|                 else -> true | ||||
|             } | ||||
|         } | ||||
| @@ -224,6 +228,7 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback { | ||||
|         popup.menuInflater.inflate(R.menu.menu_overlay_options, popup.menu) | ||||
|  | ||||
|         popup.menu.apply { | ||||
|             findItem(R.id.menu_toggle_fps).isChecked = EmulationMenuSettings.showFps | ||||
|             findItem(R.id.menu_rel_stick_center).isChecked = EmulationMenuSettings.joystickRelCenter | ||||
|             findItem(R.id.menu_dpad_slide).isChecked = EmulationMenuSettings.dpadSlide | ||||
|             findItem(R.id.menu_show_overlay).isChecked = EmulationMenuSettings.showOverlay | ||||
| @@ -232,12 +237,20 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback { | ||||
|  | ||||
|         popup.setOnMenuItemClickListener { | ||||
|             when (it.itemId) { | ||||
|                 R.id.menu_toggle_fps -> { | ||||
|                     it.isChecked = !it.isChecked | ||||
|                     EmulationMenuSettings.showFps = it.isChecked | ||||
|                     updateShowFpsOverlay() | ||||
|                     true | ||||
|                 } | ||||
|  | ||||
|                 R.id.menu_edit_overlay -> { | ||||
|                     binding.drawerLayout.close() | ||||
|                     binding.surfaceInputOverlay.requestFocus() | ||||
|                     startConfiguringControls() | ||||
|                     true | ||||
|                 } | ||||
|  | ||||
|                 R.id.menu_toggle_controls -> { | ||||
|                     val preferences = | ||||
|                         PreferenceManager.getDefaultSharedPreferences(YuzuApplication.appContext) | ||||
| @@ -276,32 +289,38 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback { | ||||
|                         } | ||||
|                     true | ||||
|                 } | ||||
|  | ||||
|                 R.id.menu_show_overlay -> { | ||||
|                     it.isChecked = !it.isChecked | ||||
|                     EmulationMenuSettings.showOverlay = it.isChecked | ||||
|                     refreshInputOverlay() | ||||
|                     true | ||||
|                 } | ||||
|  | ||||
|                 R.id.menu_rel_stick_center -> { | ||||
|                     it.isChecked = !it.isChecked | ||||
|                     EmulationMenuSettings.joystickRelCenter = it.isChecked | ||||
|                     true | ||||
|                 } | ||||
|  | ||||
|                 R.id.menu_dpad_slide -> { | ||||
|                     it.isChecked = !it.isChecked | ||||
|                     EmulationMenuSettings.dpadSlide = it.isChecked | ||||
|                     true | ||||
|                 } | ||||
|  | ||||
|                 R.id.menu_haptics -> { | ||||
|                     it.isChecked = !it.isChecked | ||||
|                     EmulationMenuSettings.hapticFeedback = it.isChecked | ||||
|                     true | ||||
|                 } | ||||
|  | ||||
|                 R.id.menu_reset_overlay -> { | ||||
|                     binding.drawerLayout.close() | ||||
|                     resetInputOverlay() | ||||
|                     true | ||||
|                 } | ||||
|  | ||||
|                 else -> true | ||||
|             } | ||||
|         } | ||||
| @@ -333,12 +352,14 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback { | ||||
|                 right = cutInsets.right | ||||
|             } | ||||
|  | ||||
|             // Don't use padding if the navigation bar isn't in the way | ||||
|             if (InsetsHelper.getBottomPaddingRequired(requireActivity()) > 0) { | ||||
|             v.setPadding(left, cutInsets.top, right, 0) | ||||
|             } else { | ||||
|                 v.setPadding(left, cutInsets.top, right, 0) | ||||
|             } | ||||
|  | ||||
|             binding.showFpsText.setPadding( | ||||
|                 cutInsets.left, | ||||
|                 cutInsets.top, | ||||
|                 cutInsets.right, | ||||
|                 cutInsets.bottom | ||||
|             ) | ||||
|             windowInsets | ||||
|         } | ||||
|     } | ||||
| @@ -431,6 +452,7 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback { | ||||
|                         NativeLibrary.surfaceDestroyed() | ||||
|                         state = State.PAUSED | ||||
|                     } | ||||
|  | ||||
|                     State.PAUSED -> Log.warning("[EmulationFragment] Surface cleared while emulation paused.") | ||||
|                     else -> Log.warning("[EmulationFragment] Surface cleared while emulation stopped.") | ||||
|                 } | ||||
| @@ -448,11 +470,13 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback { | ||||
|                     }, "NativeEmulation") | ||||
|                     mEmulationThread.start() | ||||
|                 } | ||||
|  | ||||
|                 State.PAUSED -> { | ||||
|                     Log.debug("[EmulationFragment] Resuming emulation.") | ||||
|                     NativeLibrary.surfaceChanged(surface) | ||||
|                     NativeLibrary.unPauseEmulation() | ||||
|                 } | ||||
|  | ||||
|                 else -> Log.debug("[EmulationFragment] Bug, run called while already running.") | ||||
|             } | ||||
|             state = State.RUNNING | ||||
|   | ||||
| @@ -32,11 +32,8 @@ | ||||
|             android:id="@+id/show_fps_text" | ||||
|             android:layout_width="wrap_content" | ||||
|             android:layout_height="wrap_content" | ||||
|             android:layout_marginStart="18dp" | ||||
|             android:layout_marginTop="2dp" | ||||
|             android:clickable="false" | ||||
|             android:linksClickable="false" | ||||
|             android:longClickable="false" | ||||
|             android:focusable="false" | ||||
|             android:shadowColor="@android:color/black" | ||||
|             android:textColor="@android:color/white" | ||||
|             android:textSize="12sp" /> | ||||
|   | ||||
| @@ -1,6 +1,11 @@ | ||||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <menu xmlns:android="http://schemas.android.com/apk/res/android"> | ||||
|  | ||||
|     <item | ||||
|         android:id="@+id/menu_toggle_fps" | ||||
|         android:title="@string/emulation_fps_counter" | ||||
|         android:checkable="true" /> | ||||
|  | ||||
|     <item | ||||
|         android:id="@+id/menu_edit_overlay" | ||||
|         android:title="@string/emulation_touch_overlay_edit" /> | ||||
|   | ||||
| @@ -183,6 +183,7 @@ | ||||
|     <!-- Emulation Menu --> | ||||
|     <string name="emulation_exit">Exit Emulation</string> | ||||
|     <string name="emulation_done">Done</string> | ||||
|     <string name="emulation_fps_counter">FPS Counter</string> | ||||
|     <string name="emulation_toggle_controls">Toggle Controls</string> | ||||
|     <string name="emulation_rel_stick_center">Relative Stick Center</string> | ||||
|     <string name="emulation_dpad_slide">DPad Slide</string> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user