aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/cc/polyfrost/oneconfig/platform
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/cc/polyfrost/oneconfig/platform')
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/platform/NanoVGPlatform.java42
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/platform/Platform.java13
2 files changed, 55 insertions, 0 deletions
diff --git a/src/main/java/cc/polyfrost/oneconfig/platform/NanoVGPlatform.java b/src/main/java/cc/polyfrost/oneconfig/platform/NanoVGPlatform.java
new file mode 100644
index 0000000..af269ce
--- /dev/null
+++ b/src/main/java/cc/polyfrost/oneconfig/platform/NanoVGPlatform.java
@@ -0,0 +1,42 @@
+package cc.polyfrost.oneconfig.platform;
+
+import org.jetbrains.annotations.Nullable;
+import org.lwjgl.nanovg.NVGLUFramebuffer;
+
+public interface NanoVGPlatform {
+ int NVG_ANTIALIAS = 1;
+ int NVG_STENCIL_STROKES = 2;
+ int NVG_DEBUG = 4;
+ int NVG_IMAGE_NODELETE = 65536;
+
+ int nnvglCreateImageFromHandle(long var0, int var2, int var3, int var4, int var5);
+
+ int nvglCreateImageFromHandle(long ctx, int textureId, int w, int h, int flags);
+
+ int nnvglImageHandle(long var0, int var2);
+
+ int nvglImageHandle(long ctx, int image);
+
+ long nnvgCreate(int var0);
+
+ long nvgCreate(int flags);
+
+ void nnvgDelete(long var0);
+
+ void nvgDelete(long ctx);
+
+ long nnvgluCreateFramebuffer(long var0, int var2, int var3, int var4);
+
+ @Nullable
+ NVGLUFramebuffer nvgluCreateFramebuffer(long ctx, int w, int h, int imageFlags);
+
+ void nnvgluBindFramebuffer(long var0, long var2);
+
+ void nvgluBindFramebuffer(long ctx, @Nullable NVGLUFramebuffer fb);
+
+ void nnvgluDeleteFramebuffer(long var0, long var2);
+
+ void nvgluDeleteFramebuffer(long ctx, NVGLUFramebuffer fb);
+
+ void triggerStaticInitialization();
+}
diff --git a/src/main/java/cc/polyfrost/oneconfig/platform/Platform.java b/src/main/java/cc/polyfrost/oneconfig/platform/Platform.java
index 62e9e2a..0fc2626 100644
--- a/src/main/java/cc/polyfrost/oneconfig/platform/Platform.java
+++ b/src/main/java/cc/polyfrost/oneconfig/platform/Platform.java
@@ -37,10 +37,16 @@ public interface Platform {
return PlatformHolder.INSTANCE.i18nPlatform;
}
+ static NanoVGPlatform getNanoVGPlatform() {
+ return PlatformHolder.INSTANCE.nvgPlatform;
+ }
+
boolean isCallingFromMinecraftThread();
int getMinecraftVersion();
+ Loader getLoader();
+
class PlatformHolder {
private PlatformHolder() {
@@ -53,5 +59,12 @@ public interface Platform {
GLPlatform glPlatform = ServiceLoader.load(GLPlatform.class, GLPlatform.class.getClassLoader()).iterator().next();
GuiPlatform guiPlatform = ServiceLoader.load(GuiPlatform.class, GuiPlatform.class.getClassLoader()).iterator().next();
I18nPlatform i18nPlatform = ServiceLoader.load(I18nPlatform.class, I18nPlatform.class.getClassLoader()).iterator().next();
+
+ NanoVGPlatform nvgPlatform = ServiceLoader.load(NanoVGPlatform.class, NanoVGPlatform.class.getClassLoader()).iterator().next();
+ }
+
+ enum Loader {
+ FORGE,
+ FABRIC
}
}