Sur cette page

QCanvasOffscreenCanvas Class

QCanvasOffscreenCanvas représente un canevas hors écran que la fonction « QCanvasPainter » peut cibler. En savoir plus...

En-tête : #include <QCanvasOffscreenCanvas>
CMake : find_package(Qt6 REQUIRED COMPONENTS CanvasPainter)
target_link_libraries(mytarget PRIVATE Qt6::CanvasPainter)
Depuis : Qt 6.11

Types publics

enum class Flag { PreserveContents, MipMaps }
flags Flags

Fonctions publiques

QCanvasOffscreenCanvas(const QCanvasOffscreenCanvas &canvas)
QCanvasOffscreenCanvas(QCanvasOffscreenCanvas &&other)
~QCanvasOffscreenCanvas()
QColor fillColor() const
QCanvasOffscreenCanvas::Flags flags() const
int height() const
bool isNull() const
void setFillColor(QColor color)
QSize size() const
QRhiTexture *texture() const
int width() const
QCanvasOffscreenCanvas &operator=(const QCanvasOffscreenCanvas &canvas)
bool operator!=(const QCanvasOffscreenCanvas &lhs, const QCanvasOffscreenCanvas &rhs)
bool operator==(const QCanvasOffscreenCanvas &lhs, const QCanvasOffscreenCanvas &rhs)

Description détaillée

Un canevas hors écran est essentiellement un tampon de couleurs (un QRhiTexture), et éventuellement d’autres ressources graphiques associées. Une fois le contenu rendu dans le tampon de couleurs du canevas, celui-ci peut être registered au peintre afin de récupérer un QCanvasImage qui peut ensuite être utilisé dans des appels à drawImage() ou en tant qu’ image pattern.

Pour créer un canevas hors écran, appelez ` QCanvasPainter::createCanvas()`. Pour cibler un canevas hors écran avec des commandes de dessin, appelez la surcharge appropriée de ` QCanvasRhiPaintDriver::beginPaint()` lorsque vous utilisez l’API de bas niveau, ou ` QCanvasPainterWidget::beginCanvasPainting()` ou ` QCanvasPainterItemRenderer::beginCanvasPainting()` lorsque vous utilisez les classes de widgets de commodité ou d’éléments ` Qt Quick `.

À l’instar de ` QCanvasImage ` et ` QCanvasBrush`, `QCanvasOffscreenCanvas` est explicitement partagé. Voir Partage implicite des données et ` QSharedDataPointer ` pour plus de détails.

Remarque : comme pour QCanvasImage, un QCanvasOffscreenCanvas peut être considéré comme un objet contenant simplement des descripteurs. Même en cas de détachement, les ressources réelles, par exemple la texture sous-jacente et les données d’image qu’elle contient, ne sont jamais réellement copiées ni dupliquées. Le véritable propriétaire de toute ressource graphique réelle (par exemple, un ` QRhiTexture`) est l’` QCanvasPainter ` qui a fourni le `QCanvasOffscreenCanvas` via ` createCanvas()`().

Un canevas appartient toujours à l’ QCanvasPainter e qui l’a créé. La destruction manuelle des canevas s’effectue en appelant la fonction destroyCanvas(). Dans la plupart des cas, cela ne sera toutefois pas nécessaire, car le peintre détruira automatiquement tous les canevas lors de sa propre destruction.

Documentation sur les types de membres

enum class QCanvasOffscreenCanvas::Flag
flags QCanvasOffscreenCanvas::Flags

Spécifie les indicateurs pour le canevas.

