Grafik & Rendering

AURA verwendet SDL3 für Fenster und Eingabe und Skia für 2D-Grafik und Text. Der eigene C++-Szenengraph verbindet Layout, Interaktion, Animation und Medien.

Grafikbasis

Aufbau

Datei Inhalt
application.h Fenster, GL-Kontext, Skia-GPU-Surface, Event- und Render-Schleife, Offscreen-PNG
node.h Scenegraph: Node, RectNode, ImageNode, SvgNode, TextNode, ScrollNode
layout.h Anker wie in QML (place(node).left(44).below(title, 30)), gridCell für Raster
animation.h Tweens mit Easing (Linear, InOutCubic, InOutQuint, OutQuad, OutBounce); an den Ziel-Node gebunden, stoppen sie mit dessen Löschung
resources.h Cache für Bilder, SVGs und die von der Anwendung bereitgestellten Schriften
video.h VideoPlayer (WebM/VP9, ohne Ton, Playlist mit Endlosschleife) und VideoNode

Layout (aura/ui/layout.h)

Die Anker von QML ohne Bindings: Ein Node wird einmal relativ zu seinem Parent oder zu einem Geschwister-Node (gleicher Parent) gesetzt.

qml
Text title {
    text: "AURA"
    pixelSize: 28
    place: left 44, top 44
}
Text subtitle {
    text: "Application UI Runtime Architecture"
    pixelSize: 18
    place: left 44, below title 30
}
Aufruf Bedeutung
left/right/top/bottom(m) Abstand zum Rand des Parents (right/bottom brauchen die eigene Größe)
centerX/centerY(offset), center() im Parent zentriert, auf ganze Pixel gerundet wie die alten Layouts
below/above/rightOf/leftOf(sibling, spacing) neben einem Geschwister-Node
alignLeft/alignTop/alignBottom(sibling), centerXOn/centerYOn(sibling) an einem Geschwister-Node ausgerichtet
size(w, h) Größe setzen (vor allem vor right, bottom und center)

Hintergrundarbeit

Text

Video

Offscreen-Screenshots

Application::renderToPng(root, width, height, file) rendert eine Szene ohne Fenster als PNG. Das Hello-Beispiel und die Galerie stellen passende Kommandozeilen bereit:

bash
build/dev/examples/hello/aura-hello --render hello.png
build/dev/examples/demo/aura-demo --render-all /tmp/aura-gallery
build/dev/tools/aura-view/aura-view examples/hello --render /tmp/hello.png

Siehe aura-view für Preview-Galerien und Tests für visuelle Vergleiche.

Dokumentationsquelle: docs/graphics.md · Markdown herunterladen

Suche nach Themen, Widgets oder APIs.