mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-08-25 19:55:50 +00:00
Android: update UI for graphics mods 2.0
This commit is contained in:
parent
5782af6107
commit
032fbd4436
2 changed files with 21 additions and 31 deletions
|
@ -5,13 +5,14 @@
|
||||||
|
|
||||||
#include <jni.h>
|
#include <jni.h>
|
||||||
|
|
||||||
#include "VideoCommon/GraphicsModSystem/Config/GraphicsMod.h"
|
#include "VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.h"
|
||||||
#include "jni/AndroidCommon/AndroidCommon.h"
|
#include "jni/AndroidCommon/AndroidCommon.h"
|
||||||
#include "jni/AndroidCommon/IDCache.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<GraphicsModConfig*>(
|
return reinterpret_cast<GraphicsModSystem::Config::GraphicsModGroup::GraphicsModWithMetadata*>(
|
||||||
env->GetLongField(obj, IDCache::GetGraphicsModPointer()));
|
env->GetLongField(obj, IDCache::GetGraphicsModPointer()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -20,20 +21,20 @@ extern "C" {
|
||||||
JNIEXPORT jstring JNICALL
|
JNIEXPORT jstring JNICALL
|
||||||
Java_org_dolphinemu_dolphinemu_features_cheats_model_GraphicsMod_getName(JNIEnv* env, jobject obj)
|
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
|
JNIEXPORT jstring JNICALL
|
||||||
Java_org_dolphinemu_dolphinemu_features_cheats_model_GraphicsMod_getCreator(JNIEnv* env,
|
Java_org_dolphinemu_dolphinemu_features_cheats_model_GraphicsMod_getCreator(JNIEnv* env,
|
||||||
jobject obj)
|
jobject obj)
|
||||||
{
|
{
|
||||||
return ToJString(env, GetPointer(env, obj)->m_author);
|
return ToJString(env, GetPointer(env, obj)->m_mod.m_author);
|
||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT jstring JNICALL
|
JNIEXPORT jstring JNICALL
|
||||||
Java_org_dolphinemu_dolphinemu_features_cheats_model_GraphicsMod_getNotes(JNIEnv* env, jobject obj)
|
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
|
JNIEXPORT jboolean JNICALL
|
||||||
|
|
|
@ -3,21 +3,21 @@
|
||||||
|
|
||||||
#include <jni.h>
|
#include <jni.h>
|
||||||
|
|
||||||
#include <set>
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "VideoCommon/GraphicsModSystem/Config/GraphicsMod.h"
|
|
||||||
#include "VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.h"
|
#include "VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.h"
|
||||||
#include "jni/AndroidCommon/AndroidCommon.h"
|
#include "jni/AndroidCommon/AndroidCommon.h"
|
||||||
#include "jni/AndroidCommon/IDCache.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<GraphicsModGroupConfig*>(
|
return reinterpret_cast<GraphicsModSystem::Config::GraphicsModGroup*>(
|
||||||
env->GetLongField(obj, IDCache::GetGraphicsModGroupPointer()));
|
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(),
|
return env->NewObject(IDCache::GetGraphicsModClass(), IDCache::GetGraphicsModConstructor(),
|
||||||
reinterpret_cast<jlong>(mod), jGraphicsModGroup);
|
reinterpret_cast<jlong>(mod), jGraphicsModGroup);
|
||||||
|
@ -36,34 +36,23 @@ JNIEXPORT jobjectArray JNICALL
|
||||||
Java_org_dolphinemu_dolphinemu_features_cheats_model_GraphicsModGroup_getMods(JNIEnv* env,
|
Java_org_dolphinemu_dolphinemu_features_cheats_model_GraphicsModGroup_getMods(JNIEnv* env,
|
||||||
jobject obj)
|
jobject obj)
|
||||||
{
|
{
|
||||||
GraphicsModGroupConfig* mod_group = GetPointer(env, obj);
|
GraphicsModSystem::Config::GraphicsModGroup* mod_group = GetPointer(env, obj);
|
||||||
|
std::vector<GraphicsModSystem::Config::GraphicsModGroup::GraphicsModWithMetadata*> mods;
|
||||||
|
|
||||||
std::set<std::string> groups;
|
for (auto& mod : mod_group->GetMods())
|
||||||
|
|
||||||
for (const GraphicsModConfig& mod : mod_group->GetMods())
|
|
||||||
{
|
{
|
||||||
for (const GraphicsTargetGroupConfig& group : mod.m_groups)
|
if (mod.m_mod.m_actions.empty())
|
||||||
groups.insert(group.m_name);
|
|
||||||
}
|
|
||||||
|
|
||||||
std::vector<GraphicsModConfig*> 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);
|
|
||||||
}))
|
|
||||||
{
|
|
||||||
continue;
|
continue;
|
||||||
}
|
|
||||||
|
|
||||||
mods.push_back(&mod);
|
mods.push_back(&mod);
|
||||||
}
|
}
|
||||||
|
|
||||||
return VectorToJObjectArray(
|
return VectorToJObjectArray(
|
||||||
env, mods, IDCache::GetGraphicsModClass(),
|
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
|
JNIEXPORT void JNICALL
|
||||||
|
@ -76,7 +65,7 @@ JNIEXPORT jobject JNICALL
|
||||||
Java_org_dolphinemu_dolphinemu_features_cheats_model_GraphicsModGroup_load(JNIEnv* env, jclass,
|
Java_org_dolphinemu_dolphinemu_features_cheats_model_GraphicsModGroup_load(JNIEnv* env, jclass,
|
||||||
jstring jGameId)
|
jstring jGameId)
|
||||||
{
|
{
|
||||||
auto* mod_group = new GraphicsModGroupConfig(GetJString(env, jGameId));
|
auto* mod_group = new GraphicsModSystem::Config::GraphicsModGroup(GetJString(env, jGameId));
|
||||||
|
|
||||||
mod_group->Load();
|
mod_group->Load();
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue