1
0
Fork 0
mirror of https://github.com/Orama-Interactive/Pixelorama.git synced 2025-03-02 17:43:13 +00:00
Pixelorama/src/UI/Dialogs/ImageEffects/DesaturateDialog.gd

52 lines
1.2 KiB
GDScript3
Raw Normal View History

extends ImageEffect
var red := true
var green := true
var blue := true
var alpha := false
2021-12-01 03:04:40 +02:00
var shader: Shader = preload("res://src/Shaders/Desaturate.shader")
2022-06-12 00:27:59 +03:00
func _ready() -> void:
2021-12-01 03:04:40 +02:00
var sm := ShaderMaterial.new()
sm.shader = shader
preview.set_material(sm)
2021-12-01 03:04:40 +02:00
func commit_action(cel: Image, project: Project = Global.current_project) -> void:
var selection_tex := ImageTexture.new()
if selection_checkbox.pressed and project.has_selection:
selection_tex.create_from_image(project.selection_map, 0)
2022-06-12 00:27:59 +03:00
var params := {
"red": red, "blue": blue, "green": green, "alpha": alpha, "selection": selection_tex
2022-06-12 00:27:59 +03:00
}
if !confirmed:
2022-06-12 00:27:59 +03:00
for param in params:
preview.material.set_shader_param(param, params[param])
else:
2021-12-01 03:04:40 +02:00
var gen := ShaderImageEffect.new()
gen.generate_image(cel, shader, params, project.size)
yield(gen, "done")
func _on_RButton_toggled(button_pressed: bool) -> void:
red = button_pressed
update_preview()
func _on_GButton_toggled(button_pressed: bool) -> void:
green = button_pressed
update_preview()
func _on_BButton_toggled(button_pressed: bool) -> void:
blue = button_pressed
update_preview()
func _on_AButton_toggled(button_pressed: bool) -> void:
alpha = button_pressed
update_preview()