android: minor refactor disk shadercache
This commit is contained in:
parent
238a574645
commit
ccb2a7cbea
|
@ -2,7 +2,7 @@
|
||||||
// Licensed under GPLv2 or any later version
|
// Licensed under GPLv2 or any later version
|
||||||
// Refer to the license.txt file included.
|
// 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.Activity;
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
|
@ -21,8 +21,6 @@ static JavaVM* s_java_vm;
|
||||||
|
|
||||||
static jclass s_core_error_class;
|
static jclass s_core_error_class;
|
||||||
static jclass s_savestate_info_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 jclass s_native_library_class;
|
||||||
static jmethodID s_on_core_error;
|
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_exit_emulation_activity;
|
||||||
static jmethodID s_request_camera_permission;
|
static jmethodID s_request_camera_permission;
|
||||||
static jmethodID s_request_mic_permission;
|
static jmethodID s_request_mic_permission;
|
||||||
static jmethodID s_disk_cache_load_progress;
|
|
||||||
|
|
||||||
static jclass s_cheat_class;
|
static jclass s_cheat_class;
|
||||||
static jfieldID s_cheat_pointer;
|
static jfieldID s_cheat_pointer;
|
||||||
|
@ -44,6 +41,8 @@ static jfieldID s_cheat_engine_pointer;
|
||||||
|
|
||||||
static jfieldID s_game_info_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<VideoCore::LoadCallbackStage, jobject> s_java_load_callback_stages;
|
static std::unordered_map<VideoCore::LoadCallbackStage, jobject> s_java_load_callback_stages;
|
||||||
|
|
||||||
namespace IDCache {
|
namespace IDCache {
|
||||||
|
@ -75,14 +74,6 @@ jclass GetSavestateInfoClass() {
|
||||||
return s_savestate_info_class;
|
return s_savestate_info_class;
|
||||||
}
|
}
|
||||||
|
|
||||||
jclass GetDiskCacheProgressClass() {
|
|
||||||
return s_disk_cache_progress_class;
|
|
||||||
}
|
|
||||||
|
|
||||||
jclass GetDiskCacheLoadCallbackStageClass() {
|
|
||||||
return s_load_callback_stage_class;
|
|
||||||
}
|
|
||||||
|
|
||||||
jclass GetNativeLibraryClass() {
|
jclass GetNativeLibraryClass() {
|
||||||
return s_native_library_class;
|
return s_native_library_class;
|
||||||
}
|
}
|
||||||
|
@ -123,10 +114,6 @@ jmethodID GetRequestMicPermission() {
|
||||||
return s_request_mic_permission;
|
return s_request_mic_permission;
|
||||||
}
|
}
|
||||||
|
|
||||||
jmethodID GetDiskCacheLoadProgress() {
|
|
||||||
return s_disk_cache_load_progress;
|
|
||||||
}
|
|
||||||
|
|
||||||
jclass GetCheatClass() {
|
jclass GetCheatClass() {
|
||||||
return s_cheat_class;
|
return s_cheat_class;
|
||||||
}
|
}
|
||||||
|
@ -147,6 +134,14 @@ jfieldID GetGameInfoPointer() {
|
||||||
return s_game_info_pointer;
|
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) {
|
jobject GetJavaLoadCallbackStage(VideoCore::LoadCallbackStage stage) {
|
||||||
const auto it = s_java_load_callback_stages.find(stage);
|
const auto it = s_java_load_callback_stages.find(stage);
|
||||||
ASSERT_MSG(it != s_java_load_callback_stages.end(), "Invalid LoadCallbackStage: {}", 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")));
|
env->NewGlobalRef(env->FindClass("org/citra/citra_emu/NativeLibrary$SavestateInfo")));
|
||||||
s_core_error_class = reinterpret_cast<jclass>(
|
s_core_error_class = reinterpret_cast<jclass>(
|
||||||
env->NewGlobalRef(env->FindClass("org/citra/citra_emu/NativeLibrary$CoreError")));
|
env->NewGlobalRef(env->FindClass("org/citra/citra_emu/NativeLibrary$CoreError")));
|
||||||
s_disk_cache_progress_class = reinterpret_cast<jclass>(env->NewGlobalRef(
|
|
||||||
env->FindClass("org/citra/citra_emu/disk_shader_cache/DiskShaderCacheProgress")));
|
|
||||||
s_load_callback_stage_class = reinterpret_cast<jclass>(env->NewGlobalRef(env->FindClass(
|
|
||||||
"org/citra/citra_emu/disk_shader_cache/DiskShaderCacheProgress$LoadCallbackStage")));
|
|
||||||
|
|
||||||
// Initialize NativeLibrary
|
// Initialize NativeLibrary
|
||||||
const jclass native_library_class = env->FindClass("org/citra/citra_emu/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");
|
env->GetStaticMethodID(s_native_library_class, "RequestCameraPermission", "()Z");
|
||||||
s_request_mic_permission =
|
s_request_mic_permission =
|
||||||
env->GetStaticMethodID(s_native_library_class, "RequestMicPermission", "()Z");
|
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);
|
env->DeleteLocalRef(native_library_class);
|
||||||
|
|
||||||
// Initialize Cheat
|
// Initialize Cheat
|
||||||
|
@ -228,16 +216,22 @@ jint JNI_OnLoad(JavaVM* vm, void* reserved) {
|
||||||
s_game_info_pointer = env->GetFieldID(game_info_class, "mPointer", "J");
|
s_game_info_pointer = env->GetFieldID(game_info_class, "mPointer", "J");
|
||||||
env->DeleteLocalRef(game_info_class);
|
env->DeleteLocalRef(game_info_class);
|
||||||
|
|
||||||
|
// Initialize Disk Shader Cache Progress Dialog
|
||||||
|
s_disk_cache_progress_class = reinterpret_cast<jclass>(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
|
// Initialize LoadCallbackStage map
|
||||||
const auto to_java_load_callback_stage = [env](const std::string& stage) {
|
const auto to_java_load_callback_stage = [env, load_callback_stage_class](const std::string& stage) {
|
||||||
jclass load_callback_stage_class = IDCache::GetDiskCacheLoadCallbackStageClass();
|
|
||||||
return env->NewGlobalRef(env->GetStaticObjectField(
|
return env->NewGlobalRef(env->GetStaticObjectField(
|
||||||
load_callback_stage_class,
|
load_callback_stage_class,
|
||||||
env->GetStaticFieldID(load_callback_stage_class, stage.c_str(),
|
env->GetStaticFieldID(load_callback_stage_class, stage.c_str(),
|
||||||
"Lorg/citra/citra_emu/disk_shader_cache/"
|
"Lorg/citra/citra_emu/utils/"
|
||||||
"DiskShaderCacheProgress$LoadCallbackStage;")));
|
"DiskShaderCacheProgress$LoadCallbackStage;")));
|
||||||
};
|
};
|
||||||
|
|
||||||
s_java_load_callback_stages.emplace(VideoCore::LoadCallbackStage::Prepare,
|
s_java_load_callback_stages.emplace(VideoCore::LoadCallbackStage::Prepare,
|
||||||
to_java_load_callback_stage("Prepare"));
|
to_java_load_callback_stage("Prepare"));
|
||||||
s_java_load_callback_stages.emplace(VideoCore::LoadCallbackStage::Decompile,
|
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"));
|
to_java_load_callback_stage("Build"));
|
||||||
s_java_load_callback_stages.emplace(VideoCore::LoadCallbackStage::Complete,
|
s_java_load_callback_stages.emplace(VideoCore::LoadCallbackStage::Complete,
|
||||||
to_java_load_callback_stage("Complete"));
|
to_java_load_callback_stage("Complete"));
|
||||||
|
env->DeleteLocalRef(load_callback_stage_class);
|
||||||
MiiSelector::InitJNI(env);
|
MiiSelector::InitJNI(env);
|
||||||
SoftwareKeyboard::InitJNI(env);
|
SoftwareKeyboard::InitJNI(env);
|
||||||
Camera::StillImage::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_savestate_info_class);
|
||||||
env->DeleteGlobalRef(s_core_error_class);
|
env->DeleteGlobalRef(s_core_error_class);
|
||||||
env->DeleteGlobalRef(s_disk_cache_progress_class);
|
env->DeleteGlobalRef(s_disk_cache_progress_class);
|
||||||
env->DeleteGlobalRef(s_load_callback_stage_class);
|
|
||||||
env->DeleteGlobalRef(s_native_library_class);
|
env->DeleteGlobalRef(s_native_library_class);
|
||||||
env->DeleteGlobalRef(s_cheat_class);
|
env->DeleteGlobalRef(s_cheat_class);
|
||||||
|
|
||||||
|
|
|
@ -15,8 +15,6 @@ JNIEnv* GetEnvForThread();
|
||||||
|
|
||||||
jclass GetCoreErrorClass();
|
jclass GetCoreErrorClass();
|
||||||
jclass GetSavestateInfoClass();
|
jclass GetSavestateInfoClass();
|
||||||
jclass GetDiskCacheProgressClass();
|
|
||||||
jclass GetDiskCacheLoadCallbackStageClass();
|
|
||||||
|
|
||||||
jclass GetNativeLibraryClass();
|
jclass GetNativeLibraryClass();
|
||||||
jmethodID GetOnCoreError();
|
jmethodID GetOnCoreError();
|
||||||
|
@ -28,7 +26,6 @@ jmethodID GetLandscapeScreenLayout();
|
||||||
jmethodID GetExitEmulationActivity();
|
jmethodID GetExitEmulationActivity();
|
||||||
jmethodID GetRequestCameraPermission();
|
jmethodID GetRequestCameraPermission();
|
||||||
jmethodID GetRequestMicPermission();
|
jmethodID GetRequestMicPermission();
|
||||||
jmethodID GetDiskCacheLoadProgress();
|
|
||||||
|
|
||||||
jclass GetCheatClass();
|
jclass GetCheatClass();
|
||||||
jfieldID GetCheatPointer();
|
jfieldID GetCheatPointer();
|
||||||
|
@ -38,6 +35,8 @@ jfieldID GetCheatEnginePointer();
|
||||||
|
|
||||||
jfieldID GetGameInfoPointer();
|
jfieldID GetGameInfoPointer();
|
||||||
|
|
||||||
|
jclass GetDiskCacheProgressClass();
|
||||||
|
jmethodID GetDiskCacheLoadProgress();
|
||||||
jobject GetJavaLoadCallbackStage(VideoCore::LoadCallbackStage stage);
|
jobject GetJavaLoadCallbackStage(VideoCore::LoadCallbackStage stage);
|
||||||
|
|
||||||
} // namespace IDCache
|
} // namespace IDCache
|
||||||
|
|
Reference in New Issue