Fixed renddering and 2D preview problems.
This commit is contained in:
parent
f6da6a54cc
commit
27cb6cd6a4
|
@ -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 = {}
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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()
|
||||
|
||||
|
|
Loading…
Reference in New Issue