diff options
author | isXander <xandersmith2008@gmail.com> | 2023-10-29 14:53:39 +0000 |
---|---|---|
committer | isXander <xandersmith2008@gmail.com> | 2023-10-29 14:53:39 +0000 |
commit | 4598585d0a7fbbddc476873822c5a4d98f4e0fb6 (patch) | |
tree | 77d0797aae439618eafaed9b2a70df81c714ca58 /common/src/main | |
parent | 6db8ee04db2d18a61eb3283eee9fcc8eae1316dd (diff) | |
download | YetAnotherConfigLib-4598585d0a7fbbddc476873822c5a4d98f4e0fb6.tar.gz YetAnotherConfigLib-4598585d0a7fbbddc476873822c5a4d98f4e0fb6.tar.bz2 YetAnotherConfigLib-4598585d0a7fbbddc476873822c5a4d98f4e0fb6.zip |
Experimental image filtering
Diffstat (limited to 'common/src/main')
4 files changed, 42 insertions, 0 deletions
diff --git a/common/src/main/java/dev/isxander/yacl3/debug/DebugProperties.java b/common/src/main/java/dev/isxander/yacl3/debug/DebugProperties.java new file mode 100644 index 0000000..8d93bcd --- /dev/null +++ b/common/src/main/java/dev/isxander/yacl3/debug/DebugProperties.java @@ -0,0 +1,13 @@ +package dev.isxander.yacl3.debug; + +import dev.isxander.yacl3.platform.YACLPlatform; + +public final class DebugProperties { + /** Applies GL filtering to rendering images. */ + public static final boolean IMAGE_FILTERING = boolProp("imageFiltering", false, false); + + private static boolean boolProp(String name, boolean defProd, boolean defDebug) { + boolean defaultValue = YACLPlatform.isDevelopmentEnv() ? defDebug : defProd; + return Boolean.parseBoolean(System.getProperty("yacl3.debug." + name, Boolean.toString(defaultValue))); + } +} diff --git a/common/src/main/java/dev/isxander/yacl3/gui/image/impl/AnimatedDynamicTextureImage.java b/common/src/main/java/dev/isxander/yacl3/gui/image/impl/AnimatedDynamicTextureImage.java index 7a58461..cc5a2c3 100644 --- a/common/src/main/java/dev/isxander/yacl3/gui/image/impl/AnimatedDynamicTextureImage.java +++ b/common/src/main/java/dev/isxander/yacl3/gui/image/impl/AnimatedDynamicTextureImage.java @@ -1,8 +1,11 @@ package dev.isxander.yacl3.gui.image.impl; import com.mojang.blaze3d.Blaze3D; +import com.mojang.blaze3d.platform.GlConst; +import com.mojang.blaze3d.platform.GlStateManager; import com.mojang.blaze3d.platform.NativeImage; import com.twelvemonkeys.imageio.plugins.webp.WebPImageReaderSpi; +import dev.isxander.yacl3.debug.DebugProperties; import dev.isxander.yacl3.gui.image.ImageRendererFactory; import dev.isxander.yacl3.impl.utils.YACLConstants; import net.minecraft.CrashReport; @@ -62,6 +65,12 @@ public class AnimatedDynamicTextureImage extends DynamicTextureImage { graphics.pose().pushPose(); graphics.pose().translate(x, y, 0); graphics.pose().scale(ratio, ratio, 1); + + if (DebugProperties.IMAGE_FILTERING) { + GlStateManager._texParameter(GlConst.GL_TEXTURE_2D, GlConst.GL_TEXTURE_MAG_FILTER, GlConst.GL_LINEAR); + GlStateManager._texParameter(GlConst.GL_TEXTURE_2D, GlConst.GL_TEXTURE_MIN_FILTER, GlConst.GL_LINEAR); + } + graphics.blit( uniqueLocation, 0, 0, diff --git a/common/src/main/java/dev/isxander/yacl3/gui/image/impl/DynamicTextureImage.java b/common/src/main/java/dev/isxander/yacl3/gui/image/impl/DynamicTextureImage.java index e0449e9..86dc833 100644 --- a/common/src/main/java/dev/isxander/yacl3/gui/image/impl/DynamicTextureImage.java +++ b/common/src/main/java/dev/isxander/yacl3/gui/image/impl/DynamicTextureImage.java @@ -1,7 +1,10 @@ package dev.isxander.yacl3.gui.image.impl; +import com.mojang.blaze3d.platform.GlConst; +import com.mojang.blaze3d.platform.GlStateManager; import com.mojang.blaze3d.platform.NativeImage; import com.mojang.blaze3d.systems.RenderSystem; +import dev.isxander.yacl3.debug.DebugProperties; import dev.isxander.yacl3.gui.image.ImageRenderer; import dev.isxander.yacl3.gui.image.ImageRendererFactory; import net.minecraft.client.Minecraft; @@ -42,7 +45,14 @@ public class DynamicTextureImage implements ImageRenderer { graphics.pose().pushPose(); graphics.pose().translate(x, y, 0); graphics.pose().scale(ratio, ratio, 1); + + if (DebugProperties.IMAGE_FILTERING) { + GlStateManager._texParameter(GlConst.GL_TEXTURE_2D, GlConst.GL_TEXTURE_MAG_FILTER, GlConst.GL_LINEAR); + GlStateManager._texParameter(GlConst.GL_TEXTURE_2D, GlConst.GL_TEXTURE_MIN_FILTER, GlConst.GL_LINEAR); + } + graphics.blit(uniqueLocation, 0, 0, 0, 0, this.width, this.height, this.width, this.height); + graphics.pose().popPose(); return targetHeight; diff --git a/common/src/main/java/dev/isxander/yacl3/gui/image/impl/ResourceTextureImage.java b/common/src/main/java/dev/isxander/yacl3/gui/image/impl/ResourceTextureImage.java index 8c2b3b5..6805611 100644 --- a/common/src/main/java/dev/isxander/yacl3/gui/image/impl/ResourceTextureImage.java +++ b/common/src/main/java/dev/isxander/yacl3/gui/image/impl/ResourceTextureImage.java @@ -1,5 +1,8 @@ package dev.isxander.yacl3.gui.image.impl; +import com.mojang.blaze3d.platform.GlConst; +import com.mojang.blaze3d.platform.GlStateManager; +import dev.isxander.yacl3.debug.DebugProperties; import dev.isxander.yacl3.gui.image.ImageRenderer; import dev.isxander.yacl3.gui.image.ImageRendererFactory; import net.minecraft.client.gui.GuiGraphics; @@ -29,7 +32,14 @@ public class ResourceTextureImage implements ImageRenderer { graphics.pose().pushPose(); graphics.pose().translate(x, y, 0); graphics.pose().scale(ratio, ratio, 1); + + if (DebugProperties.IMAGE_FILTERING) { + GlStateManager._texParameter(GlConst.GL_TEXTURE_2D, GlConst.GL_TEXTURE_MAG_FILTER, GlConst.GL_LINEAR); + GlStateManager._texParameter(GlConst.GL_TEXTURE_2D, GlConst.GL_TEXTURE_MIN_FILTER, GlConst.GL_LINEAR); + } + graphics.blit(location, 0, 0, this.u, this.v, this.width, this.height, this.textureWidth, this.textureHeight); + graphics.pose().popPose(); return targetHeight; |