mirror of
https://github.com/Orama-Interactive/Pixelorama.git
synced 2025-01-18 09:09:47 +00:00
Add PXO_frame and PXO_layer as special loaded shader uniforms
This commit is contained in:
parent
5a17117d59
commit
80e93629d1
|
@ -236,6 +236,8 @@ func display_effects(cel: BaseCel, image_override: Image = null) -> Image:
|
||||||
continue
|
continue
|
||||||
var params := effect.params
|
var params := effect.params
|
||||||
params["PXO_time"] = cel.get_frame(project).position_in_seconds(project)
|
params["PXO_time"] = cel.get_frame(project).position_in_seconds(project)
|
||||||
|
params["PXO_frame"] = project.frames.find(cel.get_frame(project))
|
||||||
|
params["PXO_layer"] = index
|
||||||
var shader_image_effect := ShaderImageEffect.new()
|
var shader_image_effect := ShaderImageEffect.new()
|
||||||
shader_image_effect.generate_image(image, effect.shader, params, image_size)
|
shader_image_effect.generate_image(image, effect.shader, params, image_size)
|
||||||
# Inherit effects from the parents, if their blend mode is set to pass through
|
# Inherit effects from the parents, if their blend mode is set to pass through
|
||||||
|
|
|
@ -63,7 +63,7 @@ static func create_ui_for_shader_uniforms(
|
||||||
var u_init := u_left_side[0].split(" ")
|
var u_init := u_left_side[0].split(" ")
|
||||||
var u_type := u_init[1]
|
var u_type := u_init[1]
|
||||||
var u_name := u_init[2]
|
var u_name := u_init[2]
|
||||||
if u_name == "PXO_time":
|
if u_name in ["PXO_time", "PXO_frame", "PXO_layer"]:
|
||||||
continue
|
continue
|
||||||
# Find custom data of the uniform, if any exists
|
# Find custom data of the uniform, if any exists
|
||||||
# Right now it only checks if a uniform should have another type of node
|
# Right now it only checks if a uniform should have another type of node
|
||||||
|
|
|
@ -168,7 +168,8 @@ func _apply_effect(layer: BaseLayer, effect: LayerEffect) -> void:
|
||||||
var index := layer.effects.find(effect)
|
var index := layer.effects.find(effect)
|
||||||
var redo_data := {}
|
var redo_data := {}
|
||||||
var undo_data := {}
|
var undo_data := {}
|
||||||
for frame in project.frames:
|
for i in project.frames.size():
|
||||||
|
var frame := project.frames[i]
|
||||||
var cel := frame.cels[layer.index]
|
var cel := frame.cels[layer.index]
|
||||||
var cel_image := cel.get_image()
|
var cel_image := cel.get_image()
|
||||||
if cel is CelTileMap:
|
if cel is CelTileMap:
|
||||||
|
@ -179,6 +180,8 @@ func _apply_effect(layer: BaseLayer, effect: LayerEffect) -> void:
|
||||||
var image_size := cel_image.get_size()
|
var image_size := cel_image.get_size()
|
||||||
var params := effect.params
|
var params := effect.params
|
||||||
params["PXO_time"] = frame.position_in_seconds(project)
|
params["PXO_time"] = frame.position_in_seconds(project)
|
||||||
|
params["PXO_frame"] = i
|
||||||
|
params["PXO_layer"] = layer.index
|
||||||
var shader_image_effect := ShaderImageEffect.new()
|
var shader_image_effect := ShaderImageEffect.new()
|
||||||
shader_image_effect.generate_image(cel_image, effect.shader, params, image_size)
|
shader_image_effect.generate_image(cel_image, effect.shader, params, image_size)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue