QCanvasOffscreenCanvas Class
QCanvasOffscreenCanvas représente un canevas hors écran que QCanvasPainter peut cibler. Plus...
| En-tête : | #include <QCanvasOffscreenCanvas> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS CanvasPainter)target_link_libraries(mytarget PRIVATE Qt6::CanvasPainter) |
| Depuis : | Qt 6.11 |
| Statut : | Aperçu technique |
Types publics
Fonctions publiques
| 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) |
Non-membres apparenté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 ( QRhiTexture) et éventuellement d'autres ressources graphiques associées. Une fois que le contenu a été rendu dans le tampon de couleurs du canevas, celui-ci peut être registered au peintre pour récupérer un QCanvasImage qui peut ensuite être utilisé dans les appels drawImage() ou en tant que 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 QCanvasRhiPaintDriver::beginPaint() appropriée si vous travaillez avec l'API de niveau inférieur, ou QCanvasPainterWidget::beginCanvasPainting() ou QCanvasPainterItemRenderer::beginCanvasPainting() si vous utilisez les classes de widget de commodité ou d'élément Qt Quick.
Comme pour QCanvasImage et QCanvasBrush, QCanvasOffscreenCanvas est explicitement partagé. Voir Implicit Data Sharing et QSharedDataPointer pour plus de détails.
Note : Comme pour QCanvasImage, un QCanvasOffscreenCanvas peut être considéré comme un objet contenant simplement des poignées. Même lorsqu'un détachement se produit, 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 ou dupliquées. Le propriétaire réel de toute ressource graphique réelle (par exemple, un QRhiTexture) est le QCanvasPainter qui a distribué le QCanvasOffscreenCanvas via createCanvas().
Un canevas appartient toujours au QCanvasPainter qui l'a créé. La destruction manuelle des canevas se fait en appelant destroyCanvas(). Dans la plupart des cas, cela ne sera pas nécessaire, car le peintre détruira automatiquement tous les canevas lors de sa propre destruction.
Documentation des types de membres
enum class QCanvasOffscreenCanvas::Flag
flags QCanvasOffscreenCanvas::Flags
Spécifie les drapeaux pour le canevas.
| Constante | Valeur | Description |
|---|---|---|
QCanvasOffscreenCanvas::Flag::PreserveContents | 0x01 | Indique que le contenu du canevas est préservé lorsque l'on peint dessus. Cela peut avoir un effet négatif sur les performances, en fonction de l'architecture du GPU. Voir QRhiTextureRenderTarget::PreserveColorContents pour plus de détails. La définition de ce drapeau 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 d'arrière-plan de la toile. La mise en place de cet indicateur n'est pas prise en charge lorsque le nombre d'échantillons est supérieur à 1. Notez que la séquence mipmap est générée lors de l'appel à addImage() avec l'indicateur GenerateMipmaps activé. Cela implique que addImage() doit être appelée à chaque fois que le contenu de la toile change, afin que la chaîne de mipmaps soit régénérée. La génération fréquente de mipmaps peut avoir un effet négatif sur les performances. |
Le type Flags est un typedef pour QFlags<Flag>. Il stocke une combinaison OU de valeurs de drapeaux.
Documentation des fonctions membres
QCanvasOffscreenCanvas::QCanvasOffscreenCanvas(const QCanvasOffscreenCanvas &canvas)
Constructeur de copies.
[noexcept] QCanvasOffscreenCanvas::~QCanvasOffscreenCanvas()
Destructeur.
void QCanvasOffscreenCanvas::detach()
Si plusieurs toiles partagent des données communes, cette image fait une copie des données et se détache du mécanisme de partage, en s'assurant que cette image est la seule à faire référence aux données.
Rien n'est fait s'il n'y a qu'une seule référence.
Remarque : le canevas ne contient que des poignées vers les ressources graphiques sous-jacentes et des données telles que la couleur de remplissage. Les ressources graphiques elles-mêmes, telles que QRhiTexture, ne sont jamais copiées ou dupliquées.
QColor QCanvasOffscreenCanvas::fillColor() const
Renvoie la couleur de remplissage actuelle.
Voir aussi setFillColor().
QCanvasOffscreenCanvas::Flags QCanvasOffscreenCanvas::flags() const
Renvoie les drapeaux avec lesquels le canevas a été créé.
Les drapeaux sont immuables et ne peuvent pas être modifiés une fois que le canevas a été créé.
bool QCanvasOffscreenCanvas::isNull() const
Renvoie un message indiquant que les données de ce canevas sont valides.
Normalement, ce sera toujours vrai.
Voir aussi texture().
void QCanvasOffscreenCanvas::setFillColor(const QColor &color)
Définit la couleur de remplissage (transparente) à color.
Par défaut, cette couleur est définie par la valeur transmise à createCanvas().
Voir aussi fillColor().
QRhiTexture *QCanvasOffscreenCanvas::texture() const
Renvoie la texture qui recouvre ce canevas hors écran.
Voir aussi isNull().
QCanvasOffscreenCanvas &QCanvasOffscreenCanvas::operator=(const QCanvasOffscreenCanvas &canvas)
Affecte à ce canevas une copie peu profonde de l'adresse canvas donnée et renvoie une référence à ce canevas. Pour plus d'informations sur les copies superficielles, voir la documentation sur le partage implicite des données.
Remarque : les ressources sous-jacentes, les ressources graphiques telles que QRhiTexture, ne sont jamais copiées ou dupliquées.
Non-membres apparentés
[noexcept] bool operator!=(const QCanvasOffscreenCanvas &lhs, const QCanvasOffscreenCanvas &rhs)
Renvoie true si la poignée du canevas lhs est différente de rhs; false sinon.
Voir aussi operator==().
[noexcept] bool operator==(const QCanvasOffscreenCanvas &lhs, const QCanvasOffscreenCanvas &rhs)
Renvoie true si l'objet 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 en 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.