From 7c6cdadb86805c52b7d1aa68ad1e9b8f2c04ce37 Mon Sep 17 00:00:00 2001 From: Emmanouil Papadeas <35376950+OverloadedOrama@users.noreply.github.com> Date: Wed, 20 Apr 2022 03:06:58 +0300 Subject: [PATCH] Optimize shader-based image effects when there is no selection --- src/UI/Dialogs/ImageEffects/DesaturateDialog.gd | 5 +++-- src/UI/Dialogs/ImageEffects/HSVDialog.gd | 5 +++-- src/UI/Dialogs/ImageEffects/InvertColorsDialog.gd | 5 +++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/UI/Dialogs/ImageEffects/DesaturateDialog.gd b/src/UI/Dialogs/ImageEffects/DesaturateDialog.gd index 835aa1454..3964963d9 100644 --- a/src/UI/Dialogs/ImageEffects/DesaturateDialog.gd +++ b/src/UI/Dialogs/ImageEffects/DesaturateDialog.gd @@ -30,9 +30,10 @@ func _confirmed() -> void: func commit_action(cel: Image, project: Project = Global.current_project) -> void: - var selection: Image = project.bitmap_to_image(project.selection_bitmap) var selection_tex := ImageTexture.new() - selection_tex.create_from_image(selection) + if selection_checkbox.pressed and project.has_selection: + var selection: Image = project.bitmap_to_image(project.selection_bitmap) + selection_tex.create_from_image(selection, 0) if !confirmed: preview.material.set_shader_param("red", red) diff --git a/src/UI/Dialogs/ImageEffects/HSVDialog.gd b/src/UI/Dialogs/ImageEffects/HSVDialog.gd index 700fbf3dc..2025d7f06 100644 --- a/src/UI/Dialogs/ImageEffects/HSVDialog.gd +++ b/src/UI/Dialogs/ImageEffects/HSVDialog.gd @@ -37,9 +37,10 @@ func _confirmed() -> void: func commit_action(cel: Image, project: Project = Global.current_project) -> void: - var selection: Image = project.bitmap_to_image(project.selection_bitmap) var selection_tex := ImageTexture.new() - selection_tex.create_from_image(selection) + if selection_checkbox.pressed and project.has_selection: + var selection: Image = project.bitmap_to_image(project.selection_bitmap) + selection_tex.create_from_image(selection, 0) if !confirmed: preview.material.set_shader_param("hue_shift_amount", hue_slider.value / 360) diff --git a/src/UI/Dialogs/ImageEffects/InvertColorsDialog.gd b/src/UI/Dialogs/ImageEffects/InvertColorsDialog.gd index 425e64424..61a7dd223 100644 --- a/src/UI/Dialogs/ImageEffects/InvertColorsDialog.gd +++ b/src/UI/Dialogs/ImageEffects/InvertColorsDialog.gd @@ -30,9 +30,10 @@ func _confirmed() -> void: func commit_action(cel: Image, project: Project = Global.current_project) -> void: - var selection: Image = project.bitmap_to_image(project.selection_bitmap) var selection_tex := ImageTexture.new() - selection_tex.create_from_image(selection) + if selection_checkbox.pressed and project.has_selection: + var selection: Image = project.bitmap_to_image(project.selection_bitmap) + selection_tex.create_from_image(selection, 0) if !confirmed: preview.material.set_shader_param("red", red)