61 lines
2.1 KiB
GDScript
61 lines
2.1 KiB
GDScript
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://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)
|