From ea2093f71e8d3f0c9648c0b41ba6ced67de32c33 Mon Sep 17 00:00:00 2001 From: Rodz Labs Date: Sat, 24 Sep 2022 09:30:18 +0200 Subject: [PATCH] Recoded Renderer.render_shader function based on render_material --- addons/material_maker/engine/renderer.gd | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/addons/material_maker/engine/renderer.gd b/addons/material_maker/engine/renderer.gd index 8f9cc72a..aa66b352 100644 --- a/addons/material_maker/engine/renderer.gd +++ b/addons/material_maker/engine/renderer.gd @@ -52,7 +52,7 @@ func render_text(object : Object, text : String, font_path : String, font_size : $ColorRect.visible = true return self -func render_material(object : Object, material : Material, render_size, with_hdr = true) -> Object: +func render_material(object : Object, material : Material, render_size : int, with_hdr : bool = true) -> Object: assert(render_owner == object, "Invalid renderer use") if mm_renderer.max_buffer_size != 0 and render_size > mm_renderer.max_buffer_size: render_size = mm_renderer.max_buffer_size @@ -95,25 +95,15 @@ func render_material(object : Object, material : Material, render_size, with_hdr $ColorRect.material = shader_material return self -func render_shader(object : Object, shader, textures, render_size, with_hdr = true) -> Object: - assert(render_owner == object, "Invalid renderer use") - if mm_renderer.max_buffer_size != 0 and render_size > mm_renderer.max_buffer_size: - render_size = mm_renderer.max_buffer_size - size = Vector2(render_size, render_size) - $ColorRect.rect_position = Vector2(0, 0) - $ColorRect.rect_size = size +func render_shader(object : Object, shader : String, textures : Dictionary, render_size : int, with_hdr : bool = true) -> Object: var shader_material = $ColorRect.material shader_material.shader.code = shader if textures != null: for k in textures.keys(): shader_material.set_shader_param(k, textures[k]) - shader_material.set_shader_param("preview_size", render_size) - hdr = with_hdr - render_target_update_mode = Viewport.UPDATE_ONCE - update_worlds() - yield(get_tree(), "idle_frame") - yield(get_tree(), "idle_frame") - texture = get_texture() + var status = render_material(object, shader_material, render_size, with_hdr) + while status is GDScriptFunctionState: + status = yield(status, "completed") return self func copy_to_texture(t : ImageTexture) -> void: