From ba87b8b1fa4e2397a3e0ed5a18f7ea6137d42f77 Mon Sep 17 00:00:00 2001 From: Wyvest <45589059+Wyvest@users.noreply.github.com> Date: Sat, 21 May 2022 17:50:43 +0700 Subject: vigilance compat (#15) * vigilance compat reorganize ASM * remove non-RenderManager nanovg usage wherever possible fix build generalize utils * setupGradle task * migrate to kotlin gradle use essential gradle toolkit shade new gson * Small changes * Update .gitignore * fix natives * Fix all problems * null Co-authored-by: DeDiamondPro <67508414+DeDiamondPro@users.noreply.github.com> --- .../cc/polyfrost/oneconfig/lwjgl/BlurHandler.java | 4 +- .../cc/polyfrost/oneconfig/lwjgl/OneColor.java | 2 +- .../polyfrost/oneconfig/lwjgl/RenderManager.java | 14 ++++-- .../cc/polyfrost/oneconfig/lwjgl/font/Font.java | 2 - .../oneconfig/lwjgl/image/ImageLoader.java | 16 +++---- .../oneconfig/lwjgl/plugin/ClassTransformer.java | 56 ---------------------- .../oneconfig/lwjgl/plugin/LoadingPlugin.java | 54 --------------------- .../oneconfig/lwjgl/scissor/ScissorManager.java | 1 - 8 files changed, 22 insertions(+), 127 deletions(-) delete mode 100644 src/main/java/cc/polyfrost/oneconfig/lwjgl/plugin/ClassTransformer.java delete mode 100644 src/main/java/cc/polyfrost/oneconfig/lwjgl/plugin/LoadingPlugin.java (limited to 'src/main/java/cc/polyfrost/oneconfig/lwjgl') diff --git a/src/main/java/cc/polyfrost/oneconfig/lwjgl/BlurHandler.java b/src/main/java/cc/polyfrost/oneconfig/lwjgl/BlurHandler.java index 973677e..090121b 100644 --- a/src/main/java/cc/polyfrost/oneconfig/lwjgl/BlurHandler.java +++ b/src/main/java/cc/polyfrost/oneconfig/lwjgl/BlurHandler.java @@ -1,9 +1,9 @@ package cc.polyfrost.oneconfig.lwjgl; import cc.polyfrost.oneconfig.gui.OneConfigGui; +import cc.polyfrost.oneconfig.libs.universal.UMinecraft; +import cc.polyfrost.oneconfig.libs.universal.UScreen; import cc.polyfrost.oneconfig.mixin.ShaderGroupAccessor; -import gg.essential.universal.UMinecraft; -import gg.essential.universal.UScreen; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.shader.Shader; diff --git a/src/main/java/cc/polyfrost/oneconfig/lwjgl/OneColor.java b/src/main/java/cc/polyfrost/oneconfig/lwjgl/OneColor.java index d598e07..9c62d1a 100644 --- a/src/main/java/cc/polyfrost/oneconfig/lwjgl/OneColor.java +++ b/src/main/java/cc/polyfrost/oneconfig/lwjgl/OneColor.java @@ -15,7 +15,7 @@ import java.awt.*; * */ @SuppressWarnings("unused") -public class OneColor { +public final class OneColor { transient private Integer rgba = null; private short[] hsba; private int chroma = -1; diff --git a/src/main/java/cc/polyfrost/oneconfig/lwjgl/RenderManager.java b/src/main/java/cc/polyfrost/oneconfig/lwjgl/RenderManager.java index 9d6763f..c1df2fe 100644 --- a/src/main/java/cc/polyfrost/oneconfig/lwjgl/RenderManager.java +++ b/src/main/java/cc/polyfrost/oneconfig/lwjgl/RenderManager.java @@ -8,9 +8,9 @@ import cc.polyfrost.oneconfig.lwjgl.font.Fonts; import cc.polyfrost.oneconfig.lwjgl.image.ImageLoader; import cc.polyfrost.oneconfig.lwjgl.image.Images; import cc.polyfrost.oneconfig.lwjgl.image.SVGs; -import gg.essential.universal.UGraphics; -import gg.essential.universal.UMinecraft; -import gg.essential.universal.UResolution; +import cc.polyfrost.oneconfig.libs.universal.UGraphics; +import cc.polyfrost.oneconfig.libs.universal.UMinecraft; +import cc.polyfrost.oneconfig.libs.universal.UResolution; import net.minecraft.client.gui.Gui; import net.minecraft.client.shader.Framebuffer; import org.lwjgl.nanovg.*; @@ -298,6 +298,14 @@ public final class RenderManager { return nvgColor; } + public static void scale(long vg, float x, float y) { + nvgScale(vg, x, y); + } + + public static void withAlpha(long vg, float alpha) { + nvgGlobalAlpha(vg, alpha); + } + public static void drawSvg(long vg, String filePath, float x, float y, float width, float height) { float w = width; float h = height; diff --git a/src/main/java/cc/polyfrost/oneconfig/lwjgl/font/Font.java b/src/main/java/cc/polyfrost/oneconfig/lwjgl/font/Font.java index a369f26..8267ba7 100644 --- a/src/main/java/cc/polyfrost/oneconfig/lwjgl/font/Font.java +++ b/src/main/java/cc/polyfrost/oneconfig/lwjgl/font/Font.java @@ -1,7 +1,5 @@ package cc.polyfrost.oneconfig.lwjgl.font; -import org.lwjgl.nanovg.NanoVG; - import java.nio.ByteBuffer; public class Font { diff --git a/src/main/java/cc/polyfrost/oneconfig/lwjgl/image/ImageLoader.java b/src/main/java/cc/polyfrost/oneconfig/lwjgl/image/ImageLoader.java index 128ae48..fb436dd 100644 --- a/src/main/java/cc/polyfrost/oneconfig/lwjgl/image/ImageLoader.java +++ b/src/main/java/cc/polyfrost/oneconfig/lwjgl/image/ImageLoader.java @@ -15,7 +15,7 @@ import java.util.HashMap; public class ImageLoader { private final HashMap imageHashMap = new HashMap<>(); - private final HashMap SVGHashMap = new HashMap<>(); + private final HashMap svgHashMap = new HashMap<>(); public static ImageLoader INSTANCE = new ImageLoader(); public boolean loadImage(long vg, String fileName) { @@ -42,7 +42,7 @@ public class ImageLoader { public boolean loadSVG(long vg, String fileName, float SVGWidth, float SVGHeight) { String name = fileName + "-" + SVGWidth + "-" + SVGHeight; - if (!SVGHashMap.containsKey(name)) { + if (!svgHashMap.containsKey(name)) { try { InputStream inputStream = this.getClass().getResourceAsStream(fileName); if (inputStream == null) return false; @@ -70,7 +70,7 @@ public class ImageLoader { NanoSVG.nsvgDeleteRasterizer(rasterizer); NanoSVG.nsvgDelete(svg); - SVGHashMap.put(name, NanoVG.nvgCreateImageRGBA(vg, w, h, NanoVG.NVG_IMAGE_REPEATX | NanoVG.NVG_IMAGE_REPEATY | NanoVG.NVG_IMAGE_GENERATE_MIPMAPS, image)); + svgHashMap.put(name, NanoVG.nvgCreateImageRGBA(vg, w, h, NanoVG.NVG_IMAGE_REPEATX | NanoVG.NVG_IMAGE_REPEATY | NanoVG.NVG_IMAGE_GENERATE_MIPMAPS, image)); return true; } catch (Exception e) { System.err.println("Failed to parse SVG file"); @@ -100,20 +100,20 @@ public class ImageLoader { public int getSVG( String fileName, float width, float height) { String name = fileName + "-" + width + "-" + height; - return SVGHashMap.get(name); + return svgHashMap.get(name); } public void removeSVG(long vg, String fileName, float width, float height) { String name = fileName + "-" + width + "-" + height; NanoVG.nvgDeleteImage(vg, imageHashMap.get(name)); - SVGHashMap.remove(name); + svgHashMap.remove(name); } public void clearSVGs(long vg) { - HashMap temp = new HashMap<>(SVGHashMap); + HashMap temp = new HashMap<>(svgHashMap); for (String image : temp.keySet()) { - NanoVG.nvgDeleteImage(vg, SVGHashMap.get(image)); - SVGHashMap.remove(image); + NanoVG.nvgDeleteImage(vg, svgHashMap.get(image)); + svgHashMap.remove(image); } } } diff --git a/src/main/java/cc/polyfrost/oneconfig/lwjgl/plugin/ClassTransformer.java b/src/main/java/cc/polyfrost/oneconfig/lwjgl/plugin/ClassTransformer.java deleted file mode 100644 index 8e388dc..0000000 --- a/src/main/java/cc/polyfrost/oneconfig/lwjgl/plugin/ClassTransformer.java +++ /dev/null @@ -1,56 +0,0 @@ -package cc.polyfrost.oneconfig.lwjgl.plugin; - -import net.minecraft.launchwrapper.IClassTransformer; -import org.objectweb.asm.ClassReader; -import org.objectweb.asm.ClassWriter; -import org.objectweb.asm.Opcodes; -import org.objectweb.asm.tree.*; - -/** - * Taken from LWJGLTwoPointFive under The Unlicense - * https://github.com/DJtheRedstoner/LWJGLTwoPointFive/blob/master/LICENSE/ - */ -@SuppressWarnings("unused") -public class ClassTransformer implements IClassTransformer { - @Override - public byte[] transform(String name, String transformedName, byte[] basicClass) { - if (name.equals("org.lwjgl.nanovg.NanoVGGLConfig")) { - ClassReader reader = new ClassReader(basicClass); - ClassNode node = new ClassNode(); - reader.accept(node, ClassReader.EXPAND_FRAMES); - - for (MethodNode method : node.methods) { - if (method.name.equals("configGL")) { - InsnList list = new InsnList(); - - list.add(new VarInsnNode(Opcodes.LLOAD, 0)); - list.add(new TypeInsnNode(Opcodes.NEW, "cc/polyfrost/oneconfig/lwjgl/plugin/Lwjgl2FunctionProvider")); - list.add(new InsnNode(Opcodes.DUP)); - list.add(new MethodInsnNode( - Opcodes.INVOKESPECIAL, - "cc/polyfrost/oneconfig/lwjgl/plugin/Lwjgl2FunctionProvider", - "", - "()V", - false - )); - list.add(new MethodInsnNode( - Opcodes.INVOKESTATIC, - "org/lwjgl/nanovg/NanoVGGLConfig", - "config", - "(JLorg/lwjgl/system/FunctionProvider;)V", - false - )); - list.add(new InsnNode(Opcodes.RETURN)); - - method.instructions.clear(); - method.instructions.insert(list); - } - } - - ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_FRAMES); - node.accept(cw); - return cw.toByteArray(); - } - return basicClass; - } -} \ No newline at end of file diff --git a/src/main/java/cc/polyfrost/oneconfig/lwjgl/plugin/LoadingPlugin.java b/src/main/java/cc/polyfrost/oneconfig/lwjgl/plugin/LoadingPlugin.java deleted file mode 100644 index 6cd8911..0000000 --- a/src/main/java/cc/polyfrost/oneconfig/lwjgl/plugin/LoadingPlugin.java +++ /dev/null @@ -1,54 +0,0 @@ -package cc.polyfrost.oneconfig.lwjgl.plugin; - -import cc.polyfrost.oneconfig.init.OneConfigInit; -import net.minecraft.launchwrapper.Launch; -import net.minecraft.launchwrapper.LaunchClassLoader; -import net.minecraftforge.fml.relauncher.IFMLLoadingPlugin; - -import java.lang.reflect.Field; -import java.util.Map; -import java.util.Set; - -/** - * Taken from LWJGLTwoPointFive under The Unlicense - * https://github.com/DJtheRedstoner/LWJGLTwoPointFive/blob/master/LICENSE/ - */ -public class LoadingPlugin implements IFMLLoadingPlugin { - - public LoadingPlugin() { - try { - Field f_exceptions = LaunchClassLoader.class.getDeclaredField("classLoaderExceptions"); - f_exceptions.setAccessible(true); - Set exceptions = (Set) f_exceptions.get(Launch.classLoader); - exceptions.remove("org.lwjgl."); - OneConfigInit.initialize(new String[]{}); - } catch (Exception e) { - throw new RuntimeException("e"); - } - } - - @Override - public String[] getASMTransformerClass() { - return new String[]{"cc.polyfrost.oneconfig.lwjgl.plugin.ClassTransformer"}; - } - - @Override - public String getModContainerClass() { - return null; - } - - @Override - public String getSetupClass() { - return null; - } - - @Override - public void injectData(Map data) { - - } - - @Override - public String getAccessTransformerClass() { - return null; - } -} \ No newline at end of file diff --git a/src/main/java/cc/polyfrost/oneconfig/lwjgl/scissor/ScissorManager.java b/src/main/java/cc/polyfrost/oneconfig/lwjgl/scissor/ScissorManager.java index a3f3780..0f821c9 100644 --- a/src/main/java/cc/polyfrost/oneconfig/lwjgl/scissor/ScissorManager.java +++ b/src/main/java/cc/polyfrost/oneconfig/lwjgl/scissor/ScissorManager.java @@ -1,6 +1,5 @@ package cc.polyfrost.oneconfig.lwjgl.scissor; -import cc.polyfrost.oneconfig.lwjgl.scissor.Scissor; import org.lwjgl.nanovg.NanoVG; import java.util.ArrayList; -- cgit