android: Add FPS toggle
This commit is contained in:
parent
be6159842a
commit
d49eb7faad
4 changed files with 37 additions and 10 deletions
|
@ -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>
|
||||
|
|
Loading…
Reference in a new issue