From 53f857771ef450e4a2990675a81a6ca7b8e9b2e8 Mon Sep 17 00:00:00 2001 From: mcrcortex <18544518+MCRcortex@users.noreply.github.com> Date: Sun, 7 Dec 2025 08:47:21 +1000 Subject: [PATCH] replacements --- .../cortex/voxy/client/core/gl/shader/Shader.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/main/java/me/cortex/voxy/client/core/gl/shader/Shader.java b/src/main/java/me/cortex/voxy/client/core/gl/shader/Shader.java index a9f1e26e..ee9cd5b5 100644 --- a/src/main/java/me/cortex/voxy/client/core/gl/shader/Shader.java +++ b/src/main/java/me/cortex/voxy/client/core/gl/shader/Shader.java @@ -69,6 +69,7 @@ public class Shader extends TrackedObject { J make(Builder builder, int program); } final Map defines = new HashMap<>(); + final Map replacements = new LinkedHashMap<>(); private final Map sources = new HashMap<>(); private final IShaderProcessor processor; private final IShaderObjectConstructor constructor; @@ -109,11 +110,21 @@ public class Shader extends TrackedObject { return this; } + public Builder define(String name, float value) { + this.defines.put(name, Float.toString(value)+"f"); + return this; + } + public Builder define(String name, String value) { this.defines.put(name, value); return this; } + public Builder replace(String value, String replacement) { + this.defines.put(value, replacement); + return this; + } + public Builder add(ShaderType type, String id) { this.addSource(type, ShaderLoader.parse(id)); return this; @@ -139,6 +150,10 @@ public class Shader extends TrackedObject { defs + src.substring(src.indexOf('\n')+1); + for (var replacement : this.replacements.entrySet()) { + src = src.replaceAll(replacement.getKey(), replacement.getValue()); + } + shaders[i++] = createShader(entry.getKey(), src); } }