QCanvasOffscreenCanvas Class
QCanvasOffscreenCanvas representa un lienzo fuera de pantalla al que QCanvasPainter puede apuntar. Más...
| Cabecera: | #include <QCanvasOffscreenCanvas> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS CanvasPainter)target_link_libraries(mytarget PRIVATE Qt6::CanvasPainter) |
| Desde: | Qt 6.11 |
| Estado: | Avance técnico |
Tipos Públicos
Funciones Públicas
| QCanvasOffscreenCanvas(const QCanvasOffscreenCanvas &canvas) | |
| ~QCanvasOffscreenCanvas() | |
| void | detach() |
| QColor | fillColor() const |
| QCanvasOffscreenCanvas::Flags | flags() const |
| bool | isNull() const |
| void | setFillColor(const QColor &color) |
| QRhiTexture * | texture() const |
| QCanvasOffscreenCanvas & | operator=(const QCanvasOffscreenCanvas &canvas) |
No miembros relacionados
| bool | operator!=(const QCanvasOffscreenCanvas &lhs, const QCanvasOffscreenCanvas &rhs) |
| bool | operator==(const QCanvasOffscreenCanvas &lhs, const QCanvasOffscreenCanvas &rhs) |
Descripción detallada
Un lienzo fuera de pantalla es esencialmente un búfer de color (un QRhiTexture), y posiblemente otros recursos gráficos asociados. Una vez que el contenido se ha renderizado en el búfer de color del lienzo, éste puede enviarse registered al pintor para recuperar un QCanvasImage que puede utilizarse en llamadas a drawImage() o como un image pattern.
Para crear un lienzo fuera de pantalla, llame a QCanvasPainter::createCanvas(). Para utilizar un lienzo fuera de pantalla con comandos de dibujo, llame a la sobrecarga apropiada de QCanvasRhiPaintDriver::beginPaint() cuando trabaje con la API de nivel inferior, o a QCanvasPainterWidget::beginCanvasPainting() o QCanvasPainterItemRenderer::beginCanvasPainting() cuando utilice las clases widget o elemento de Qt Quick.
De forma similar a QCanvasImage y QCanvasBrush, QCanvasOffscreenCanvas se comparte explícitamente. Ver Implicit Data Sharing y QSharedDataPointer para más detalles.
Nota: Al igual que con QCanvasImage, un QCanvasOffscreenCanvas puede ser visto como un objeto que simplemente contiene handles. Incluso cuando se produce una separación, los recursos reales, por ejemplo, la textura subyacente y los datos de la imagen en ella, nunca son realmente copiados o duplicados. El propietario real de cualquier recurso gráfico real (por ejemplo, un QRhiTexture) es el QCanvasPainter que entregó el QCanvasOffscreenCanvas a través de createCanvas().
Un lienzo siempre pertenece al QCanvasPainter que lo creó. Destruir lienzos manualmente se hace llamando a destroyCanvas(). Sin embargo, en la mayoría de los casos esto no será necesario, ya que el pintor destruirá automáticamente cualquier lienzo durante su propia destrucción.
Documentación de tipos de miembros
enum class QCanvasOffscreenCanvas::Flag
flags QCanvasOffscreenCanvas::Flags
Especifica las banderas para el lienzo.
| Constante | Valor | Descripción |
|---|---|---|
QCanvasOffscreenCanvas::Flag::PreserveContents | 0x01 | Indica que el contenido del lienzo se conserva al pintar sobre él. Esto puede tener un efecto negativo en el rendimiento, dependiendo de la arquitectura de la GPU. Consulte QRhiTextureRenderTarget::PreserveColorContents para obtener más información. Esta opción no está disponible cuando el número de muestras es superior a 1. |
QCanvasOffscreenCanvas::Flag::MipMaps | 0x02 | Indica que la textura de fondo del lienzo debe tener habilitado el mipmapping. No es posible activar esta opción si el número de muestras es superior a 1. Ten en cuenta que la secuencia mipmap se genera al llamar a addImage() con la opción GenerateMipmaps activada. Esto implica que addImage() debe ser llamada cada vez que cambie el contenido del lienzo, para que la cadena mipmap se regenere. La generación frecuente de mipmaps puede tener un efecto negativo en el rendimiento. |
El tipo Flags es un typedef para QFlags<Flag>. Almacena una combinación OR de valores Flag.
Documentación de las funciones miembro
QCanvasOffscreenCanvas::QCanvasOffscreenCanvas(const QCanvasOffscreenCanvas &canvas)
Constructor de copias.
[noexcept] QCanvasOffscreenCanvas::~QCanvasOffscreenCanvas()
Destructor.
void QCanvasOffscreenCanvas::detach()
Si varios lienzos comparten datos comunes, esta imagen hace una copia de los datos y se desvincula del mecanismo de compartición, asegurándose de que esta imagen es la única que hace referencia a los datos.
No se hace nada si sólo hay una referencia.
Nota: El lienzo sólo contiene manejadores a los recursos gráficos subyacentes, y datos como el color de relleno. Los recursos gráficos en sí, como QRhiTexture, nunca se copian o duplican.
QColor QCanvasOffscreenCanvas::fillColor() const
Devuelve el color de relleno actual.
Véase también setFillColor().
QCanvasOffscreenCanvas::Flags QCanvasOffscreenCanvas::flags() const
Devuelve las banderas con las que se creó el lienzo.
Las banderas son inmutables y no se pueden cambiar una vez creado el lienzo.
bool QCanvasOffscreenCanvas::isNull() const
Devuelve true si este lienzo tiene datos válidos.
Normalmente siempre será true.
Véase también texture().
void QCanvasOffscreenCanvas::setFillColor(const QColor &color)
Establece el color de relleno (claro) en color.
Por defecto, se establece en el valor pasado a createCanvas().
Véase también fillColor().
QRhiTexture *QCanvasOffscreenCanvas::texture() const
Devuelve la textura que respalda este lienzo fuera de pantalla.
Véase también isNull().
QCanvasOffscreenCanvas &QCanvasOffscreenCanvas::operator=(const QCanvasOffscreenCanvas &canvas)
Asigna una copia superficial de canvas a este lienzo y devuelve una referencia a este lienzo. Para obtener más información sobre las copias superficiales, consulte la documentación sobre el uso compartido implícito de datos.
Nota: Los recursos subyacentes, los recursos gráficos como QRhiTexture, nunca se copian ni duplican.
No miembros relacionados
[noexcept] bool operator!=(const QCanvasOffscreenCanvas &lhs, const QCanvasOffscreenCanvas &rhs)
Devuelve true si el manejador del lienzo lhs es diferente de rhs; false en caso contrario.
Véase también operator==().
[noexcept] bool operator==(const QCanvasOffscreenCanvas &lhs, const QCanvasOffscreenCanvas &rhs)
Devuelve true si el manejador de lienzo lhs es igual a rhs; false en caso contrario.
Nota: Igualdad significa que los colores de relleno de los dos objetos canvas son los mismos y que hacen referencia a los mismos recursos gráficos. El contenido (datos de píxeles) no se compara.
Véase también operator!=().
© 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.