2020-08-25 19:49:18 +03:00
|
|
|
extends ImageEffect
|
2020-08-01 04:24:11 +03:00
|
|
|
|
|
|
|
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")
|
2021-04-21 18:01:33 +05:30
|
|
|
|
2021-11-25 14:48:30 +02:00
|
|
|
|
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
|
2021-04-21 18:01:33 +05:30
|
|
|
preview.set_material(sm)
|
|
|
|
|
2020-08-01 04:24:11 +03:00
|
|
|
|
2021-12-01 03:04:40 +02:00
|
|
|
func commit_action(cel: Image, project: Project = Global.current_project) -> void:
|
|
|
|
var selection_tex := ImageTexture.new()
|
2022-04-20 03:06:58 +03:00
|
|
|
if selection_checkbox.pressed and project.has_selection:
|
2022-08-08 03:03:17 +03:00
|
|
|
selection_tex.create_from_image(project.selection_map, 0)
|
2021-04-21 18:01:33 +05:30
|
|
|
|
2022-06-12 00:27:59 +03:00
|
|
|
var params := {
|
2023-04-20 16:21:09 +03:00
|
|
|
"red": red, "blue": blue, "green": green, "alpha": alpha, "selection": selection_tex
|
2022-06-12 00:27:59 +03:00
|
|
|
}
|
2021-04-21 18:01:33 +05:30
|
|
|
if !confirmed:
|
2022-06-12 00:27:59 +03:00
|
|
|
for param in params:
|
|
|
|
preview.material.set_shader_param(param, params[param])
|
2021-04-21 18:01:33 +05:30
|
|
|
else:
|
2021-12-01 03:04:40 +02:00
|
|
|
var gen := ShaderImageEffect.new()
|
|
|
|
gen.generate_image(cel, shader, params, project.size)
|
2021-04-21 18:01:33 +05:30
|
|
|
yield(gen, "done")
|
2020-08-01 04:24:11 +03:00
|
|
|
|
|
|
|
|
2021-11-25 14:48:30 +02:00
|
|
|
func _on_RButton_toggled(button_pressed: bool) -> void:
|
2020-08-01 04:24:11 +03:00
|
|
|
red = button_pressed
|
|
|
|
update_preview()
|
|
|
|
|
|
|
|
|
2021-11-25 14:48:30 +02:00
|
|
|
func _on_GButton_toggled(button_pressed: bool) -> void:
|
2020-08-01 04:24:11 +03:00
|
|
|
green = button_pressed
|
|
|
|
update_preview()
|
|
|
|
|
|
|
|
|
2021-11-25 14:48:30 +02:00
|
|
|
func _on_BButton_toggled(button_pressed: bool) -> void:
|
2020-08-01 04:24:11 +03:00
|
|
|
blue = button_pressed
|
|
|
|
update_preview()
|
|
|
|
|
|
|
|
|
2021-11-25 14:48:30 +02:00
|
|
|
func _on_AButton_toggled(button_pressed: bool) -> void:
|
2020-08-01 04:24:11 +03:00
|
|
|
alpha = button_pressed
|
|
|
|
update_preview()
|