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
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) |
Éléments non membres associés
| 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.
| Constante | Valeur | Description |
|---|---|---|
QCanvasOffscreenCanvas::Flag::PreserveContents | 0x01 | Indique 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::MipMaps | 0x02 | Indique 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.