QQuickWindow::GraphicsStateInfo Struct
struct QQuickWindow::GraphicsStateInfoBeschreibt einige der Grafikzustände des RHI zum Zeitpunkt eines Aufrufs von ` beginExternalCommands()`. Mehr...
Öffentliche Variablen
| int | currentFrameSlot |
| int | framesInFlight |
Dokumentation der Member-Variablen
int GraphicsStateInfo::currentFrameSlot
Diese Variable enthält den aktuellen Frame-Slot-Index während der Aufzeichnung eines Frames.
Wenn der Szenengraph mit Low-Level-3D-APIs wie Vulkan oder Metal gerendert wird, ist es Aufgabe von Qt, beim Start eines neuen Frames eine Blockierung sicherzustellen, sobald festgestellt wird, dass die CPU der GPU bereits um eine bestimmte Anzahl von Frames voraus ist (da der in Frame Nr. current – FramesInFlight übergebene Befehlspuffer noch nicht vollständig abgearbeitet wurde). Bei anderen Grafik-APIs wie OpenGL oder Direct 3D 11 wird diese Kontrollebene dem API-Client nicht offenbart, sondern von der Implementierung der Grafik-API selbst gehandhabt.
Im weiteren Sinne bedeutet dies auch, dass die Verwaltung der entsprechenden doppelten (oder dreifachen) Pufferung von Ressourcen, wie z. B. Puffern, dem Grafik-API-Client obliegt. In der Regel kann ein einheitlicher Puffer, dessen Daten sich zwischen den Frames ändern, seinen Inhalt beim Übermitteln eines Frames nicht einfach ändern, da der Frame möglicherweise noch aktiv („in Flight“) ist, wenn die Aufzeichnung des nächsten Frames beginnt. Um ein Blockieren der Pipeline zu vermeiden, besteht eine Möglichkeit darin, im Hintergrund mehrere Puffer (und Speicherzuweisungen) zu verwenden und so zumindest ein doppelt gepuffertes Schema für solche Ressourcen zu realisieren.
Anwendungen, die das Rendering direkt über eine Grafik-API wie Vulkan integrieren, sollten möglicherweise eine ähnliche doppelte oder dreifache Pufferung ihrer eigenen Grafikressourcen durchführen, und zwar auf eine Weise, die mit dem Frame-Übermittlungsprozess der Qt-Rendering-Engine kompatibel ist. Dazu muss man die Werte für die maximale Anzahl an „In-Flight“-Frames (typischerweise 2 oder 3) sowie den aktuellen Frame-Slot-Index kennen, bei dem es sich um eine Zahl handelt, die von 0, 1, …, FramesInFlight-1 verläuft und dann wieder von vorne beginnt. Ersterer wird über die Variable „ framesInFlight “ bereitgestellt. Letzterer, der aktuelle Index, ist dieser Wert.
Beispiele für die praktische Anwendung dieser Werte finden Sie in den Beispielen {Scene Graph – Vulkan unter QML} und {Scene Graph – Vulkan-Texturimport}.
int GraphicsStateInfo::framesInFlight
Diese Variable gibt die maximale Anzahl der Frames an, die im Flug gespeichert werden.
Eine ausführliche Beschreibung finden Sie unter currentFrameSlot.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.