diff --git a/src/main/java/speiger/src/coreengine/NewInputTest.java b/src/main/java/speiger/src/coreengine/NewInputTest.java index 663cd4b..cb1dda9 100644 --- a/src/main/java/speiger/src/coreengine/NewInputTest.java +++ b/src/main/java/speiger/src/coreengine/NewInputTest.java @@ -66,7 +66,7 @@ public class NewInputTest { } private void applyWindowSize(Window window) { - int scale = 0; + int scale = 2; guiShader.get().proView.set(new Matrix4f().ortho(0, 0, window.width() >> scale, window.height() >> scale, 1000, -1000)); } diff --git a/src/main/java/speiger/src/coreengine/rendering/gui/components/base/GuiComponent.java b/src/main/java/speiger/src/coreengine/rendering/gui/components/base/GuiComponent.java index 9fa02e5..a0ae748 100644 --- a/src/main/java/speiger/src/coreengine/rendering/gui/components/base/GuiComponent.java +++ b/src/main/java/speiger/src/coreengine/rendering/gui/components/base/GuiComponent.java @@ -68,8 +68,7 @@ public abstract non-sealed class GuiComponent extends FlagObject implements ICas animator = null; } - public void updateComponent() { - children.forEach(GuiComponent::updateComponent); + protected void updateComponent() { } protected void renderComponent(IUIRenderer renderer, int mouseX, int mouseY, float partialTicks) { @@ -83,6 +82,14 @@ public abstract non-sealed class GuiComponent extends FlagObject implements ICas } } + public static void tickComponent(GuiComponent comp) { + if(comp.renderer != null && comp.renderer.overrideTick()) { + comp.renderer.updateComponent(comp); + } + else comp.updateComponent(); + comp.children.forEach(GuiComponent::tickComponent); + } + public static boolean renderComponent(GuiComponent comp, IUIRenderer renderer, int mouseX, int mouseY, float partialTicks) { if(!comp.isVisible()) return false; comp.updateAnimations(partialTicks); diff --git a/src/main/java/speiger/src/coreengine/rendering/gui/components/base/IComponentRenderer.java b/src/main/java/speiger/src/coreengine/rendering/gui/components/base/IComponentRenderer.java index 8b2757c..fab7f9f 100644 --- a/src/main/java/speiger/src/coreengine/rendering/gui/components/base/IComponentRenderer.java +++ b/src/main/java/speiger/src/coreengine/rendering/gui/components/base/IComponentRenderer.java @@ -4,4 +4,6 @@ import speiger.src.coreengine.rendering.gui.renderer.IUIRenderer; public interface IComponentRenderer { public void renderComponent(T component, IUIRenderer renderer, int mouseX, int mouseY, float particalTicks); + public default boolean overrideTick() { return false; } + public default void updateComponent(T component) {} } diff --git a/src/main/java/speiger/src/coreengine/rendering/gui/screen/GuiContainer.java b/src/main/java/speiger/src/coreengine/rendering/gui/screen/GuiContainer.java index 2bb1d5b..90ec38d 100644 --- a/src/main/java/speiger/src/coreengine/rendering/gui/screen/GuiContainer.java +++ b/src/main/java/speiger/src/coreengine/rendering/gui/screen/GuiContainer.java @@ -83,7 +83,7 @@ public class GuiContainer implements IComponentScreen, IInteractableContainer { public void tick() { for(Object2BooleanMap.Entry entry : container) { - entry.getKey().updateComponent(); + GuiComponent.tickComponent(entry.getKey()); } } diff --git a/src/main/java/speiger/src/coreengine/rendering/utils/GLFunctions.java b/src/main/java/speiger/src/coreengine/rendering/utils/GLFunctions.java index 044a05a..2a0e582 100644 --- a/src/main/java/speiger/src/coreengine/rendering/utils/GLFunctions.java +++ b/src/main/java/speiger/src/coreengine/rendering/utils/GLFunctions.java @@ -50,6 +50,7 @@ public class GLFunctions { GL45.glTextureSubImage2D(texture, mipmaps, 0, 0, width, height, externalFormat, dataFormat, pixels); } + public static void upload2DSubImage(int texture, int level, int xoffset, int yoffset, int width, int height, ITextureFormatType format, IGLDataType type, long pixels) { // if(format.internal()) throw new IllegalArgumentException("Format ["+format.glValue()+"] is internal"); upload2DSubImage(texture, level, xoffset, yoffset, width, height, format.glValue(), type.glValue(), pixels); diff --git a/src/main/resources/assets/base/font/rainyhearts/font.json b/src/main/resources/assets/base/font/rainyhearts/font.json new file mode 100644 index 0000000..30f54f7 --- /dev/null +++ b/src/main/resources/assets/base/font/rainyhearts/font.json @@ -0,0 +1,10 @@ +{ + "type": "free-ttf", + "regular": { + "file": "font/rainyhearts/rainyhearts.ttf", + "oversample": 2, + "shadowOffset": 1, + "skip": "", + "offset": { "x": 0, "y": 0 } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/base/font/roboto/rainyhearts.ttf b/src/main/resources/assets/base/font/rainyhearts/rainyhearts.ttf similarity index 100% rename from src/main/resources/assets/base/font/roboto/rainyhearts.ttf rename to src/main/resources/assets/base/font/rainyhearts/rainyhearts.ttf diff --git a/src/main/resources/assets/base/font/roboto/Roboto-ExtraLight.ttf b/src/main/resources/assets/base/font/roboto/Roboto-ExtraLight.ttf new file mode 100644 index 0000000..75608c6 Binary files /dev/null and b/src/main/resources/assets/base/font/roboto/Roboto-ExtraLight.ttf differ diff --git a/src/main/resources/assets/base/font/roboto/Roboto-Light.ttf b/src/main/resources/assets/base/font/roboto/Roboto-Light.ttf new file mode 100644 index 0000000..6fcd5f9 Binary files /dev/null and b/src/main/resources/assets/base/font/roboto/Roboto-Light.ttf differ diff --git a/src/main/resources/assets/base/font/roboto/Roboto-Regular.ttf b/src/main/resources/assets/base/font/roboto/Roboto-Regular.ttf new file mode 100644 index 0000000..7e3bb2f Binary files /dev/null and b/src/main/resources/assets/base/font/roboto/Roboto-Regular.ttf differ diff --git a/src/main/resources/assets/base/font/roboto/font.json b/src/main/resources/assets/base/font/roboto/font.json index 6068d7a..f971d95 100644 --- a/src/main/resources/assets/base/font/roboto/font.json +++ b/src/main/resources/assets/base/font/roboto/font.json @@ -1,7 +1,7 @@ { "type": "free-ttf", "regular": { - "file": "font/roboto/rainyhearts.ttf", + "file": "font/roboto/Roboto-Light.ttf", "oversample": 2, "shadowOffset": 1, "skip": "", diff --git a/src/main/resources/assets/base/shader/testGui/fragment.fs b/src/main/resources/assets/base/shader/testGui/fragment.fs index 8428af0..b81d989 100644 --- a/src/main/resources/assets/base/shader/testGui/fragment.fs +++ b/src/main/resources/assets/base/shader/testGui/fragment.fs @@ -9,7 +9,5 @@ uniform sampler2D texture; void main() { - vec4 color = pass_color * texture2D(texture, pass_tex); - if(color.a < 0.25) discard; - frag_color = color; + frag_color = pass_color * texture2D(texture, pass_tex); } \ No newline at end of file