Skip to content

Commit

Permalink
Chunk: 优化渲染性能
Browse files Browse the repository at this point in the history
  • Loading branch information
LaneSun committed Mar 7, 2024
1 parent fafc353 commit 5b586e3
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 4 deletions.
2 changes: 1 addition & 1 deletion lib/sekai/defines/chunk.gd
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,7 @@ static func update_control(ctx: LisperContext, this: Mono, ctrl: SekaiControl) -
item.on_draw.connect(func ():
for mono in lconts:
if mono.inited:
mono.applym(ctx, &"on_draw", [ctrl, item])
mono.callf_on_draw(ctx, ctrl, item)
else:
var mpos := mono.position as Vector3
var pos := Vector2(mpos.x, mpos.y - mpos.z * item.ratio_yz)
Expand Down
13 changes: 10 additions & 3 deletions lib/sekai/mono/mono.gsm.gd
Original file line number Diff line number Diff line change
Expand Up @@ -618,11 +618,11 @@ func applym(ctx: LisperContext, key: StringName, argv: Array) -> Variant:
vargv.append_array(argv)
var value = null
var data = define._props.get(key)
if data is Callable:
value = await data.callv(vargv)
elif data is Array:
if data is Array:
for entry in data.duplicate():
value = await entry[1].callv(vargv)
elif data is Callable:
value = await data.callv(vargv)
var lidx = layers.size() - 1
while lidx >= 0:
data = layers[lidx][1].get(key)
Expand All @@ -634,6 +634,13 @@ func applym(ctx: LisperContext, key: StringName, argv: Array) -> Variant:
lidx -= 1
return value

func callf_on_draw(ctx: LisperContext, ctrl: SekaiControl, item: SekaiItem) -> void:
for entry in define._props[&"on_draw"]:
entry[1].call(ctx, self, ctrl, item)
for layer in layers:
for entry in layer[1].get(&"on_draw", []):
entry[1].call(ctx, self, ctrl, item)

func applymS(ctx: LisperContext, key: StringName, argv: Array) -> Variant:
var vargv := [ctx, self]
vargv.append_array(argv)
Expand Down

0 comments on commit 5b586e3

Please sign in to comment.