From 311f4dd70b3cbc7b18297669387dbfeb72f7a2c6 Mon Sep 17 00:00:00 2001 From: Manolis Papadeas <35376950+OverloadedOrama@users.noreply.github.com> Date: Mon, 27 Dec 2021 00:08:06 +0200 Subject: [PATCH] Add missing line to Desaturate and InvertColors, and made some changes to ShaderImageEffect --- src/Classes/ShaderImageEffect.gd | 17 ++++++++--------- src/UI/Dialogs/ImageEffects/DesaturateDialog.gd | 1 + .../Dialogs/ImageEffects/InvertColorsDialog.gd | 1 + 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/Classes/ShaderImageEffect.gd b/src/Classes/ShaderImageEffect.gd index 3d9c63d76..e0d0da0e8 100644 --- a/src/Classes/ShaderImageEffect.gd +++ b/src/Classes/ShaderImageEffect.gd @@ -6,25 +6,22 @@ signal done func generate_image(img: Image, shader: Shader, params: Dictionary, size: Vector2) -> void: img.unlock() - var viewport_texture := Image.new() - var vp = VisualServer.viewport_create() - var canvas = VisualServer.canvas_create() + var vp := VisualServer.viewport_create() + var canvas := VisualServer.canvas_create() VisualServer.viewport_attach_canvas(vp, canvas) VisualServer.viewport_set_size(vp, size.x, size.y) VisualServer.viewport_set_disable_3d(vp, true) VisualServer.viewport_set_usage(vp, VisualServer.VIEWPORT_USAGE_2D) - VisualServer.viewport_set_hdr(vp, true) VisualServer.viewport_set_active(vp, true) VisualServer.viewport_set_transparent_background(vp, true) - var ci_rid = VisualServer.canvas_item_create() + var ci_rid := VisualServer.canvas_item_create() VisualServer.viewport_set_canvas_transform(vp, canvas, Transform()) VisualServer.canvas_item_set_parent(ci_rid, canvas) - var texture = ImageTexture.new() - texture.create_from_image(img) - VisualServer.canvas_item_add_texture_rect(ci_rid, Rect2(Vector2(0, 0), size), texture) + var texture := VisualServer.texture_create_from_image(img, 0) + VisualServer.canvas_item_add_texture_rect(ci_rid, Rect2(Vector2.ZERO, size), texture) - var mat_rid = VisualServer.material_create() + var mat_rid := VisualServer.material_create() VisualServer.material_set_shader(mat_rid, shader.get_rid()) VisualServer.canvas_item_set_material(ci_rid, mat_rid) for key in params: @@ -33,11 +30,13 @@ func generate_image(img: Image, shader: Shader, params: Dictionary, size: Vector VisualServer.viewport_set_update_mode(vp, VisualServer.VIEWPORT_UPDATE_ONCE) VisualServer.viewport_set_vflip(vp, true) VisualServer.force_draw(false) + var viewport_texture := Image.new() viewport_texture = VisualServer.texture_get_data(VisualServer.viewport_get_texture(vp)) VisualServer.free_rid(vp) VisualServer.free_rid(canvas) VisualServer.free_rid(ci_rid) VisualServer.free_rid(mat_rid) + VisualServer.free_rid(texture) viewport_texture.convert(Image.FORMAT_RGBA8) img.copy_from(viewport_texture) emit_signal("done") diff --git a/src/UI/Dialogs/ImageEffects/DesaturateDialog.gd b/src/UI/Dialogs/ImageEffects/DesaturateDialog.gd index b0eee159b..f6eb21260 100644 --- a/src/UI/Dialogs/ImageEffects/DesaturateDialog.gd +++ b/src/UI/Dialogs/ImageEffects/DesaturateDialog.gd @@ -11,6 +11,7 @@ var confirmed: bool = false func _about_to_show() -> void: + confirmed = false var sm := ShaderMaterial.new() sm.shader = shader preview.set_material(sm) diff --git a/src/UI/Dialogs/ImageEffects/InvertColorsDialog.gd b/src/UI/Dialogs/ImageEffects/InvertColorsDialog.gd index 698509021..c2e1e652a 100644 --- a/src/UI/Dialogs/ImageEffects/InvertColorsDialog.gd +++ b/src/UI/Dialogs/ImageEffects/InvertColorsDialog.gd @@ -11,6 +11,7 @@ var confirmed: bool = false func _about_to_show() -> void: + confirmed = false var sm := ShaderMaterial.new() sm.shader = shader preview.set_material(sm)