@tool extends Node2D func _process(_delta: float) -> void: material.set_shader_parameter("overlay",get_parent().color_overlay) queue_redraw() func _draw() -> void: var available := get_viewport_rect().size if not Engine.is_editor_hint() else Vector2(672,768) var scale_factor := minf(available.x/224,available.y/256) # Whole-number enlargement preserves equal pixel widths whenever it fits. if scale_factor>=1: scale_factor = floorf(scale_factor) var size := Vector2(224,256)*scale_factor draw_rect(Rect2(Vector2.ZERO,available),Color.BLACK) draw_texture_rect($"../PixelScreen".get_texture(),Rect2(((available-size)*.5).floor(),size),false)