diff --git a/addons/material_maker/engine/dependencies.gd b/addons/material_maker/engine/dependencies.gd index bd446692..f18fdc36 100644 --- a/addons/material_maker/engine/dependencies.gd +++ b/addons/material_maker/engine/dependencies.gd @@ -72,7 +72,7 @@ func buffer_clear_dependencies(buffer_name : String): assert(dep_index != -1) if dependencies[d].size() == 1: dependencies.erase(d) - if dependencies_values.has(d) and ! (dependencies_values[d] is Texture2D): + if dependencies_values.has(d) and ! (dependencies_values[d] is MMTexture): dependencies_values.erase(d) else: dependencies[d].remove_at(dep_index) @@ -221,12 +221,12 @@ func buffer_create_compute_material(buffer_name : String, material : MMShaderBas for p in material.get_parameters().keys(): var value = buffer_add_dependency(buffer_name, p) if value != null: - material.set_parameter(p, value) + await material.set_parameter(p, value) buffers[buffer_name].shader_generations += 1 func buffer_create_shader_material(buffer_name : String, material : MMShaderBase, shader : String): material.set_shader(shader) - buffer_create_compute_material(buffer_name, material) + await buffer_create_compute_material(buffer_name, material) func print_stats(object = null): var statuses : Dictionary = {} diff --git a/addons/material_maker/engine/multi_renderer.gd b/addons/material_maker/engine/multi_renderer.gd index 9bf1ab35..f70a0379 100644 --- a/addons/material_maker/engine/multi_renderer.gd +++ b/addons/material_maker/engine/multi_renderer.gd @@ -117,7 +117,7 @@ func request_rendering_device(user) -> RenderingDevice: rendering_device_user = user var scene_tree : SceneTree = get_tree() if scene_tree: - await get_tree().process_frame + await scene_tree.process_frame return rendering_device func release_rendering_device(user) -> void: diff --git a/material_maker/panels/preview_2d/preview_2d.gd b/material_maker/panels/preview_2d/preview_2d.gd index 79be99c4..fa30a283 100644 --- a/material_maker/panels/preview_2d/preview_2d.gd +++ b/material_maker/panels/preview_2d/preview_2d.gd @@ -46,10 +46,13 @@ func do_update_material(source, target_material : ShaderMaterial, template): is_greyscale = source.output_type == "f" # Update shader var code = generate_preview_shader(source, template) - mm_deps.buffer_create_shader_material("preview_"+str(get_instance_id()), MMShaderMaterial.new(target_material), code) + await mm_deps.buffer_create_shader_material("preview_"+str(get_instance_id()), MMShaderMaterial.new(target_material), code) for u in source.uniforms: if u.value: - target_material.set_shader_parameter(u.name, u.value) + if u.value is MMTexture: + target_material.set_shader_parameter(u.name, u.value.get_texture()) + else: + target_material.set_shader_parameter(u.name, u.value) # Make sure position/size parameters are setup on_resized()