1
0
Fork 0
mirror of https://github.com/Orama-Interactive/Pixelorama.git synced 2025-02-20 12:33:14 +00:00

Fix onion skinning not working with mirror view

Addresses the 3rd issue in #717.
This commit is contained in:
Emmanouil Papadeas 2022-09-13 00:49:22 +03:00
parent 4b4b0773ff
commit 2e795e8db5

View file

@ -10,27 +10,29 @@ var rate := Global.onion_skinning_past_rate
func _draw() -> void:
if !Global.onion_skinning:
return
rate = Global.onion_skinning_past_rate if type == PAST else Global.onion_skinning_future_rate
if rate > 0:
var color: Color
if Global.onion_skinning_blue_red:
color = blue_red_color
else:
color = Color.white
for i in range(1, rate + 1):
var change: int = Global.current_project.current_frame
if type == PAST:
change -= i
else:
change += i
if change == clamp(change, 0, Global.current_project.frames.size() - 1):
var layer_i := 0
for cel in Global.current_project.frames[change].cels:
var layer: Layer = Global.current_project.layers[layer_i]
if layer.visible:
# Ignore layer if it has the "_io" suffix in its name (case in-sensitive)
if not (layer.name.to_lower().ends_with("_io")):
color.a = 0.6 / i
draw_texture(cel.image_texture, Vector2.ZERO, color)
layer_i += 1
if rate <= 0:
return
var color := blue_red_color if Global.onion_skinning_blue_red else Color.white
var position_tmp := position
var scale_tmp := scale
if Global.mirror_view:
position_tmp.x += Global.current_project.size.x
scale_tmp.x = -1
draw_set_transform(position_tmp, rotation, scale_tmp)
for i in range(1, rate + 1):
var change: int = Global.current_project.current_frame
change += i if type == FUTURE else -i
if change == clamp(change, 0, Global.current_project.frames.size() - 1):
var layer_i := 0
for cel in Global.current_project.frames[change].cels:
var layer: Layer = Global.current_project.layers[layer_i]
if layer.visible:
# Ignore layer if it has the "_io" suffix in its name (case in-sensitive)
if not (layer.name.to_lower().ends_with("_io")):
color.a = 0.6 / i
draw_texture(cel.image_texture, Vector2.ZERO, color)
layer_i += 1
draw_set_transform(position, rotation, scale)