QQuickWindow::GraphicsStateInfo Struct
struct QQuickWindow::GraphicsStateInfoDescribe parte del estado de los gráficos de RHI en el momento de una llamada a beginExternalCommands(). Más...
Variables públicas
| int | currentFrameSlot |
| int | framesInFlight |
Documentación de variables de miembros
int GraphicsStateInfo::currentFrameSlot
Esta variable contiene el índice de ranura de fotograma actual mientras se graba un fotograma.
Cuando el scenegraph renderiza con APIs 3D de bajo nivel como Vulkan o Metal, es responsabilidad de Qt asegurar el bloqueo cada vez que se inicia un nuevo frame y se encuentra que la CPU ya está un cierto número de frames por delante de la GPU (porque el buffer de comandos enviado en el frame nº current - FramesInFlight aún no se ha completado). Con otras API de gráficos, como OpenGL o Direct 3D 11, este nivel de control no se expone al cliente de la API, sino que lo gestiona la implementación de la API de gráficos.
Por extensión, esto también significa que la gestión del doble (o triple) almacenamiento en búfer de recursos, como los búferes, depende del cliente de la API gráfica. Lo más habitual es que un búfer uniforme en el que los datos cambian entre fotogramas no pueda simplemente cambiar su contenido al enviar un fotograma, dado que el fotograma puede estar aún activo ("en vuelo") al comenzar a grabar el siguiente fotograma. Para evitar que se atasque el pipeline, una forma es disponer de múltiples buffers (y asignaciones de memoria) bajo el capó, realizando así al menos un esquema de doble buffer para dichos recursos.
Las aplicaciones que integran renderizado hecho directamente con una API gráfica como Vulkan pueden querer realizar un doble o triple buffering similar de sus propios recursos gráficos, de forma que sea compatible con el proceso de envío de frames del motor de renderizado Qt. Esto implica conocer los valores para el número máximo de fotogramas en vuelo (que es típicamente 2 o 3) y el índice de ranura de fotograma actual, que es un número que va de 0, 1, .., FramesInFlight-1, y luego se envuelve alrededor. El primero se expone en la variable framesInFlight. El segundo, índice actual, es este valor.
Para un ejemplo de uso de estos valores en la práctica, consulte los ejemplos {Gráfico de escena - Vulkan bajo QML} y {Gráfico de escena - Importación de texturas Vulkan}.
int GraphicsStateInfo::framesInFlight
Esta variable contiene el número máximo de fotogramas mantenidos en vuelo.
Consulte currentFrameSlot para obtener una descripción detallada.
© 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.