From 885cfbf3bcfe550c4b15cbbd94399a18ce1ecd05 Mon Sep 17 00:00:00 2001 From: ChaoticByte Date: Mon, 6 Jan 2025 22:22:42 +0100 Subject: [PATCH] Pass a String to the shader directive parser functions instead of Shader --- src/Compositor.gd | 6 +++--- src/ShaderDirectiveParser.gd | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/Compositor.gd b/src/Compositor.gd index c7b584a..41846f1 100644 --- a/src/Compositor.gd +++ b/src/Compositor.gd @@ -34,13 +34,13 @@ func inject_step_uniform(shader_code: String) -> Shader: func update() -> Array: # returns error messages (strings) # inject STEP uniform & get number of steps var shader: Shader = inject_step_uniform(Filesystem.shader_code) - var step: int = ShaderDirectiveParser.parse_steps_directive(shader) + var step: int = ShaderDirectiveParser.parse_steps_directive(shader.code) # validate shader if not validate_shader_compilation(shader): return ["Shader compilation failed!"] var errors = [] # load texture(s) from //!load directive -> TEXTURE - var m = ShaderDirectiveParser.parse_load_directive(shader) + var m = ShaderDirectiveParser.parse_load_directive(shader.code) if len(m) < 1: errors.append("Didn't find a load directive!") return errors @@ -55,7 +55,7 @@ func update() -> Array: # returns error messages (strings) return errors # ... from //!load+ directives Filesystem.clear_additional_images() - for n in ShaderDirectiveParser.parse_load_additional_directive(shader): + for n in ShaderDirectiveParser.parse_load_additional_directive(shader.code): err = Filesystem.load_additional_image(n[1], Filesystem.get_absolute_path(n[2])) if err != "": errors.append(err) diff --git a/src/ShaderDirectiveParser.gd b/src/ShaderDirectiveParser.gd index f25af1c..c06dc70 100644 --- a/src/ShaderDirectiveParser.gd +++ b/src/ShaderDirectiveParser.gd @@ -4,20 +4,20 @@ var _load_regex: RegEx = RegEx.create_from_string(r'\/\/!load\s(.*)') var _load_additional_regex: RegEx = RegEx.create_from_string(r'\/\/!load\+\s(\w*)\s(.*)') var _iterate_regex: RegEx = RegEx.create_from_string(r'\/\/!steps\s([0-9]+)\s*') -func parse_load_directive(shader: Shader) -> PackedStringArray: - var regex_match = self._load_regex.search(shader.code) +func parse_load_directive(shader_code: String) -> PackedStringArray: + var regex_match = self._load_regex.search(shader_code) if regex_match == null: return [] return regex_match.strings -func parse_load_additional_directive(shader: Shader) -> Array[PackedStringArray]: +func parse_load_additional_directive(shader_code: String) -> Array[PackedStringArray]: var results : Array[PackedStringArray] = [] - for m in self._load_additional_regex.search_all(shader.code): + for m in self._load_additional_regex.search_all(shader_code): results.append(m.strings) return results -func parse_steps_directive(shader: Shader) -> int: - var regex_match = self._iterate_regex.search(shader.code) +func parse_steps_directive(shader_code: String) -> int: + var regex_match = self._iterate_regex.search(shader_code) if regex_match == null: return 1 else: