generated from krampus/template-godot4
23 lines
371 B
GDScript3
23 lines
371 B
GDScript3
|
class_name DrawController extends Control
|
||
|
|
||
|
var _draw_queue: Array[Callable] = []
|
||
|
|
||
|
var _dirty := true
|
||
|
|
||
|
|
||
|
func queue_draw(op: Callable) -> void:
|
||
|
_draw_queue.push_back(op)
|
||
|
_dirty = true
|
||
|
|
||
|
|
||
|
func _draw() -> void:
|
||
|
while _draw_queue:
|
||
|
var op: Callable = _draw_queue.pop_front()
|
||
|
op.call()
|
||
|
|
||
|
|
||
|
func _process(_delta: float) -> void:
|
||
|
if _dirty:
|
||
|
queue_redraw()
|
||
|
_dirty = false
|