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