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