diff --git a/app_pojavlauncher/src/main/java/com/kdt/LoggerView.java b/app_pojavlauncher/src/main/java/com/kdt/LoggerView.java index eaa6c0a25..7df8a4ad0 100644 --- a/app_pojavlauncher/src/main/java/com/kdt/LoggerView.java +++ b/app_pojavlauncher/src/main/java/com/kdt/LoggerView.java @@ -68,7 +68,7 @@ public class LoggerView extends ConstraintLayout { logListener = text -> { if(log.getVisibility() != VISIBLE) return; post(() -> { - log.append(text); + log.append(text + '\n'); scrollView.fullScroll(View.FOCUS_DOWN); }); diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/MinecraftGLView.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/MinecraftGLView.java index 6ed1b759a..a45d6b135 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/MinecraftGLView.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/MinecraftGLView.java @@ -98,8 +98,10 @@ public class MinecraftGLView extends TextureView { return; } if(msg.what == MSG_DROP_ITEM_BUTTON_CHECK) { - sendKeyPress(LWJGLGLFWKeycode.GLFW_KEY_Q); - theHandler.sendEmptyMessageDelayed(MSG_DROP_ITEM_BUTTON_CHECK, 600); + if(CallbackBridge.isGrabbing()){ + sendKeyPress(LWJGLGLFWKeycode.GLFW_KEY_Q); + theHandler.sendEmptyMessageDelayed(MSG_DROP_ITEM_BUTTON_CHECK, 600); + } return; } @@ -338,11 +340,13 @@ public class MinecraftGLView extends TextureView { break; case MotionEvent.ACTION_POINTER_DOWN: // 5 + //TODO Hey we could have some sort of middle click detection ? + scrollLastInitialX = e.getX(); scrollLastInitialY = e.getY(); //Checking if we are pressing the hotbar to select the item hudKeyHandled = handleGuiBar((int)e.getX(e.getPointerCount()-1), (int) e.getY(e.getPointerCount()-1)); - if(hudKeyHandled == -1){ + if(hudKeyHandled != -1){ sendKeyPress(hudKeyHandled); if(hasDoubleTapped && hudKeyHandled == lastHotbarKey){ //Prevent double tapping Event on two different slots @@ -575,7 +579,7 @@ public class MinecraftGLView extends TextureView { int barX = (CallbackBridge.physicalWidth / 2) - (barWidth / 2); if(x < barX || x >= barX + barWidth) return -1; - return hotbarKeys[((x - barX) / barWidth / 9) % 9]; + return hotbarKeys[(int) net.kdt.pojavlaunch.utils.MathUtils.map(x, barX, barX + barWidth, 0, 9)]; } /** Return the size, given the UI scale size */ diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/extra/ExtraCore.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/extra/ExtraCore.java index a2f45fb6e..e267da844 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/extra/ExtraCore.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/extra/ExtraCore.java @@ -16,20 +16,25 @@ public final class ExtraCore { // No unwanted instantiation private ExtraCore(){} + // Singleton instance + private static ExtraCore extraCoreSingleton = null; + // Store the key-value pair private final Map valueMap = new ConcurrentHashMap<>(); // Store what each ExtraListener listen to private final Map>> listenerMap = new ConcurrentHashMap<>(); - // Inner class for singleton implementation - private static class ExtraCoreSingleton { - private static final ExtraCore extraCore = new ExtraCore(); - } - // All public methods will pass through this one private static ExtraCore getInstance(){ - return ExtraCoreSingleton.extraCore; + if(extraCoreSingleton == null){ + synchronized(ExtraCore.class){ + if(extraCoreSingleton == null){ + extraCoreSingleton = new ExtraCore(); + } + } + } + return extraCoreSingleton; } /** 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 acb13ad1d..e0f5fc330 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 @@ -36,6 +36,7 @@ public class LauncherPreferences public static boolean PREF_SUSTAINED_PERFORMANCE = false; public static boolean PREF_ENABLE_PROFILES = true; public static String PREF_GLES_SHRINK_HACK = "0"; + public static boolean PREF_VBO_DISABLE_HACK = false; public static void loadPreferences(Context ctx) { @@ -66,6 +67,7 @@ public class LauncherPreferences PREF_CONTROL_LEFT_OFFSET = DEFAULT_PREF.getInt("controlLeftOffset", 0); PREF_SUSTAINED_PERFORMANCE = DEFAULT_PREF.getBoolean("sustainedPerformance", false); PREF_GLES_SHRINK_HACK = DEFAULT_PREF.getString("gl4es_shrink_hack", "0"); + PREF_VBO_DISABLE_HACK = DEFAULT_PREF.getBoolean("vbo_disable_hack", false); /* if (PREF_CUSTOM_JAVA_ARGS.isEmpty()) { diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/utils/JREUtils.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/utils/JREUtils.java index 3e576b7be..471cfaff3 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/utils/JREUtils.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/utils/JREUtils.java @@ -5,6 +5,7 @@ import static net.kdt.pojavlaunch.Architecture.archAsString; import static net.kdt.pojavlaunch.Architecture.is64BitsDevice; import static net.kdt.pojavlaunch.Tools.LOCAL_RENDERER; import static net.kdt.pojavlaunch.prefs.LauncherPreferences.PREF_GLES_SHRINK_HACK; +import static net.kdt.pojavlaunch.prefs.LauncherPreferences.PREF_VBO_DISABLE_HACK; import android.app.*; import android.content.*; @@ -211,14 +212,17 @@ public class JREUtils { // The shrink hack can be enabled from the experimental settings envMap.put("LIBGL_SHRINK", PREF_GLES_SHRINK_HACK); + + // VBO disable hack + if(PREF_VBO_DISABLE_HACK) envMap.put("LIBGL_USEVBO","0"); // Fix white color on banner and sheep, since GL4ES 1.1.5 envMap.put("LIBGL_NORMALIZE", "1"); envMap.put("MESA_GLSL_CACHE_DIR", activity.getCacheDir().getAbsolutePath()); if (LOCAL_RENDERER != null) { - envMap.put("MESA_GL_VERSION_OVERRIDE", LOCAL_RENDERER.equals("opengles3_virgl")?"4.5":"4.6"); - envMap.put("MESA_GLSL_VERSION_OVERRIDE", LOCAL_RENDERER.equals("opengles3_virgl")?"450":"460"); + envMap.put("MESA_GL_VERSION_OVERRIDE", LOCAL_RENDERER.equals("opengles3_virgl")?"4.3":"4.6"); + envMap.put("MESA_GLSL_VERSION_OVERRIDE", LOCAL_RENDERER.equals("opengles3_virgl")?"430":"460"); } envMap.put("force_glsl_extensions_warn", "true"); envMap.put("allow_higher_compat_version", "true"); diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/utils/MCOptionUtils.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/utils/MCOptionUtils.java index f149767e0..579cbbf43 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/utils/MCOptionUtils.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/utils/MCOptionUtils.java @@ -2,17 +2,21 @@ package net.kdt.pojavlaunch.utils; import static org.lwjgl.glfw.CallbackBridge.windowHeight; import static org.lwjgl.glfw.CallbackBridge.windowWidth; -import java.io.*; -import java.lang.ref.WeakReference; -import java.util.*; - import android.os.Build; import android.os.FileObserver; -import android.util.*; +import android.util.Log; import androidx.annotation.Nullable; -import net.kdt.pojavlaunch.*; +import net.kdt.pojavlaunch.Tools; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.io.IOException; +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.HashMap; public class MCOptionUtils { @@ -103,6 +107,8 @@ public class MCOptionUtils } }; } + + fileObserver.startWatching(); } public static void notifyListeners(){ diff --git a/app_pojavlauncher/src/main/jniLibs/arm64-v8a/libgl4es_115.so b/app_pojavlauncher/src/main/jniLibs/arm64-v8a/libgl4es_115.so index ebe015f12..2effac85d 100644 Binary files a/app_pojavlauncher/src/main/jniLibs/arm64-v8a/libgl4es_115.so and b/app_pojavlauncher/src/main/jniLibs/arm64-v8a/libgl4es_115.so differ diff --git a/app_pojavlauncher/src/main/jniLibs/armeabi-v7a/libgl4es_115.so b/app_pojavlauncher/src/main/jniLibs/armeabi-v7a/libgl4es_115.so index a3cd05a3c..f3360bdc8 100644 Binary files a/app_pojavlauncher/src/main/jniLibs/armeabi-v7a/libgl4es_115.so and b/app_pojavlauncher/src/main/jniLibs/armeabi-v7a/libgl4es_115.so differ diff --git a/app_pojavlauncher/src/main/jniLibs/x86/libgl4es_115.so b/app_pojavlauncher/src/main/jniLibs/x86/libgl4es_115.so index 9759dc69a..2eaaa89f6 100644 Binary files a/app_pojavlauncher/src/main/jniLibs/x86/libgl4es_115.so and b/app_pojavlauncher/src/main/jniLibs/x86/libgl4es_115.so differ diff --git a/app_pojavlauncher/src/main/jniLibs/x86_64/libgl4es_115.so b/app_pojavlauncher/src/main/jniLibs/x86_64/libgl4es_115.so index d637c01df..11b547df4 100644 Binary files a/app_pojavlauncher/src/main/jniLibs/x86_64/libgl4es_115.so and b/app_pojavlauncher/src/main/jniLibs/x86_64/libgl4es_115.so differ diff --git a/app_pojavlauncher/src/main/res/values/strings.xml b/app_pojavlauncher/src/main/res/values/strings.xml index c496b71a4..89c792766 100644 --- a/app_pojavlauncher/src/main/res/values/strings.xml +++ b/app_pojavlauncher/src/main/res/values/strings.xml @@ -102,7 +102,7 @@ gl4es 1.1.4 (OpenGL ES 2): exports OpenGL 2.1 gl4es 1.1.5 (OpenGL ES 2): exports OpenGL 2.1 gl4es 1.1.5 (OpenGL ES 3): exports OpenGL 2.1 + partial 3.2 - virglrenderer (OpenGL ES 3): exports OpenGL 4.5 + virglrenderer (OpenGL ES 3): exports OpenGL 4.3 vgpu (OpenGL ES 3): exports OpenGL 3.0 zink (Vulkan): exports OpenGL 4.6 Version type will be in version list @@ -279,6 +279,7 @@ Limit thermal throttling by limiting peak performance Back to the last screen + GL4ES Shrink hack Don\'t shrink textures Divides all textures by 2 Divides big textures by /2 or /4 @@ -288,4 +289,6 @@ Editing profile Name Version + Disable VBOs + Help with compatibility on some old versions diff --git a/app_pojavlauncher/src/main/res/xml/pref_experimental.xml b/app_pojavlauncher/src/main/res/xml/pref_experimental.xml index 28d389a24..f491e3cc6 100644 --- a/app_pojavlauncher/src/main/res/xml/pref_experimental.xml +++ b/app_pojavlauncher/src/main/res/xml/pref_experimental.xml @@ -5,12 +5,19 @@ + + \ No newline at end of file