ConstanteValeurDescription
QCanvasOffscreenCanvas::Flag::PreserveContents0x01Indique que le contenu du canevas est conservé lors de l'écriture dessus. Cela peut avoir un impact négatif sur les performances, selon l'architecture du GPU. Voir QRhiTextureRenderTarget::PreserveColorContents pour plus de détails. La définition de cet indicateur n'est pas prise en charge lorsque le nombre d'échantillons est supérieur à 1.
QCanvasOffscreenCanvas::Flag::MipMaps0x02Indique que le mipmapping doit être activé pour la texture de fond du canevas. La définition de cet indicateur n’est pas prise en charge lorsque le nombre d’échantillons est supérieur à 1. Notez que la séquence de mipmaps est générée lors de l’appel de la fonction addImage() avec l’indicateur GenerateMipmaps activé. Cela implique que la fonction addImage() doit être appelée à chaque fois que le contenu du canevas change, afin que la chaîne de mipmaps soit régénérée. Une génération fréquente de mipmaps peut avoir un effet négatif sur les performances.

Le type Flags est un typedef de QFlags<Flag>. Il stocke une combinaison OR de valeurs Flag.

Documentation des fonctions membres

QCanvasOffscreenCanvas::QCanvasOffscreenCanvas(const QCanvasOffscreenCanvas &canvas)

Constructeur de copie.

[constexpr noexcept default] QCanvasOffscreenCanvas::QCanvasOffscreenCanvas(QCanvasOffscreenCanvas &&other)

Crée par « move » une instance de ` QCanvasOffscreenCanvas`.

[noexcept] QCanvasOffscreenCanvas::~QCanvasOffscreenCanvas()

Destructeur.

QColor QCanvasOffscreenCanvas::fillColor() const

Renvoie la couleur de remplissage actuelle.

Voir aussi setFillColor().

QCanvasOffscreenCanvas::Flags QCanvasOffscreenCanvas::flags() const

Renvoie les indicateurs utilisés lors de la création du canevas.

Ces indicateurs sont immuables et ne peuvent pas être modifiés une fois le canevas créé.

int QCanvasOffscreenCanvas::height() const

Renvoie la hauteur de ce canevas en pixels.

Voir également width() et size().

bool QCanvasOffscreenCanvas::isNull() const

Renvoie « true » si ce canevas contient des données valides.

En règle générale, cette valeur est toujours vraie.

Voir également texture().

void QCanvasOffscreenCanvas::setFillColor(QColor color)

Définit la couleur de remplissage (transparente) sur color.

Par défaut, cette valeur correspond à celle transmise à la fonction createCanvas().

Voir également fillColor().

QSize QCanvasOffscreenCanvas::size() const

Renvoie les dimensions (largeur et hauteur) de ce canevas en pixels.

Voir également width() et height().

QRhiTexture *QCanvasOffscreenCanvas::texture() const

Renvoie la texture associée à ce canevas hors écran.

Voir aussi isNull().

int QCanvasOffscreenCanvas::width() const

Renvoie la largeur de ce canevas en pixels.

Voir également height() et size().

QCanvasOffscreenCanvas &QCanvasOffscreenCanvas::operator=(const QCanvasOffscreenCanvas &canvas)

Attribue une copie superficielle de l'canvas indiquée à ce canevas et renvoie une référence à ce canevas. Pour plus d'informations sur les copies superficielles, consultez la documentation relative au partage implicite des données.

Remarque : les ressources sous-jacentes, à savoir les ressources graphiques telles que l’ QRhiTexture, ne sont jamais copiées ni dupliquées.

Éléments non membres associés

[noexcept] bool operator!=(const QCanvasOffscreenCanvas &lhs, const QCanvasOffscreenCanvas &rhs)

Renvoie « true » si le descripteur du canevas lhs est différent de rhs; « false » dans le cas contraire.

Voir également operator==().

[noexcept] bool operator==(const QCanvasOffscreenCanvas &lhs, const QCanvasOffscreenCanvas &rhs)

Renvoie « true » si le descripteur du canevas lhs est égal à rhs; « false » dans le cas contraire.

Remarque : l'égalité signifie que les couleurs de remplissage des deux objets canvas sont identiques et qu'ils font référence aux mêmes ressources graphiques. Le contenu (données de pixels) n'est pas comparé.

Voir également 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.