diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/MainActivity.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/MainActivity.java
index f35eb39f9..5b63a8173 100644
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/MainActivity.java
+++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/MainActivity.java
@@ -357,7 +357,10 @@ public class MainActivity extends BaseActivity implements ControlButtonMenuListe
private void runCraft(String versionId, JMinecraftVersionList.Version version) throws Throwable {
if(Tools.LOCAL_RENDERER == null) {
- Tools.LOCAL_RENDERER = LauncherPreferences.PREF_RENDERER;
+ Integer iSelectedMcVer = Tools.mcVersiontoInt(Tools.getSelectedVanillaMcVer());
+ if (iSelectedMcVer >= 1021005) {
+ Tools.LOCAL_RENDERER = "opengles_mobileglues";
+ } else Tools.LOCAL_RENDERER = "opengles2";
}
if(!Tools.checkRendererCompatible(this, Tools.LOCAL_RENDERER)) {
Tools.RenderersList renderersList = Tools.getCompatibleRenderers(this);
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/Tools.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/Tools.java
index 82d101fc9..c8268477a 100644
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/Tools.java
+++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/Tools.java
@@ -822,6 +822,9 @@ public final class Tools {
public static void dialogOnUiThread(final Activity activity, final CharSequence title, final CharSequence message) {
activity.runOnUiThread(()->dialog(activity, title, message));
}
+ public static void dialogOnUiThread(final Activity activity, final int title, final int message) {
+ dialogOnUiThread(activity, activity.getString(title), activity.getString(message));
+ }
public static void dialog(final Context context, final CharSequence title, final CharSequence message) {
new AlertDialog.Builder(context)
@@ -1506,5 +1509,47 @@ public final class Tools {
hasNoOnlineProfileDialog(activity, null, customTitle, customMessage);
}
+ public static String getSelectedVanillaMcVer(){
+ String selectedProfile = LauncherPreferences.DEFAULT_PREF.getString(LauncherPreferences.PREF_KEY_CURRENT_PROFILE, "");
+ MinecraftProfile selected = LauncherProfiles.mainProfileJson.profiles.get(selectedProfile);
+ if (selected == null) { // This should NEVER happen.
+ throw new RuntimeException("No profile selected, how did you reach this? Go ask in the discord or github");
+ }
+ String currentMCVersion = selected.lastVersionId;
+ String vanillaVersion = currentMCVersion;
+ File providedJsonFile = new File(Tools.DIR_HOME_VERSION + "/" + currentMCVersion + "/" + currentMCVersion + ".json");
+ JMinecraftVersionList.Version providedJsonVersion = null;
+ try {
+ providedJsonVersion = Tools.GLOBAL_GSON.fromJson(Tools.read(providedJsonFile.getAbsolutePath()), JMinecraftVersionList.Version.class);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ try {
+ vanillaVersion = providedJsonVersion.inheritsFrom != null ? providedJsonVersion.inheritsFrom : vanillaVersion;
+ } catch (NullPointerException e) {
+ throw new RuntimeException(e);
+ }
+ return vanillaVersion;
+ }
+ public static Integer mcVersiontoInt(String mcVersion){
+ String[] sVersionArray = mcVersion.split("\\.");
+ String[] iVersionArray = new String[3];
+ // Make sure this is actually a version string
+ for (int i = 0; i < iVersionArray.length; i++) {
+ // Ensure there's padding
+ sVersionArray[i] = String.format("%3s", sVersionArray[i]).replace(' ', '0');
+ System.out.println(sVersionArray[i]);
+ // Grab only the last 3, MCJE 999.999.999 isnt coming soon anyway
+ sVersionArray[i] = sVersionArray[i].substring(sVersionArray[i].length() - 3);
+ try {
+ // Verify its a real deal, legit number
+ Integer.parseInt(sVersionArray[i]);
+ iVersionArray[i] = sVersionArray[i];
+ } catch (NumberFormatException e) {
+ throw new RuntimeException("Tools(mcVersiontoInt): Invalid version string");
+ }
+ }
+ return Integer.parseInt(iVersionArray[0] + iVersionArray[1] + iVersionArray[2]);
+ }
}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/LauncherPreferences.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/LauncherPreferences.java
index 1b06c7542..dc4dd71ad 100644
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/LauncherPreferences.java
+++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/LauncherPreferences.java
@@ -27,7 +27,6 @@ public class LauncherPreferences {
public static final String PREF_KEY_SKIP_NOTIFICATION_CHECK = "skipNotificationPermissionCheck";
public static SharedPreferences DEFAULT_PREF;
- public static String PREF_RENDERER = "opengles2";
public static boolean PREF_IGNORE_NOTCH = false;
public static int PREF_NOTCH_SIZE = 0;
@@ -79,7 +78,6 @@ public class LauncherPreferences {
Tools.initStorageConstants(ctx);
boolean isDevicePowerful = isDevicePowerful(ctx);
- PREF_RENDERER = DEFAULT_PREF.getString("renderer", "opengles2");
PREF_BUTTONSIZE = DEFAULT_PREF.getInt("buttonscale", 100);
PREF_MOUSESCALE = DEFAULT_PREF.getInt("mousescale", 100)/100f;
PREF_MOUSESPEED = ((float)DEFAULT_PREF.getInt("mousespeed",100))/100f;
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/screens/LauncherPreferenceVideoFragment.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/screens/LauncherPreferenceVideoFragment.java
index 14f412e51..c17bfd417 100644
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/screens/LauncherPreferenceVideoFragment.java
+++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/screens/LauncherPreferenceVideoFragment.java
@@ -45,12 +45,6 @@ public class LauncherPreferenceVideoFragment extends LauncherPreferenceFragment
requirePreference("alternate_surface", SwitchPreferenceCompat.class).setChecked(LauncherPreferences.PREF_USE_ALTERNATE_SURFACE);
requirePreference("force_vsync", SwitchPreferenceCompat.class).setChecked(LauncherPreferences.PREF_FORCE_VSYNC);
- ListPreference rendererListPreference = requirePreference("renderer",
- ListPreference.class);
- Tools.RenderersList renderersList = Tools.getCompatibleRenderers(getContext());
- rendererListPreference.setEntries(renderersList.rendererDisplayNames);
- rendererListPreference.setEntryValues(renderersList.rendererIds.toArray(new String[0]));
-
computeVisibility();
}
diff --git a/app_pojavlauncher/src/main/res/values-en-rGB/strings.xml b/app_pojavlauncher/src/main/res/values-en-rGB/strings.xml
index 86db929bb..36dc2d752 100644
--- a/app_pojavlauncher/src/main/res/values-en-rGB/strings.xml
+++ b/app_pojavlauncher/src/main/res/values-en-rGB/strings.xml
@@ -46,7 +46,7 @@
JVM Launch arguments
Be careful, this may make game crash if modified without knowledge.
Renderer
- Holy GL4ES - (all versions, fast)
+ Holy GL4ES - (1.21.4< only, fast)
Zink (Vulkan) - (all versions, mid)
Release
Snapshot
diff --git a/app_pojavlauncher/src/main/res/values/strings.xml b/app_pojavlauncher/src/main/res/values/strings.xml
index 8ff87f43f..5b830b622 100644
--- a/app_pojavlauncher/src/main/res/values/strings.xml
+++ b/app_pojavlauncher/src/main/res/values/strings.xml
@@ -65,7 +65,7 @@
Extra Renderer Settings
Renderer specific settings
Renderer
- Holy GL4ES - (all versions, fast)
+ Holy GL4ES - (1.21.4< only, fast)
Zink (Vulkan) - (all versions, mid)
MobileGlues (OpenGL ES) - (1.17+ only, fast)
LTW (OpenGL ES 3) - 1.17+ only
diff --git a/app_pojavlauncher/src/main/res/xml/pref_video.xml b/app_pojavlauncher/src/main/res/xml/pref_video.xml
index 0d96c6f61..f0dbf92b2 100644
--- a/app_pojavlauncher/src/main/res/xml/pref_video.xml
+++ b/app_pojavlauncher/src/main/res/xml/pref_video.xml
@@ -5,16 +5,10 @@
-
-