mirror of
https://github.com/Orama-Interactive/Pixelorama.git
synced 2025-02-21 21:13:14 +00:00
Image effect refactors
This commit is contained in:
parent
c9f0301c79
commit
7b067de20e
10 changed files with 64 additions and 155 deletions
|
@ -13,6 +13,7 @@ var preview_texture := ImageTexture.new()
|
||||||
var preview: TextureRect
|
var preview: TextureRect
|
||||||
var selection_checkbox: CheckBox
|
var selection_checkbox: CheckBox
|
||||||
var affect_option_button: OptionButton
|
var affect_option_button: OptionButton
|
||||||
|
var confirmed := false
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
|
@ -30,6 +31,7 @@ func _ready() -> void:
|
||||||
|
|
||||||
|
|
||||||
func _about_to_show() -> void:
|
func _about_to_show() -> void:
|
||||||
|
confirmed = false
|
||||||
Global.canvas.selection.transform_content_confirm()
|
Global.canvas.selection.transform_content_confirm()
|
||||||
var frame: Frame = Global.current_project.frames[Global.current_project.current_frame]
|
var frame: Frame = Global.current_project.frames[Global.current_project.current_frame]
|
||||||
current_cel = frame.cels[Global.current_project.current_layer].image
|
current_cel = frame.cels[Global.current_project.current_layer].image
|
||||||
|
@ -41,6 +43,7 @@ func _about_to_show() -> void:
|
||||||
|
|
||||||
|
|
||||||
func _confirmed() -> void:
|
func _confirmed() -> void:
|
||||||
|
confirmed = true
|
||||||
var project: Project = Global.current_project
|
var project: Project = Global.current_project
|
||||||
if affect == CEL:
|
if affect == CEL:
|
||||||
var undo_data := _get_undo_data(project)
|
var undo_data := _get_undo_data(project)
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
shader_type canvas_item;
|
shader_type canvas_item;
|
||||||
|
render_mode unshaded;
|
||||||
|
|
||||||
uniform sampler2D map; // GradientTexture
|
uniform sampler2D map; // GradientTexture
|
||||||
uniform sampler2D selection;
|
uniform sampler2D selection;
|
||||||
|
|
|
@ -7,15 +7,11 @@ var alpha := false
|
||||||
|
|
||||||
var shader: Shader = preload("res://src/Shaders/Desaturate.shader")
|
var shader: Shader = preload("res://src/Shaders/Desaturate.shader")
|
||||||
|
|
||||||
var confirmed: bool = false
|
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
func _about_to_show() -> void:
|
|
||||||
confirmed = false
|
|
||||||
var sm := ShaderMaterial.new()
|
var sm := ShaderMaterial.new()
|
||||||
sm.shader = shader
|
sm.shader = shader
|
||||||
preview.set_material(sm)
|
preview.set_material(sm)
|
||||||
._about_to_show()
|
|
||||||
|
|
||||||
|
|
||||||
func set_nodes() -> void:
|
func set_nodes() -> void:
|
||||||
|
@ -24,35 +20,25 @@ func set_nodes() -> void:
|
||||||
affect_option_button = $VBoxContainer/OptionsContainer/AffectOptionButton
|
affect_option_button = $VBoxContainer/OptionsContainer/AffectOptionButton
|
||||||
|
|
||||||
|
|
||||||
func _confirmed() -> void:
|
|
||||||
confirmed = true
|
|
||||||
._confirmed()
|
|
||||||
|
|
||||||
|
|
||||||
func commit_action(cel: Image, project: Project = Global.current_project) -> void:
|
func commit_action(cel: Image, project: Project = Global.current_project) -> void:
|
||||||
var selection_tex := ImageTexture.new()
|
var selection_tex := ImageTexture.new()
|
||||||
if selection_checkbox.pressed and project.has_selection:
|
if selection_checkbox.pressed and project.has_selection:
|
||||||
var selection: Image = project.bitmap_to_image(project.selection_bitmap)
|
var selection: Image = project.bitmap_to_image(project.selection_bitmap)
|
||||||
selection_tex.create_from_image(selection, 0)
|
selection_tex.create_from_image(selection, 0)
|
||||||
|
|
||||||
|
var params := {
|
||||||
|
"red": red,
|
||||||
|
"blue": blue,
|
||||||
|
"green": green,
|
||||||
|
"alpha": alpha,
|
||||||
|
"selection": selection_tex,
|
||||||
|
"affect_selection": selection_checkbox.pressed,
|
||||||
|
"has_selection": project.has_selection
|
||||||
|
}
|
||||||
if !confirmed:
|
if !confirmed:
|
||||||
preview.material.set_shader_param("red", red)
|
for param in params:
|
||||||
preview.material.set_shader_param("blue", blue)
|
preview.material.set_shader_param(param, params[param])
|
||||||
preview.material.set_shader_param("green", green)
|
|
||||||
preview.material.set_shader_param("alpha", alpha)
|
|
||||||
preview.material.set_shader_param("selection", selection_tex)
|
|
||||||
preview.material.set_shader_param("affect_selection", selection_checkbox.pressed)
|
|
||||||
preview.material.set_shader_param("has_selection", project.has_selection)
|
|
||||||
else:
|
else:
|
||||||
var params := {
|
|
||||||
"red": red,
|
|
||||||
"blue": blue,
|
|
||||||
"green": green,
|
|
||||||
"alpha": alpha,
|
|
||||||
"selection": selection_tex,
|
|
||||||
"affect_selection": selection_checkbox.pressed,
|
|
||||||
"has_selection": project.has_selection
|
|
||||||
}
|
|
||||||
var gen := ShaderImageEffect.new()
|
var gen := ShaderImageEffect.new()
|
||||||
gen.generate_image(cel, shader, params, project.size)
|
gen.generate_image(cel, shader, params, project.size)
|
||||||
yield(gen, "done")
|
yield(gen, "done")
|
||||||
|
|
|
@ -2,7 +2,6 @@ extends ImageEffect
|
||||||
|
|
||||||
var offset := Vector2(5, 5)
|
var offset := Vector2(5, 5)
|
||||||
var color := Color.black
|
var color := Color.black
|
||||||
var confirmed := false
|
|
||||||
var shader: Shader = load("res://src/Shaders/DropShadow.tres")
|
var shader: Shader = load("res://src/Shaders/DropShadow.tres")
|
||||||
|
|
||||||
onready var x_spinbox: SpinBox = $VBoxContainer/OptionsContainer/XSpinBox
|
onready var x_spinbox: SpinBox = $VBoxContainer/OptionsContainer/XSpinBox
|
||||||
|
@ -13,19 +12,9 @@ onready var shadow_color = $VBoxContainer/OptionsContainer/ShadowColor
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
shadow_color.get_picker().presets_visible = false
|
shadow_color.get_picker().presets_visible = false
|
||||||
color = shadow_color.color
|
color = shadow_color.color
|
||||||
|
|
||||||
|
|
||||||
func _about_to_show() -> void:
|
|
||||||
confirmed = false
|
|
||||||
var sm := ShaderMaterial.new()
|
var sm := ShaderMaterial.new()
|
||||||
sm.shader = shader
|
sm.shader = shader
|
||||||
preview.set_material(sm)
|
preview.set_material(sm)
|
||||||
._about_to_show()
|
|
||||||
|
|
||||||
|
|
||||||
func _confirmed() -> void:
|
|
||||||
confirmed = true
|
|
||||||
._confirmed()
|
|
||||||
|
|
||||||
|
|
||||||
func set_nodes() -> void:
|
func set_nodes() -> void:
|
||||||
|
@ -40,16 +29,15 @@ func commit_action(cel: Image, project: Project = Global.current_project) -> voi
|
||||||
var selection: Image = project.bitmap_to_image(project.selection_bitmap)
|
var selection: Image = project.bitmap_to_image(project.selection_bitmap)
|
||||||
selection_tex.create_from_image(selection, 0)
|
selection_tex.create_from_image(selection, 0)
|
||||||
|
|
||||||
|
var params := {
|
||||||
|
"shadow_offset": offset,
|
||||||
|
"shadow_color": color,
|
||||||
|
"selection": selection_tex,
|
||||||
|
}
|
||||||
if !confirmed:
|
if !confirmed:
|
||||||
preview.material.set_shader_param("shadow_offset", offset)
|
for param in params:
|
||||||
preview.material.set_shader_param("shadow_color", color)
|
preview.material.set_shader_param(param, params[param])
|
||||||
preview.material.set_shader_param("selection", selection_tex)
|
|
||||||
else:
|
else:
|
||||||
var params := {
|
|
||||||
"shadow_offset": offset,
|
|
||||||
"shadow_color": color,
|
|
||||||
"selection": selection_tex,
|
|
||||||
}
|
|
||||||
var gen := ShaderImageEffect.new()
|
var gen := ShaderImageEffect.new()
|
||||||
gen.generate_image(cel, shader, params, project.size)
|
gen.generate_image(cel, shader, params, project.size)
|
||||||
yield(gen, "done")
|
yield(gen, "done")
|
||||||
|
|
|
@ -9,7 +9,6 @@ var shader_radial_step: Shader = preload("res://src/Shaders/Gradients/RadialStep
|
||||||
var shader_linear_dither: Shader = preload("res://src/Shaders/Gradients/LinearDithering.gdshader")
|
var shader_linear_dither: Shader = preload("res://src/Shaders/Gradients/LinearDithering.gdshader")
|
||||||
var shader_radial_dither: Shader = preload("res://src/Shaders/Gradients/RadialDithering.gdshader")
|
var shader_radial_dither: Shader = preload("res://src/Shaders/Gradients/RadialDithering.gdshader")
|
||||||
|
|
||||||
var confirmed := false
|
|
||||||
var shader: Shader = shader_linear
|
var shader: Shader = shader_linear
|
||||||
var dither_matrices := [
|
var dither_matrices := [
|
||||||
DitherMatrix.new(preload("res://assets/dither-matrices/bayer2.png"), "Bayer 2x2"),
|
DitherMatrix.new(preload("res://assets/dither-matrices/bayer2.png"), "Bayer 2x2"),
|
||||||
|
@ -56,16 +55,6 @@ func _ready() -> void:
|
||||||
dithering_option_button.add_item(matrix.name)
|
dithering_option_button.add_item(matrix.name)
|
||||||
|
|
||||||
|
|
||||||
func _about_to_show() -> void:
|
|
||||||
confirmed = false
|
|
||||||
._about_to_show()
|
|
||||||
|
|
||||||
|
|
||||||
func _confirmed() -> void:
|
|
||||||
confirmed = true
|
|
||||||
._confirmed()
|
|
||||||
|
|
||||||
|
|
||||||
func set_nodes() -> void:
|
func set_nodes() -> void:
|
||||||
preview = $VBoxContainer/AspectRatioContainer/Preview
|
preview = $VBoxContainer/AspectRatioContainer/Preview
|
||||||
selection_checkbox = $VBoxContainer/OptionsContainer/SelectionCheckBox
|
selection_checkbox = $VBoxContainer/OptionsContainer/SelectionCheckBox
|
||||||
|
|
|
@ -1,10 +1,8 @@
|
||||||
extends ImageEffect
|
extends ImageEffect
|
||||||
|
|
||||||
var shader: Shader = preload("res://src/Shaders/GradientMap.gdshader")
|
var shader: Shader = preload("res://src/Shaders/GradientMap.gdshader")
|
||||||
var confirmed := false
|
|
||||||
|
|
||||||
|
|
||||||
# Called when the node enters the scene tree for the first time.
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
var sm := ShaderMaterial.new()
|
var sm := ShaderMaterial.new()
|
||||||
sm.shader = shader
|
sm.shader = shader
|
||||||
|
@ -17,16 +15,6 @@ func set_nodes() -> void:
|
||||||
affect_option_button = $VBoxContainer/OptionsContainer/AffectOptionButton
|
affect_option_button = $VBoxContainer/OptionsContainer/AffectOptionButton
|
||||||
|
|
||||||
|
|
||||||
func _about_to_show() -> void:
|
|
||||||
confirmed = false
|
|
||||||
._about_to_show()
|
|
||||||
|
|
||||||
|
|
||||||
func _confirmed() -> void:
|
|
||||||
confirmed = true
|
|
||||||
._confirmed()
|
|
||||||
|
|
||||||
|
|
||||||
func commit_action(cel: Image, project: Project = Global.current_project) -> void:
|
func commit_action(cel: Image, project: Project = Global.current_project) -> void:
|
||||||
var selection_tex := ImageTexture.new()
|
var selection_tex := ImageTexture.new()
|
||||||
if selection_checkbox.pressed and project.has_selection:
|
if selection_checkbox.pressed and project.has_selection:
|
||||||
|
@ -36,7 +24,6 @@ func commit_action(cel: Image, project: Project = Global.current_project) -> voi
|
||||||
var params := {"selection": selection_tex, "map": $VBoxContainer/GradientEdit.texture}
|
var params := {"selection": selection_tex, "map": $VBoxContainer/GradientEdit.texture}
|
||||||
|
|
||||||
if !confirmed:
|
if !confirmed:
|
||||||
preview.material.shader = shader
|
|
||||||
for param in params:
|
for param in params:
|
||||||
preview.material.set_shader_param(param, params[param])
|
preview.material.set_shader_param(param, params[param])
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -3,7 +3,6 @@ extends ImageEffect
|
||||||
var shader: Shader = preload("res://src/Shaders/HSV.shader")
|
var shader: Shader = preload("res://src/Shaders/HSV.shader")
|
||||||
|
|
||||||
var live_preview: bool = true
|
var live_preview: bool = true
|
||||||
var confirmed: bool = false
|
|
||||||
|
|
||||||
onready var hue_slider = $VBoxContainer/HBoxContainer/Sliders/Hue
|
onready var hue_slider = $VBoxContainer/HBoxContainer/Sliders/Hue
|
||||||
onready var sat_slider = $VBoxContainer/HBoxContainer/Sliders/Saturation
|
onready var sat_slider = $VBoxContainer/HBoxContainer/Sliders/Saturation
|
||||||
|
@ -16,11 +15,14 @@ onready var wait_apply_timer = $WaitApply
|
||||||
onready var wait_time_spinbox = $VBoxContainer/WaitSettings/WaitTime
|
onready var wait_time_spinbox = $VBoxContainer/WaitSettings/WaitTime
|
||||||
|
|
||||||
|
|
||||||
func _about_to_show() -> void:
|
func _ready() -> void:
|
||||||
reset()
|
|
||||||
var sm := ShaderMaterial.new()
|
var sm := ShaderMaterial.new()
|
||||||
sm.shader = shader
|
sm.shader = shader
|
||||||
preview.set_material(sm)
|
preview.set_material(sm)
|
||||||
|
|
||||||
|
|
||||||
|
func _about_to_show() -> void:
|
||||||
|
reset()
|
||||||
._about_to_show()
|
._about_to_show()
|
||||||
|
|
||||||
|
|
||||||
|
@ -30,34 +32,24 @@ func set_nodes() -> void:
|
||||||
affect_option_button = $VBoxContainer/AffectHBoxContainer/AffectOptionButton
|
affect_option_button = $VBoxContainer/AffectHBoxContainer/AffectOptionButton
|
||||||
|
|
||||||
|
|
||||||
func _confirmed() -> void:
|
|
||||||
confirmed = true
|
|
||||||
._confirmed()
|
|
||||||
reset()
|
|
||||||
|
|
||||||
|
|
||||||
func commit_action(cel: Image, project: Project = Global.current_project) -> void:
|
func commit_action(cel: Image, project: Project = Global.current_project) -> void:
|
||||||
var selection_tex := ImageTexture.new()
|
var selection_tex := ImageTexture.new()
|
||||||
if selection_checkbox.pressed and project.has_selection:
|
if selection_checkbox.pressed and project.has_selection:
|
||||||
var selection: Image = project.bitmap_to_image(project.selection_bitmap)
|
var selection: Image = project.bitmap_to_image(project.selection_bitmap)
|
||||||
selection_tex.create_from_image(selection, 0)
|
selection_tex.create_from_image(selection, 0)
|
||||||
|
|
||||||
|
var params := {
|
||||||
|
"hue_shift_amount": hue_slider.value / 360,
|
||||||
|
"sat_shift_amount": sat_slider.value / 100,
|
||||||
|
"val_shift_amount": val_slider.value / 100,
|
||||||
|
"selection": selection_tex,
|
||||||
|
"affect_selection": selection_checkbox.pressed,
|
||||||
|
"has_selection": project.has_selection
|
||||||
|
}
|
||||||
if !confirmed:
|
if !confirmed:
|
||||||
preview.material.set_shader_param("hue_shift_amount", hue_slider.value / 360)
|
for param in params:
|
||||||
preview.material.set_shader_param("sat_shift_amount", sat_slider.value / 100)
|
preview.material.set_shader_param(param, params[param])
|
||||||
preview.material.set_shader_param("val_shift_amount", val_slider.value / 100)
|
|
||||||
preview.material.set_shader_param("selection", selection_tex)
|
|
||||||
preview.material.set_shader_param("affect_selection", selection_checkbox.pressed)
|
|
||||||
preview.material.set_shader_param("has_selection", project.has_selection)
|
|
||||||
else:
|
else:
|
||||||
var params := {
|
|
||||||
"hue_shift_amount": hue_slider.value / 360,
|
|
||||||
"sat_shift_amount": sat_slider.value / 100,
|
|
||||||
"val_shift_amount": val_slider.value / 100,
|
|
||||||
"selection": selection_tex,
|
|
||||||
"affect_selection": selection_checkbox.pressed,
|
|
||||||
"has_selection": project.has_selection
|
|
||||||
}
|
|
||||||
var gen := ShaderImageEffect.new()
|
var gen := ShaderImageEffect.new()
|
||||||
gen.generate_image(cel, shader, params, project.size)
|
gen.generate_image(cel, shader, params, project.size)
|
||||||
yield(gen, "done")
|
yield(gen, "done")
|
||||||
|
|
|
@ -7,15 +7,11 @@ var alpha := false
|
||||||
|
|
||||||
var shader: Shader = preload("res://src/Shaders/Invert.shader")
|
var shader: Shader = preload("res://src/Shaders/Invert.shader")
|
||||||
|
|
||||||
var confirmed: bool = false
|
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
func _about_to_show() -> void:
|
|
||||||
confirmed = false
|
|
||||||
var sm := ShaderMaterial.new()
|
var sm := ShaderMaterial.new()
|
||||||
sm.shader = shader
|
sm.shader = shader
|
||||||
preview.set_material(sm)
|
preview.set_material(sm)
|
||||||
._about_to_show()
|
|
||||||
|
|
||||||
|
|
||||||
func set_nodes() -> void:
|
func set_nodes() -> void:
|
||||||
|
@ -24,35 +20,26 @@ func set_nodes() -> void:
|
||||||
affect_option_button = $VBoxContainer/OptionsContainer/AffectOptionButton
|
affect_option_button = $VBoxContainer/OptionsContainer/AffectOptionButton
|
||||||
|
|
||||||
|
|
||||||
func _confirmed() -> void:
|
|
||||||
confirmed = true
|
|
||||||
._confirmed()
|
|
||||||
|
|
||||||
|
|
||||||
func commit_action(cel: Image, project: Project = Global.current_project) -> void:
|
func commit_action(cel: Image, project: Project = Global.current_project) -> void:
|
||||||
var selection_tex := ImageTexture.new()
|
var selection_tex := ImageTexture.new()
|
||||||
if selection_checkbox.pressed and project.has_selection:
|
if selection_checkbox.pressed and project.has_selection:
|
||||||
var selection: Image = project.bitmap_to_image(project.selection_bitmap)
|
var selection: Image = project.bitmap_to_image(project.selection_bitmap)
|
||||||
selection_tex.create_from_image(selection, 0)
|
selection_tex.create_from_image(selection, 0)
|
||||||
|
|
||||||
|
var params := {
|
||||||
|
"red": red,
|
||||||
|
"blue": blue,
|
||||||
|
"green": green,
|
||||||
|
"alpha": alpha,
|
||||||
|
"selection": selection_tex,
|
||||||
|
"affect_selection": selection_checkbox.pressed,
|
||||||
|
"has_selection": project.has_selection
|
||||||
|
}
|
||||||
|
|
||||||
if !confirmed:
|
if !confirmed:
|
||||||
preview.material.set_shader_param("red", red)
|
for param in params:
|
||||||
preview.material.set_shader_param("blue", blue)
|
preview.material.set_shader_param(param, params[param])
|
||||||
preview.material.set_shader_param("green", green)
|
|
||||||
preview.material.set_shader_param("alpha", alpha)
|
|
||||||
preview.material.set_shader_param("selection", selection_tex)
|
|
||||||
preview.material.set_shader_param("affect_selection", selection_checkbox.pressed)
|
|
||||||
preview.material.set_shader_param("has_selection", project.has_selection)
|
|
||||||
else:
|
else:
|
||||||
var params := {
|
|
||||||
"red": red,
|
|
||||||
"blue": blue,
|
|
||||||
"green": green,
|
|
||||||
"alpha": alpha,
|
|
||||||
"selection": selection_tex,
|
|
||||||
"affect_selection": selection_checkbox.pressed,
|
|
||||||
"has_selection": project.has_selection
|
|
||||||
}
|
|
||||||
var gen := ShaderImageEffect.new()
|
var gen := ShaderImageEffect.new()
|
||||||
gen.generate_image(cel, shader, params, project.size)
|
gen.generate_image(cel, shader, params, project.size)
|
||||||
yield(gen, "done")
|
yield(gen, "done")
|
||||||
|
|
|
@ -4,7 +4,6 @@ var color := Color.red
|
||||||
var thickness := 1
|
var thickness := 1
|
||||||
var pattern := 0
|
var pattern := 0
|
||||||
var inside_image := false
|
var inside_image := false
|
||||||
var confirmed := false
|
|
||||||
var shader: Shader
|
var shader: Shader
|
||||||
|
|
||||||
onready var outline_color = $VBoxContainer/OptionsContainer/OutlineColor
|
onready var outline_color = $VBoxContainer/OptionsContainer/OutlineColor
|
||||||
|
@ -15,22 +14,11 @@ func _ready() -> void:
|
||||||
$VBoxContainer/OptionsContainer/PatternOptionButton.disabled = true
|
$VBoxContainer/OptionsContainer/PatternOptionButton.disabled = true
|
||||||
else:
|
else:
|
||||||
shader = load("res://src/Shaders/OutlineInline.gdshader")
|
shader = load("res://src/Shaders/OutlineInline.gdshader")
|
||||||
outline_color.get_picker().presets_visible = false
|
|
||||||
color = outline_color.color
|
|
||||||
|
|
||||||
|
|
||||||
func _about_to_show() -> void:
|
|
||||||
confirmed = false
|
|
||||||
if shader:
|
|
||||||
var sm := ShaderMaterial.new()
|
var sm := ShaderMaterial.new()
|
||||||
sm.shader = shader
|
sm.shader = shader
|
||||||
preview.set_material(sm)
|
preview.set_material(sm)
|
||||||
._about_to_show()
|
outline_color.get_picker().presets_visible = false
|
||||||
|
color = outline_color.color
|
||||||
|
|
||||||
func _confirmed() -> void:
|
|
||||||
confirmed = true
|
|
||||||
._confirmed()
|
|
||||||
|
|
||||||
|
|
||||||
func set_nodes() -> void:
|
func set_nodes() -> void:
|
||||||
|
@ -51,24 +39,19 @@ func commit_action(cel: Image, project: Project = Global.current_project) -> voi
|
||||||
var selection: Image = project.bitmap_to_image(project.selection_bitmap)
|
var selection: Image = project.bitmap_to_image(project.selection_bitmap)
|
||||||
selection_tex.create_from_image(selection, 0)
|
selection_tex.create_from_image(selection, 0)
|
||||||
|
|
||||||
|
var params := {
|
||||||
|
"color": color,
|
||||||
|
"width": thickness,
|
||||||
|
"pattern": pattern,
|
||||||
|
"inside": inside_image,
|
||||||
|
"selection": selection_tex,
|
||||||
|
"affect_selection": selection_checkbox.pressed,
|
||||||
|
"has_selection": project.has_selection
|
||||||
|
}
|
||||||
if !confirmed:
|
if !confirmed:
|
||||||
preview.material.set_shader_param("color", color)
|
for param in params:
|
||||||
preview.material.set_shader_param("width", thickness)
|
preview.material.set_shader_param(param, params[param])
|
||||||
preview.material.set_shader_param("pattern", pattern)
|
|
||||||
preview.material.set_shader_param("inside", inside_image)
|
|
||||||
preview.material.set_shader_param("selection", selection_tex)
|
|
||||||
preview.material.set_shader_param("affect_selection", selection_checkbox.pressed)
|
|
||||||
preview.material.set_shader_param("has_selection", project.has_selection)
|
|
||||||
else:
|
else:
|
||||||
var params := {
|
|
||||||
"color": color,
|
|
||||||
"width": thickness,
|
|
||||||
"pattern": pattern,
|
|
||||||
"inside": inside_image,
|
|
||||||
"selection": selection_tex,
|
|
||||||
"affect_selection": selection_checkbox.pressed,
|
|
||||||
"has_selection": project.has_selection
|
|
||||||
}
|
|
||||||
var gen := ShaderImageEffect.new()
|
var gen := ShaderImageEffect.new()
|
||||||
gen.generate_image(cel, shader, params, project.size)
|
gen.generate_image(cel, shader, params, project.size)
|
||||||
yield(gen, "done")
|
yield(gen, "done")
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
extends ImageEffect
|
extends ImageEffect
|
||||||
|
|
||||||
var live_preview: bool = true
|
var live_preview: bool = true
|
||||||
var confirmed := false
|
|
||||||
var shader: Shader = preload("res://src/Shaders/Rotation.shader")
|
var shader: Shader = preload("res://src/Shaders/Rotation.shader")
|
||||||
|
|
||||||
onready var type_option_button: OptionButton = $VBoxContainer/HBoxContainer2/TypeOptionButton
|
onready var type_option_button: OptionButton = $VBoxContainer/HBoxContainer2/TypeOptionButton
|
||||||
|
@ -111,12 +110,6 @@ func commit_action(_cel: Image, _project: Project = Global.current_project) -> v
|
||||||
_cel.blit_rect(image, Rect2(Vector2.ZERO, image.get_size()), Vector2.ZERO)
|
_cel.blit_rect(image, Rect2(Vector2.ZERO, image.get_size()), Vector2.ZERO)
|
||||||
|
|
||||||
|
|
||||||
func _confirmed() -> void:
|
|
||||||
confirmed = true
|
|
||||||
._confirmed()
|
|
||||||
angle_hslider.value = 0
|
|
||||||
|
|
||||||
|
|
||||||
func _on_HSlider_value_changed(_value: float) -> void:
|
func _on_HSlider_value_changed(_value: float) -> void:
|
||||||
angle_spinbox.value = angle_hslider.value
|
angle_spinbox.value = angle_hslider.value
|
||||||
if live_preview:
|
if live_preview:
|
||||||
|
|
Loading…
Add table
Reference in a new issue