소스 검색

Android: Handle SDL3 symbol name to retrieve current JNIEnv and activity.

Miku AuahDark 9 달 전
부모
커밋
5b6ecab8c1
1개의 변경된 파일11개의 추가작업 그리고 4개의 파일을 삭제
  1. 11 4
      src/android/AndroidClient.cpp

+ 11 - 4
src/android/AndroidClient.cpp

@@ -53,10 +53,17 @@ AndroidClient::AndroidClient()
 : HTTPSClient()
 {
 	LibraryLoader::handle *library = LibraryLoader::GetCurrentProcessHandle();
-	// Look for SDL_AndroidGetJNIEnv
-	LibraryLoader::LoadSymbol(SDL_AndroidGetJNIEnv, library, "SDL_AndroidGetJNIEnv");
-	// Look for SDL_AndroidGetActivity
-	LibraryLoader::LoadSymbol(SDL_AndroidGetActivity, library, "SDL_AndroidGetActivity");
+
+	// Look for SDL_GetAndroidJNIEnv and SDL_GetAndroidActivity (SDL3)
+	if (
+		!LibraryLoader::LoadSymbol(SDL_AndroidGetJNIEnv, library, "SDL_GetAndroidJNIEnv") &&
+		!LibraryLoader::LoadSymbol(SDL_AndroidGetActivity, library, "SDL_GetAndroidActivity")
+	)
+	{
+		// Probably running SDL2.
+		LibraryLoader::LoadSymbol(SDL_AndroidGetJNIEnv, library, "SDL_AndroidGetJNIEnv");
+		LibraryLoader::LoadSymbol(SDL_AndroidGetActivity, library, "SDL_AndroidGetActivity");
+	}
 }
 
 bool AndroidClient::valid() const