init
This commit is contained in:
34
preview/shot.gd
Normal file
34
preview/shot.gd
Normal file
@@ -0,0 +1,34 @@
|
||||
extends SceneTree
|
||||
## Lädt eine Mockup-Szene oder ein Control-Skript, macht einen Screenshot und beendet.
|
||||
## godot --path preview -s shot.gd -- mockup.gd out.png
|
||||
## Braucht ein Fenster (kein --headless). Fenstergröße aus project.godot: 1280×800.
|
||||
|
||||
func _init() -> void:
|
||||
var args := OS.get_cmdline_user_args()
|
||||
if args.size() < 2:
|
||||
printerr("Aufruf: -- szene.tscn|skript.gd out.png")
|
||||
quit(1)
|
||||
return
|
||||
var node: Node
|
||||
if args[0].ends_with(".tscn"):
|
||||
node = (load(args[0]) as PackedScene).instantiate()
|
||||
else:
|
||||
node = (load(args[0]) as GDScript).new()
|
||||
if node is Control:
|
||||
node.size = Vector2(root.size) # vor _ready, damit Kinder die Größe kennen
|
||||
root.add_child(node)
|
||||
if node is Control:
|
||||
node.set_anchors_and_offsets_preset(Control.PRESET_FULL_RECT)
|
||||
_shot(args[1])
|
||||
|
||||
func _shot(out: String) -> void:
|
||||
for i in 6:
|
||||
await process_frame
|
||||
await RenderingServer.frame_post_draw
|
||||
var err := root.get_texture().get_image().save_png(out)
|
||||
if err != OK:
|
||||
printerr("PNG-Fehler %d" % err)
|
||||
quit(1)
|
||||
return
|
||||
print("shot " + out)
|
||||
quit(0)
|
||||
Reference in New Issue
Block a user