mirror of
				https://git.suyu.dev/suyu/suyu.git
				synced 2025-10-31 06:46:40 +08:00 
			
		
		
		
	android: Hide loading animation on first frame
This commit is contained in:
		
							parent
							
								
									f75363177e
								
							
						
					
					
						commit
						09f993899e
					
				| @ -9,6 +9,7 @@ | |||||||
| #include "input_common/drivers/virtual_gamepad.h" | #include "input_common/drivers/virtual_gamepad.h" | ||||||
| #include "input_common/main.h" | #include "input_common/main.h" | ||||||
| #include "jni/emu_window/emu_window.h" | #include "jni/emu_window/emu_window.h" | ||||||
|  | #include "jni/native.h" | ||||||
| 
 | 
 | ||||||
| void EmuWindow_Android::OnSurfaceChanged(ANativeWindow* surface) { | void EmuWindow_Android::OnSurfaceChanged(ANativeWindow* surface) { | ||||||
|     m_window_width = ANativeWindow_getWidth(surface); |     m_window_width = ANativeWindow_getWidth(surface); | ||||||
| @ -57,6 +58,13 @@ void EmuWindow_Android::OnRemoveNfcTag() { | |||||||
|     m_input_subsystem->GetVirtualAmiibo()->CloseAmiibo(); |     m_input_subsystem->GetVirtualAmiibo()->CloseAmiibo(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | void EmuWindow_Android::OnFrameDisplayed() { | ||||||
|  |     if (!m_first_frame) { | ||||||
|  |         EmulationSession::GetInstance().OnEmulationStarted(); | ||||||
|  |         m_first_frame = true; | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
| EmuWindow_Android::EmuWindow_Android(InputCommon::InputSubsystem* input_subsystem, | EmuWindow_Android::EmuWindow_Android(InputCommon::InputSubsystem* input_subsystem, | ||||||
|                                      ANativeWindow* surface, |                                      ANativeWindow* surface, | ||||||
|                                      std::shared_ptr<Common::DynamicLibrary> driver_library) |                                      std::shared_ptr<Common::DynamicLibrary> driver_library) | ||||||
|  | |||||||
| @ -45,7 +45,7 @@ public: | |||||||
|                               float gyro_z, float accel_x, float accel_y, float accel_z); |                               float gyro_z, float accel_x, float accel_y, float accel_z); | ||||||
|     void OnReadNfcTag(std::span<u8> data); |     void OnReadNfcTag(std::span<u8> data); | ||||||
|     void OnRemoveNfcTag(); |     void OnRemoveNfcTag(); | ||||||
|     void OnFrameDisplayed() override {} |     void OnFrameDisplayed() override; | ||||||
| 
 | 
 | ||||||
|     std::unique_ptr<Core::Frontend::GraphicsContext> CreateSharedContext() const override { |     std::unique_ptr<Core::Frontend::GraphicsContext> CreateSharedContext() const override { | ||||||
|         return {std::make_unique<GraphicsContext_Android>(m_driver_library)}; |         return {std::make_unique<GraphicsContext_Android>(m_driver_library)}; | ||||||
| @ -61,4 +61,6 @@ private: | |||||||
|     float m_window_height{}; |     float m_window_height{}; | ||||||
| 
 | 
 | ||||||
|     std::shared_ptr<Common::DynamicLibrary> m_driver_library; |     std::shared_ptr<Common::DynamicLibrary> m_driver_library; | ||||||
|  | 
 | ||||||
|  |     bool m_first_frame = false; | ||||||
| }; | }; | ||||||
|  | |||||||
| @ -372,8 +372,6 @@ void EmulationSession::RunEmulation() { | |||||||
|         m_system.InitializeDebugger(); |         m_system.InitializeDebugger(); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     OnEmulationStarted(); |  | ||||||
| 
 |  | ||||||
|     while (true) { |     while (true) { | ||||||
|         { |         { | ||||||
|             [[maybe_unused]] std::unique_lock lock(m_mutex); |             [[maybe_unused]] std::unique_lock lock(m_mutex); | ||||||
|  | |||||||
| @ -52,9 +52,10 @@ public: | |||||||
|     void OnGamepadDisconnectEvent([[maybe_unused]] int index); |     void OnGamepadDisconnectEvent([[maybe_unused]] int index); | ||||||
|     SoftwareKeyboard::AndroidKeyboard* SoftwareKeyboard(); |     SoftwareKeyboard::AndroidKeyboard* SoftwareKeyboard(); | ||||||
| 
 | 
 | ||||||
|  |     static void OnEmulationStarted(); | ||||||
|  | 
 | ||||||
| private: | private: | ||||||
|     static void LoadDiskCacheProgress(VideoCore::LoadCallbackStage stage, int progress, int max); |     static void LoadDiskCacheProgress(VideoCore::LoadCallbackStage stage, int progress, int max); | ||||||
|     static void OnEmulationStarted(); |  | ||||||
|     static void OnEmulationStopped(Core::SystemResultStatus result); |     static void OnEmulationStopped(Core::SystemResultStatus result); | ||||||
| 
 | 
 | ||||||
| private: | private: | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user