From 032fbd44361e4f124017ba378e8ace5ee8e7df41 Mon Sep 17 00:00:00 2001 From: iwubcode Date: Sun, 14 Apr 2024 15:07:41 -0500 Subject: [PATCH] Android: update UI for graphics mods 2.0 --- Source/Android/jni/Cheats/GraphicsMod.cpp | 13 ++++--- .../Android/jni/Cheats/GraphicsModGroup.cpp | 39 +++++++------------ 2 files changed, 21 insertions(+), 31 deletions(-) diff --git a/Source/Android/jni/Cheats/GraphicsMod.cpp b/Source/Android/jni/Cheats/GraphicsMod.cpp index 627351f546..be8f916e72 100644 --- a/Source/Android/jni/Cheats/GraphicsMod.cpp +++ b/Source/Android/jni/Cheats/GraphicsMod.cpp @@ -5,13 +5,14 @@ #include -#include "VideoCommon/GraphicsModSystem/Config/GraphicsMod.h" +#include "VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.h" #include "jni/AndroidCommon/AndroidCommon.h" #include "jni/AndroidCommon/IDCache.h" -static GraphicsModConfig* GetPointer(JNIEnv* env, jobject obj) +static GraphicsModSystem::Config::GraphicsModGroup::GraphicsModWithMetadata* GetPointer(JNIEnv* env, + jobject obj) { - return reinterpret_cast( + return reinterpret_cast( env->GetLongField(obj, IDCache::GetGraphicsModPointer())); } @@ -20,20 +21,20 @@ extern "C" { JNIEXPORT jstring JNICALL Java_org_dolphinemu_dolphinemu_features_cheats_model_GraphicsMod_getName(JNIEnv* env, jobject obj) { - return ToJString(env, GetPointer(env, obj)->m_title); + return ToJString(env, GetPointer(env, obj)->m_mod.m_title); } JNIEXPORT jstring JNICALL Java_org_dolphinemu_dolphinemu_features_cheats_model_GraphicsMod_getCreator(JNIEnv* env, jobject obj) { - return ToJString(env, GetPointer(env, obj)->m_author); + return ToJString(env, GetPointer(env, obj)->m_mod.m_author); } JNIEXPORT jstring JNICALL Java_org_dolphinemu_dolphinemu_features_cheats_model_GraphicsMod_getNotes(JNIEnv* env, jobject obj) { - return ToJString(env, GetPointer(env, obj)->m_description); + return ToJString(env, GetPointer(env, obj)->m_mod.m_description); } JNIEXPORT jboolean JNICALL diff --git a/Source/Android/jni/Cheats/GraphicsModGroup.cpp b/Source/Android/jni/Cheats/GraphicsModGroup.cpp index 7affca0ef6..fdeb36fed0 100644 --- a/Source/Android/jni/Cheats/GraphicsModGroup.cpp +++ b/Source/Android/jni/Cheats/GraphicsModGroup.cpp @@ -3,21 +3,21 @@ #include -#include #include -#include "VideoCommon/GraphicsModSystem/Config/GraphicsMod.h" #include "VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.h" #include "jni/AndroidCommon/AndroidCommon.h" #include "jni/AndroidCommon/IDCache.h" -static GraphicsModGroupConfig* GetPointer(JNIEnv* env, jobject obj) +static GraphicsModSystem::Config::GraphicsModGroup* GetPointer(JNIEnv* env, jobject obj) { - return reinterpret_cast( + return reinterpret_cast( env->GetLongField(obj, IDCache::GetGraphicsModGroupPointer())); } -jobject GraphicsModToJava(JNIEnv* env, GraphicsModConfig* mod, jobject jGraphicsModGroup) +jobject GraphicsModToJava(JNIEnv* env, + GraphicsModSystem::Config::GraphicsModGroup::GraphicsModWithMetadata* mod, + jobject jGraphicsModGroup) { return env->NewObject(IDCache::GetGraphicsModClass(), IDCache::GetGraphicsModConstructor(), reinterpret_cast(mod), jGraphicsModGroup); @@ -36,34 +36,23 @@ JNIEXPORT jobjectArray JNICALL Java_org_dolphinemu_dolphinemu_features_cheats_model_GraphicsModGroup_getMods(JNIEnv* env, jobject obj) { - GraphicsModGroupConfig* mod_group = GetPointer(env, obj); + GraphicsModSystem::Config::GraphicsModGroup* mod_group = GetPointer(env, obj); + std::vector mods; - std::set groups; - - for (const GraphicsModConfig& mod : mod_group->GetMods()) + for (auto& mod : mod_group->GetMods()) { - for (const GraphicsTargetGroupConfig& group : mod.m_groups) - groups.insert(group.m_name); - } - - std::vector mods; - - for (GraphicsModConfig& mod : mod_group->GetMods()) - { - // If no group matches the mod's features, or if the mod has no features, skip it - if (std::ranges::none_of(mod.m_features, [&groups](const GraphicsModFeatureConfig& feature) { - return groups.contains(feature.m_group); - })) - { + if (mod.m_mod.m_actions.empty()) continue; - } mods.push_back(&mod); } return VectorToJObjectArray( env, mods, IDCache::GetGraphicsModClass(), - [obj](JNIEnv* env, GraphicsModConfig* mod) { return GraphicsModToJava(env, mod, obj); }); + [obj](JNIEnv* env, + GraphicsModSystem::Config::GraphicsModGroup::GraphicsModWithMetadata* mod) { + return GraphicsModToJava(env, mod, obj); + }); } JNIEXPORT void JNICALL @@ -76,7 +65,7 @@ JNIEXPORT jobject JNICALL Java_org_dolphinemu_dolphinemu_features_cheats_model_GraphicsModGroup_load(JNIEnv* env, jclass, jstring jGameId) { - auto* mod_group = new GraphicsModGroupConfig(GetJString(env, jGameId)); + auto* mod_group = new GraphicsModSystem::Config::GraphicsModGroup(GetJString(env, jGameId)); mod_group->Load();