QCanvasPainterFactory Class
QCanvasPainterFactory gestiona instancias de QCanvasPainter y el motor de renderizado asociado. Más...
| Cabecera: | #include <QCanvasPainterFactory> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS CanvasPainter)target_link_libraries(mytarget PRIVATE Qt6::CanvasPainter) |
| Desde: | Qt 6.11 |
| Estado: | Avance técnico |
Funciones Públicas
| QCanvasPainterFactory() | |
| QCanvasPainter * | create(QRhi *rhi) |
| void | destroy() |
| bool | isValid() const |
| QCanvasRhiPaintDriver * | paintDriver() |
| QCanvasPainter * | painter() |
Miembros públicos estáticos
| QCanvasPainterFactory * | sharedInstance(QRhi *rhi) |
Descripción Detallada
Las aplicaciones que renderizan a través de QCanvasPainter no crean instancias de la clase painter por sí mismas, sino que se espera que utilicen un QCanvasPainterFactory.
Nota: Esta clase sólo es relevante cuando se trabaja con QCanvasPainter sin una clase de conveniencia como QCanvasPainterWidget o QCanvasPainterItem, porque éstas proporcionan una instancia de QCanvasPainter a la aplicación.
A continuación se muestra un fragmento de código de ejemplo para obtener un QCanvasPainter y utilizarlo con un QRhi inicializado correctamente:
std::unique_ptr<QCanvasPainterFactory> factory(new QCanvasPainterFactory); QCanvasPainter *painter = factory->create(rhi); QCanvasRhiPaintDriver *paintDriver = factory->paintDriver();
Se recomienda que todo el código de dibujo que opere en el mismo hilo con el mismo QRhi comparta y reutilice el mismo QCanvasPainter, en lugar de tener un pintor dedicado (y por tanto una fábrica) en cada componente. Esto puede lograrse llamando a sharedInstance(), en lugar de construir un nuevo QCanvasPainterFactory:
QCanvasPainterFactory *factory = QCanvasPainterFactory::sharedInstance(rhi); QCanvasPainter *painter = factory->painter(); QCanvasRhiPaintDriver *paintDriver = factory->paintDriver();
Documentación de Funciones Miembro
QCanvasPainterFactory::QCanvasPainterFactory()
Constructor.
Véase también sharedInstance().
QCanvasPainter *QCanvasPainterFactory::create(QRhi *rhi)
Inicializa la infraestructura de renderizado de QCanvasPainter, si no se ha hecho ya para esta fábrica.
Devuelve el pintor, o null si no se ha podido inicializar el renderizador.
La fábrica será asociada con rhi, y no podrá ser usada con ningún otro QRhi, a menos que destroy(), y luego create() sean llamados de nuevo.
Las llamadas repetidas a esta función no tienen ningún efecto y son inofensivas. Llame primero a destroy() si desea reinicializar la infraestructura del pintor, posiblemente con un rhi diferente.
Nota: No es necesario llamar a esta función cuando se ha utilizado sharedInstance() para recuperar una instancia de fábrica.
Véase también destroy(), isValid(), y painter().
void QCanvasPainterFactory::destroy()
Destruye la infraestructura de renderizado. Normalmente no hay necesidad de llamar a esta función. Más bien se utiliza en situaciones en las que irá seguida de create().
Véase también create().
bool QCanvasPainterFactory::isValid() const
Devuelve true si se ha llamado con éxito a create().
QCanvasRhiPaintDriver *QCanvasPainterFactory::paintDriver()
Devuelve el objeto controlador de pintura, o null si isValid() es false.
Nota: El objeto devuelto no es propiedad de la persona que llama.
QCanvasPainter *QCanvasPainterFactory::painter()
Devuelve el pintor, o null si isValid() es false.
Nota: El objeto devuelto no es propiedad de la persona que llama.
[static] QCanvasPainterFactory *QCanvasPainterFactory::sharedInstance(QRhi *rhi)
Devuelve una instancia de QCanvasPainterFactory asociada a la dirección rhi.
Al llamar a esta función con el mismo rhi siempre se devolverá el mismo QCanvasPainterFactory.
No hay necesidad de llamar a create() en la fábrica devuelta, y el painter() puede ser consultado de inmediato, porque el resultado es siempre ya inicializado, lo que significa isValid() devuelve true.
Esta función es thread safe. Sin embargo, las reglas de hilos de QRhi se aplican como de costumbre: un objeto QRhi, y por extensión, una instancia de QCanvasPainterFactory, QCanvasRhiPaintDriver, y QCanvasPainter asociada con ese QRhi se espera que todos sean utilizados en el mismo un único hilo.
Nota: El QCanvasPainterFactory devuelto no es propiedad de quien lo llama, y deja de ser válido cuando se destruye rhi.
Véase también painter().
© 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.