From ccb2a7cbeac56f2cc34ee9a8a5d347b9b41e6710 Mon Sep 17 00:00:00 2001 From: SachinVin Date: Mon, 1 May 2023 10:03:58 +0530 Subject: [PATCH] android: minor refactor disk shadercache --- .../DiskShaderCacheProgress.java | 2 +- src/android/app/src/main/jni/id_cache.cpp | 49 ++++++++----------- src/android/app/src/main/jni/id_cache.h | 5 +- 3 files changed, 24 insertions(+), 32 deletions(-) rename src/android/app/src/main/java/org/citra/citra_emu/{disk_shader_cache => utils}/DiskShaderCacheProgress.java (99%) diff --git a/src/android/app/src/main/java/org/citra/citra_emu/disk_shader_cache/DiskShaderCacheProgress.java b/src/android/app/src/main/java/org/citra/citra_emu/utils/DiskShaderCacheProgress.java similarity index 99% rename from src/android/app/src/main/java/org/citra/citra_emu/disk_shader_cache/DiskShaderCacheProgress.java rename to src/android/app/src/main/java/org/citra/citra_emu/utils/DiskShaderCacheProgress.java index ceaacc12a..527875249 100644 --- a/src/android/app/src/main/java/org/citra/citra_emu/disk_shader_cache/DiskShaderCacheProgress.java +++ b/src/android/app/src/main/java/org/citra/citra_emu/utils/DiskShaderCacheProgress.java @@ -2,7 +2,7 @@ // Licensed under GPLv2 or any later version // Refer to the license.txt file included. -package org.citra.citra_emu.disk_shader_cache; +package org.citra.citra_emu.utils; import android.app.Activity; import android.app.Dialog; diff --git a/src/android/app/src/main/jni/id_cache.cpp b/src/android/app/src/main/jni/id_cache.cpp index c34b01917..2ac6e5da9 100644 --- a/src/android/app/src/main/jni/id_cache.cpp +++ b/src/android/app/src/main/jni/id_cache.cpp @@ -21,8 +21,6 @@ static JavaVM* s_java_vm; static jclass s_core_error_class; static jclass s_savestate_info_class; -static jclass s_disk_cache_progress_class; -static jclass s_load_callback_stage_class; static jclass s_native_library_class; static jmethodID s_on_core_error; @@ -34,7 +32,6 @@ static jmethodID s_landscape_screen_layout; static jmethodID s_exit_emulation_activity; static jmethodID s_request_camera_permission; static jmethodID s_request_mic_permission; -static jmethodID s_disk_cache_load_progress; static jclass s_cheat_class; static jfieldID s_cheat_pointer; @@ -44,6 +41,8 @@ static jfieldID s_cheat_engine_pointer; static jfieldID s_game_info_pointer; +static jclass s_disk_cache_progress_class; +static jmethodID s_disk_cache_load_progress; static std::unordered_map s_java_load_callback_stages; namespace IDCache { @@ -75,14 +74,6 @@ jclass GetSavestateInfoClass() { return s_savestate_info_class; } -jclass GetDiskCacheProgressClass() { - return s_disk_cache_progress_class; -} - -jclass GetDiskCacheLoadCallbackStageClass() { - return s_load_callback_stage_class; -} - jclass GetNativeLibraryClass() { return s_native_library_class; } @@ -123,10 +114,6 @@ jmethodID GetRequestMicPermission() { return s_request_mic_permission; } -jmethodID GetDiskCacheLoadProgress() { - return s_disk_cache_load_progress; -} - jclass GetCheatClass() { return s_cheat_class; } @@ -147,6 +134,14 @@ jfieldID GetGameInfoPointer() { return s_game_info_pointer; } +jclass GetDiskCacheProgressClass() { + return s_disk_cache_progress_class; +} + +jmethodID GetDiskCacheLoadProgress() { + return s_disk_cache_load_progress; +} + jobject GetJavaLoadCallbackStage(VideoCore::LoadCallbackStage stage) { const auto it = s_java_load_callback_stages.find(stage); ASSERT_MSG(it != s_java_load_callback_stages.end(), "Invalid LoadCallbackStage: {}", stage); @@ -178,10 +173,6 @@ jint JNI_OnLoad(JavaVM* vm, void* reserved) { env->NewGlobalRef(env->FindClass("org/citra/citra_emu/NativeLibrary$SavestateInfo"))); s_core_error_class = reinterpret_cast( env->NewGlobalRef(env->FindClass("org/citra/citra_emu/NativeLibrary$CoreError"))); - s_disk_cache_progress_class = reinterpret_cast(env->NewGlobalRef( - env->FindClass("org/citra/citra_emu/disk_shader_cache/DiskShaderCacheProgress"))); - s_load_callback_stage_class = reinterpret_cast(env->NewGlobalRef(env->FindClass( - "org/citra/citra_emu/disk_shader_cache/DiskShaderCacheProgress$LoadCallbackStage"))); // Initialize NativeLibrary const jclass native_library_class = env->FindClass("org/citra/citra_emu/NativeLibrary"); @@ -205,9 +196,6 @@ jint JNI_OnLoad(JavaVM* vm, void* reserved) { env->GetStaticMethodID(s_native_library_class, "RequestCameraPermission", "()Z"); s_request_mic_permission = env->GetStaticMethodID(s_native_library_class, "RequestMicPermission", "()Z"); - s_disk_cache_load_progress = env->GetStaticMethodID( - s_disk_cache_progress_class, "loadProgress", - "(Lorg/citra/citra_emu/disk_shader_cache/DiskShaderCacheProgress$LoadCallbackStage;II)V"); env->DeleteLocalRef(native_library_class); // Initialize Cheat @@ -228,16 +216,22 @@ jint JNI_OnLoad(JavaVM* vm, void* reserved) { s_game_info_pointer = env->GetFieldID(game_info_class, "mPointer", "J"); env->DeleteLocalRef(game_info_class); + // Initialize Disk Shader Cache Progress Dialog + s_disk_cache_progress_class = reinterpret_cast(env->NewGlobalRef( + env->FindClass("org/citra/citra_emu/utils/DiskShaderCacheProgress"))); + jclass load_callback_stage_class = env->FindClass( + "org/citra/citra_emu/utils/DiskShaderCacheProgress$LoadCallbackStage"); + s_disk_cache_load_progress = env->GetStaticMethodID( + s_disk_cache_progress_class, "loadProgress", + "(Lorg/citra/citra_emu/utils/DiskShaderCacheProgress$LoadCallbackStage;II)V"); // Initialize LoadCallbackStage map - const auto to_java_load_callback_stage = [env](const std::string& stage) { - jclass load_callback_stage_class = IDCache::GetDiskCacheLoadCallbackStageClass(); + const auto to_java_load_callback_stage = [env, load_callback_stage_class](const std::string& stage) { return env->NewGlobalRef(env->GetStaticObjectField( load_callback_stage_class, env->GetStaticFieldID(load_callback_stage_class, stage.c_str(), - "Lorg/citra/citra_emu/disk_shader_cache/" + "Lorg/citra/citra_emu/utils/" "DiskShaderCacheProgress$LoadCallbackStage;"))); }; - s_java_load_callback_stages.emplace(VideoCore::LoadCallbackStage::Prepare, to_java_load_callback_stage("Prepare")); s_java_load_callback_stages.emplace(VideoCore::LoadCallbackStage::Decompile, @@ -246,7 +240,7 @@ jint JNI_OnLoad(JavaVM* vm, void* reserved) { to_java_load_callback_stage("Build")); s_java_load_callback_stages.emplace(VideoCore::LoadCallbackStage::Complete, to_java_load_callback_stage("Complete")); - + env->DeleteLocalRef(load_callback_stage_class); MiiSelector::InitJNI(env); SoftwareKeyboard::InitJNI(env); Camera::StillImage::InitJNI(env); @@ -264,7 +258,6 @@ void JNI_OnUnload(JavaVM* vm, void* reserved) { env->DeleteGlobalRef(s_savestate_info_class); env->DeleteGlobalRef(s_core_error_class); env->DeleteGlobalRef(s_disk_cache_progress_class); - env->DeleteGlobalRef(s_load_callback_stage_class); env->DeleteGlobalRef(s_native_library_class); env->DeleteGlobalRef(s_cheat_class); diff --git a/src/android/app/src/main/jni/id_cache.h b/src/android/app/src/main/jni/id_cache.h index e57496fae..62a9e066a 100644 --- a/src/android/app/src/main/jni/id_cache.h +++ b/src/android/app/src/main/jni/id_cache.h @@ -15,8 +15,6 @@ JNIEnv* GetEnvForThread(); jclass GetCoreErrorClass(); jclass GetSavestateInfoClass(); -jclass GetDiskCacheProgressClass(); -jclass GetDiskCacheLoadCallbackStageClass(); jclass GetNativeLibraryClass(); jmethodID GetOnCoreError(); @@ -28,7 +26,6 @@ jmethodID GetLandscapeScreenLayout(); jmethodID GetExitEmulationActivity(); jmethodID GetRequestCameraPermission(); jmethodID GetRequestMicPermission(); -jmethodID GetDiskCacheLoadProgress(); jclass GetCheatClass(); jfieldID GetCheatPointer(); @@ -38,6 +35,8 @@ jfieldID GetCheatEnginePointer(); jfieldID GetGameInfoPointer(); +jclass GetDiskCacheProgressClass(); +jmethodID GetDiskCacheLoadProgress(); jobject GetJavaLoadCallbackStage(VideoCore::LoadCallbackStage stage); } // namespace IDCache