From 97db0270fec0f6dcae75d20af42326dedd35257f Mon Sep 17 00:00:00 2001 From: Rodz Labs Date: Mon, 21 Nov 2022 16:58:49 +0100 Subject: [PATCH] Added shrink parameter to the Iterate buffer --- addons/material_maker/engine/gen_iterate_buffer.gd | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/addons/material_maker/engine/gen_iterate_buffer.gd b/addons/material_maker/engine/gen_iterate_buffer.gd index f7e1be5b..abff770d 100644 --- a/addons/material_maker/engine/gen_iterate_buffer.gd +++ b/addons/material_maker/engine/gen_iterate_buffer.gd @@ -65,6 +65,7 @@ func get_buffers(flags : int = BUFFERS_ALL) -> Array: func get_parameter_defs() -> Array: return [ { name="size", type="size", first=4, last=13, default=4 }, + { name="shrink", type="boolean", default=false }, { name="autostop", type="boolean", default=false }, { name="iterations", type="float", min=1, max=50, step=1, default=5 }, { name="filter", type="boolean", default=true }, @@ -171,11 +172,16 @@ func on_dep_update_buffer(buffer_name : String) -> bool: mm_deps.dependency_update(buffer_name, texture, true) return false var time = OS.get_ticks_msec() - current_renderer = current_renderer.render_material(self, m, pow(2, get_parameter("size"))) + var size = pow(2, get_parameter("size")) + if get_parameter("shrink"): + size = int(size) + size >>= current_iteration + if size < 4: + size = 4 + current_renderer = current_renderer.render_material(self, m, size) while current_renderer is GDScriptFunctionState: current_renderer = yield(current_renderer, "completed") if check_current_iteration != current_iteration: - print("Iteration changed") current_renderer.release(self) current_renderer = null mm_deps.dependency_update(buffer_name, texture, true)