extends SceneTree ## Beweis-Probe (Karte t_2336c58e, WEGWERF — nicht Teil der Suite): ## U7 Feinschliff — Screenshot der GANZEN Oberfläche (vorher/nachher je ## Baumzustand). Bibliothek „Alle auf" + erste Gruppe offen, damit die ## Kacheln im Bild sind. ## Aufruf: xvfb-run -a godot4 --path . --rendering-driver opengl3 \ ## -s res://tests/probe_u7_theme_render.gd (mit ../scopedvr-client) func _initialize() -> void: _run.call_deferred() func _shot(pfad: String) -> void: await process_frame await RenderingServer.frame_post_draw var img := root.get_viewport().get_texture().get_image() img.save_png(pfad) print("Bild: %s (%dx%d)" % [pfad, img.get_width(), img.get_height()]) ## „Modelle fehlen"-AcceptDialog schließen (kommt erst nach 2 Frames von ## utils/modelle_status.gd — mehrfach probieren, mit Wartezeit dazwischen). func _dismiss_dialogs() -> void: for i in 6: await process_frame var stack: Array = [root] while not stack.is_empty(): var n: Node = stack.pop_back() if n is AcceptDialog: (n as AcceptDialog).hide() n.queue_free() stack.append_array(n.get_children()) func _run() -> void: var dir := OS.get_environment("U7_DIR") if dir.is_empty(): dir = "/tmp/u7_beweise" DirAccess.make_dir_recursive_absolute(dir) var name := "u7_ui_%s.png" % str(OS.get_environment("U7_MODUS")) var scene: PackedScene = load("res://core/scenes/main.tscn") var main = scene.instantiate() root.add_child(main) await process_frame await process_frame await _dismiss_dialogs() DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED) DisplayServer.window_set_size(Vector2i(2328, 1310)) await process_frame await process_frame # Bibliothek sichtbar füllen: „Alle auf" (der Klick feuert toggled an den # Gruppen-Headern → Körper sichtbar; der cfg-Schrieb läuft in eine # hermetische HOME-Umgebung, siehe Startkommando). var open_btn: Button = main.library_open_all_btn if open_btn != null: open_btn.pressed.emit() await process_frame await process_frame await _shot(dir.path_join(name)) print("PROBE_U7_OK dir=%s" % dir) quit(0)