Sur cette page

QQuickRenderTarget Class

La classe `QQuickRenderTarget` fournit un conteneur opaque pour les ressources graphiques natives, permettant de spécifier une cible de rendu ainsi que les métadonnées associées. En savoir plus...

En-tête : #include <QQuickRenderTarget>
CMake : find_package(Qt6 REQUIRED COMPONENTS Quick)
target_link_libraries(mytarget PRIVATE Qt6::Quick)
qmake : QT += quick
Depuis : Qt 6.0

Types publics

(since 6.8) enum class Flag { MultisampleResolve }
flags Flags

Fonctions publiques

QQuickRenderTarget()
~QQuickRenderTarget()
(since 6.8) QRhiTexture *depthTexture() const
(since 6.3) qreal devicePixelRatio() const
bool isNull() const
(since 6.4) bool mirrorVertically() const
(since 6.8) void setDepthTexture(QRhiTexture *texture)
(since 6.3) void setDevicePixelRatio(qreal ratio)
(since 6.4) void setMirrorVertically(bool enable)

Membres publics statiques

(since 6.4) QQuickRenderTarget fromD3D11Texture(void *texture, uint format, const QSize &pixelSize, int sampleCount = 1)
QQuickRenderTarget fromD3D11Texture(void *texture, const QSize &pixelSize, int sampleCount = 1)
(since 6.8) QQuickRenderTarget fromD3D11Texture(void *texture, uint format, QSize pixelSize, int sampleCount, QQuickRenderTarget::Flags flags)
(since 6.6) QQuickRenderTarget fromD3D12Texture(void *texture, int resourceState, uint format, const QSize &pixelSize, int sampleCount = 1)
(since 6.8) QQuickRenderTarget fromD3D12Texture(void *texture, int resourceState, uint format, uint viewFormat, QSize pixelSize, int sampleCount, int arraySize, QQuickRenderTarget::Flags flags)
(since 6.4) QQuickRenderTarget fromMetalTexture(MTLTexture *texture, uint format, const QSize &pixelSize, int sampleCount = 1)
QQuickRenderTarget fromMetalTexture(MTLTexture *texture, const QSize &pixelSize, int sampleCount = 1)
(since 6.8) QQuickRenderTarget fromMetalTexture(MTLTexture *texture, uint format, uint viewFormat, QSize pixelSize, int sampleCount, int arraySize, QQuickRenderTarget::Flags flags)
(since 6.2) QQuickRenderTarget fromOpenGLRenderBuffer(uint renderbufferId, const QSize &pixelSize, int sampleCount = 1)
(since 6.4) QQuickRenderTarget fromOpenGLTexture(uint textureId, uint format, const QSize &pixelSize, int sampleCount = 1)
QQuickRenderTarget fromOpenGLTexture(uint textureId, const QSize &pixelSize, int sampleCount = 1)
(since 6.8) QQuickRenderTarget fromOpenGLTexture(uint textureId, uint format, QSize pixelSize, int sampleCount, int arraySize, QQuickRenderTarget::Flags flags)
(since 6.4) QQuickRenderTarget fromPaintDevice(QPaintDevice *device)
(since 6.6) QQuickRenderTarget fromRhiRenderTarget(QRhiRenderTarget *renderTarget)
(since 6.4) QQuickRenderTarget fromVulkanImage(VkImage image, VkImageLayout layout, VkFormat format, const QSize &pixelSize, int sampleCount = 1)
QQuickRenderTarget fromVulkanImage(VkImage image, VkImageLayout layout, const QSize &pixelSize, int sampleCount = 1)
(since 6.8) QQuickRenderTarget fromVulkanImage(VkImage image, VkImageLayout layout, VkFormat format, VkFormat viewFormat, QSize pixelSize, int sampleCount, int arraySize, QQuickRenderTarget::Flags flags)
bool operator!=(const QQuickRenderTarget &a, const QQuickRenderTarget &b)
bool operator==(const QQuickRenderTarget &a, const QQuickRenderTarget &b)

Description détaillée

Voir également QQuickWindow::setRenderTarget() et QQuickGraphicsDevice.

Documentation sur les types de membres

[since 6.8] enum class QQuickRenderTarget::Flag
flags QQuickRenderTarget::Flags

Indicateurs pour les fonctions de construction statiques d’ QQuickRenderTarget.

ConstanteValeurDescription
QQuickRenderTarget::Flag::MultisampleResolve0x01Indique que l’argument ` sampleCount ` ne correspond pas au nombre d’échantillons de la texture fournie (et que la texture reste une texture non multi-échantillonnée), mais plutôt au nombre d’échantillons souhaité pour l’anticrénelage multi-échantillon. Déclenche la création et la gestion automatiques d’une texture multi-échantillon intermédiaire (ou d’un tableau de textures) servant de tampon de couleur, de manière transparente pour l’application. Les échantillons sont automatiquement résolus dans la texture fournie à la fin du passage de rendu. Lorsque cet indicateur n’est pas activé et que l’argument ` sampleCount ` est supérieur à 1, cela implique que la texture fournie est multisample. L’indicateur n’a aucun effet si ` sampleCount ` est égal à 1 (ce qui indique qu’il n’y a pas de multisampling).

Cette énumération a été introduite dans Qt 6.8.

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

Documentation des fonctions membres

QQuickRenderTarget::QQuickRenderTarget()

Crée un objet `QQuickRenderTarget` par défaut qui ne fait référence à aucun objet natif.

[noexcept] QQuickRenderTarget::~QQuickRenderTarget()

Destructeur.

[since 6.8] QRhiTexture *QQuickRenderTarget::depthTexture() const

Renvoie la texture de profondeur actuellement définie ou, dans la plupart des cas, ` nullptr`.

La valeur n'est différente de null que si la fonction setDepthTexture() a été appelée.

Cette fonction a été introduite dans Qt 6.8.

Voir également setDepthTexture().

[since 6.3] qreal QQuickRenderTarget::devicePixelRatio() const

Renvoie le rapport de pixels de l'appareil pour la cible de rendu. Il s'agit du rapport entre les pixels de l'appareil et les pixels indépendants de l'appareil.

Le rapport de pixels de l'appareil par défaut est 1,0.

Cette fonction a été introduite dans Qt 6.3.

Voir également setDevicePixelRatio().

[static, since 6.4] QQuickRenderTarget QQuickRenderTarget::fromD3D11Texture(void *texture, uint format, const QSize &pixelSize, int sampleCount = 1)

Renvoie un nouvel objet ` QQuickRenderTarget ` faisant référence à un objet de texture D3D11 spécifié par ` texture`.

format spécifie le format DXGI_FORMAT de la texture. Seuls les formats de texture pris en charge par l’infrastructure de rendu de Qt doivent être utilisés.

pixelSize Spécifie la taille de l’image, en pixels. Actuellement, seules les textures 2D sont prises en charge.

sampleCount Spécifie le nombre d’échantillons. La valeur 0 ou 1 signifie qu’il n’y a pas de multi-échantillonnage, tandis qu’une valeur telle que 4 ou 8 indique que l’objet natif est une texture multi-échantillonnée.

La texture est utilisée comme première attache de couleur de la cible de rendu utilisée par le graphe de scène d’ Qt Quick. Un tampon de profondeur-stencil, le cas échéant, est créé et utilisé automatiquement.

Remarque : l’ QQuickRenderTarget e résultante ne possède aucune ressource native ; elle contient simplement des références et les métadonnées associées concernant la taille et le nombre d’échantillons. Il incombe à l’appelant de s’assurer que la ressource native existe aussi longtemps que nécessaire.

Cette fonction a été introduite dans Qt 6.4.

Voir également ` QQuickWindow::setRenderTarget()` et ` QQuickRenderControl`.

[static] QQuickRenderTarget QQuickRenderTarget::fromD3D11Texture(void *texture, const QSize &pixelSize, int sampleCount = 1)

Renvoie un nouvel objet ` QQuickRenderTarget ` faisant référence à un objet de texture D3D11 spécifié par ` texture`. On suppose que la texture a le format `DXGI_FORMAT_R8G8B8A8_UNORM`.

pixelSize Spécifie la taille de l'image, en pixels. Actuellement, seules les textures 2D sont prises en charge.

sampleCount Spécifie le nombre d’échantillons. Une valeur de 0 ou 1 signifie qu’il n’y a pas de multi-échantillonnage, tandis qu’une valeur telle que 4 ou 8 indique que l’objet natif est une texture multi-échantillonnée.

La texture est utilisée comme première attache de couleur de la cible de rendu utilisée par le graphe de scène de l’ Qt Quick. Un tampon de profondeur-stencil, le cas échéant, est créé et utilisé automatiquement.

Remarque : l’ QQuickRenderTarget e résultante ne possède aucune ressource native ; elle contient simplement des références et les métadonnées associées concernant la taille et le nombre d’échantillons. Il incombe à l’appelant de s’assurer que la ressource native existe aussi longtemps que nécessaire.

Il s’agit d’une fonction surchargée.

Voir également QQuickWindow::setRenderTarget() et QQuickRenderControl.

[static, since 6.8] QQuickRenderTarget QQuickRenderTarget::fromD3D11Texture(void *texture, uint format, QSize pixelSize, int sampleCount, QQuickRenderTarget::Flags flags)

Renvoie un nouvel objet ` QQuickRenderTarget ` faisant référence à un objet de texture D3D11 spécifié par ` texture`.

format spécifie le format DXGI_FORMAT de la texture. Seuls les formats de texture pris en charge par l'infrastructure de rendu de Qt doivent être utilisés.

pixelSize Spécifie la taille de l’image, en pixels. Actuellement, seules les textures 2D sont prises en charge.

sampleCount Spécifie le nombre d’échantillons. 0 ou 1 signifie qu’il n’y a pas de multisampling, tandis qu’une valeur telle que 4 ou 8 indique que l’objet natif est une texture multisample, sauf lorsque ` flags ` contient ` MultisampleResolve`. Dans ce cas, ` texture ` est supposé être une texture 2D sans multisampling et ` sampleCount ` définit le nombre d’échantillons souhaité. L’ QQuickRenderTarget e résultante utilisera une texture multisample intermédiaire, créée automatiquement, comme attachement de couleur, et résoudra les échantillons en texture. Il s’agit de l’approche recommandée pour effectuer un MSAA lorsque la texture native n’est pas déjà multisample.

La texture est utilisée comme première attache de couleur de la cible de rendu utilisée par le graphe de scène Qt Quick. Un tampon de profondeur-stencil, le cas échéant, est créé et utilisé automatiquement. Lorsque le tampon de couleur est multisample, le tampon de profondeur-stencil le devient automatiquement aussi.

Remarque : l’ QQuickRenderTarget qui en résulte ne possède aucune ressource native ; elle contient simplement des références ainsi que les métadonnées associées concernant la taille et le nombre d’échantillons. Il incombe à l’appelant de s’assurer que la ressource native existe aussi longtemps que nécessaire.

Il s’agit d’une fonction surchargée.

Cette fonction a été introduite dans Qt 6.8.

Voir également ` QQuickWindow::setRenderTarget()`, ` QQuickRenderControl` et ` fromD3D11Texture()`.

[static, since 6.6] QQuickRenderTarget QQuickRenderTarget::fromD3D12Texture(void *texture, int resourceState, uint format, const QSize &pixelSize, int sampleCount = 1)

Renvoie un nouvel objet ` QQuickRenderTarget ` faisant référence à un objet de texture D3D12 spécifié par ` texture`.

resourceState doit être un masque de bits valide contenant des bits issus de D3D12_RESOURCE_STATES, spécifiant l'état actuel de la ressource.

format spécifie le format DXGI_FORMAT de la texture. Seuls les formats de texture pris en charge par l’infrastructure de rendu de Qt doivent être utilisés.

pixelSize Spécifie la taille de l’image, en pixels. Actuellement, seules les textures 2D sont prises en charge.

sampleCount Spécifie le nombre d’échantillons. Une valeur de 0 ou 1 signifie qu’il n’y a pas de multi-échantillonnage, tandis qu’une valeur telle que 4 ou 8 indique que l’objet natif est une texture multi-échantillonnée.

La texture est utilisée comme première attache de couleur de la cible de rendu utilisée par le graphe de scène de l'Qt Quick. Un tampon de profondeur-stencil, le cas échéant, est créé et utilisé automatiquement.

Remarque : l’ QQuickRenderTarget e résultante ne possède aucune ressource native ; elle contient simplement des références et les métadonnées associées concernant la taille et le nombre d’échantillons. Il incombe à l’appelant de s’assurer que la ressource native existe aussi longtemps que nécessaire.

Cette fonction a été introduite dans Qt 6.6.

Voir également ` QQuickWindow::setRenderTarget()` et ` QQuickRenderControl`.

[static, since 6.8] QQuickRenderTarget QQuickRenderTarget::fromD3D12Texture(void *texture, int resourceState, uint format, uint viewFormat, QSize pixelSize, int sampleCount, int arraySize, QQuickRenderTarget::Flags flags)

Renvoie un nouvel objet ` QQuickRenderTarget ` faisant référence à une texture 2D D3D12 ou à un tableau de textures 2D spécifié par ` texture`.

resourceState doit être un masque de bits valide composé de bits issus de D3D12_RESOURCE_STATES, spécifiant l'état actuel de la ressource.

format Spécifie le format DXGI_FORMAT de la texture. Seuls les formats de texture pris en charge par l’infrastructure de rendu de Qt doivent être utilisés.

viewFormat est le DXGI_FORMAT utilisé pour la vue de cible de rendu (RTV). Il s’agit souvent du même format que format. Cet argument n’est fonctionnel que si le pilote prend en charge la conversion de format assouplie; dans le cas contraire, il est ignoré. En pratique, cette prise en charge devrait être toujours disponible sous Windows 10 1703 et versions ultérieures.

pixelSize Spécifie la taille de l’image, en pixels. Actuellement, seules les textures 2D et les tableaux de textures 2D sont pris en charge.

sampleCount Spécifie le nombre d’échantillons. 0 ou 1 signifie qu’il n’y a pas de multisampling, tandis qu’une valeur telle que 4 ou 8 indique que l’objet natif est une texture multisample, sauf lorsque flags contient MultisampleResolve. Dans ce cas, texture est considéré comme une texture 2D ou un tableau de textures 2D sans échantillonnage multiple, et sampleCount définit le nombre d’échantillons souhaité. L’ QQuickRenderTarget e résultante utilisera une texture (ou un tableau de textures) multisample intermédiaire, créée automatiquement, comme attachement de couleur, et résoudra les échantillons en texture. Il s’agit de l’approche recommandée pour effectuer un MSAA lorsque la texture native D3D12 n’est pas déjà multisample.

Le nombre d’éléments du tableau (couches) est indiqué dans arraySize. Lorsqu’il est supérieur à 1, cela implique un rendu multivue (instanciation de vues), ce qui peut être particulièrement pertinent en réalité virtuelle (VR) et en réalité augmentée (AR). arraySize correspond au nombre de vues, généralement 2. Consultez QSGMaterial::viewCount() pour plus de détails sur l’activation du rendu multivue au sein du graphe de scène Qt Quick.

La texture est utilisée comme premier attachement de couleur de la cible de rendu utilisée par le graphe de scène Qt Quick. Un tampon de profondeur-stencil, le cas échéant, est créé et utilisé automatiquement. Lorsque le tampon de couleur est multi-échantillonné, le tampon de profondeur-stencil sera automatiquement multi-échantillonné lui aussi. Pour le rendu multi-vues, la texture de profondeur-stencil sera automatiquement convertie en tableau avec une structure de données correspondante ( arraySize).

Remarque : l’ QQuickRenderTarget qui en résulte ne possède aucune ressource native ; elle contient simplement des références ainsi que les métadonnées associées concernant la taille et le nombre d’échantillons. Il incombe à l’appelant de s’assurer que la ressource native existe aussi longtemps que nécessaire.

Il s’agit d’une fonction surchargée.

Cette fonction a été introduite dans Qt 6.8.

Voir également ` QQuickWindow::setRenderTarget()` et ` QQuickRenderControl`.

[static, since 6.4] QQuickRenderTarget QQuickRenderTarget::fromMetalTexture(MTLTexture *texture, uint format, const QSize &pixelSize, int sampleCount = 1)

Renvoie un nouvel objet ` QQuickRenderTarget ` faisant référence à un objet de texture Metal spécifié par ` texture`.

format spécifie le format MTLPixelFormat de la texture. Seuls les formats de texture pris en charge par l’infrastructure de rendu de Qt doivent être utilisés.

pixelSize Spécifie la taille de l’image, en pixels. Actuellement, seules les textures 2D sont prises en charge.

sampleCount Spécifie le nombre d’échantillons. 0 ou 1 signifie qu’il n’y a pas de multi-échantillonnage, tandis qu’une valeur telle que 4 ou 8 indique que l’objet natif est une texture multi-échantillonnée.

La texture est utilisée comme première attache de couleur de la cible de rendu utilisée par le graphe de scène Qt Quick. Un tampon de profondeur-stencil, le cas échéant, est créé et utilisé automatiquement.

Remarque : l’ QQuickRenderTarget e résultante ne possède aucune ressource native ; elle contient simplement des références et les métadonnées associées concernant la taille et le nombre d’échantillons. Il incombe à l’appelant de s’assurer que la ressource native existe aussi longtemps que nécessaire.

Cette fonction a été introduite dans Qt 6.4.

Voir également ` QQuickWindow::setRenderTarget()` et ` QQuickRenderControl`.

[static] QQuickRenderTarget QQuickRenderTarget::fromMetalTexture(MTLTexture *texture, const QSize &pixelSize, int sampleCount = 1)

Renvoie un nouvel objet ` QQuickRenderTarget ` faisant référence à un objet de texture Metal spécifié par ` texture`. On suppose que la texture a le format `MTLPixelFormatRGBA8Unorm`.

pixelSize Spécifie la taille de l'image, en pixels. Actuellement, seules les textures 2D sont prises en charge.

sampleCount Spécifie le nombre d’échantillons. 0 ou 1 signifie qu’il n’y a pas de multi-échantillonnage, tandis qu’une valeur telle que 4 ou 8 indique que l’objet natif est une texture multi-échantillonnée.

La texture est utilisée comme première attache de couleur de la cible de rendu utilisée par le graphe de scène Qt Quick. Un tampon de profondeur-stencil, le cas échéant, est créé et utilisé automatiquement.

Remarque : l’ QQuickRenderTarget e résultante ne possède aucune ressource native ; elle contient simplement des références et les métadonnées associées concernant la taille et le nombre d’échantillons. Il incombe à l’appelant de s’assurer que la ressource native existe aussi longtemps que nécessaire.

Il s’agit d’une fonction surchargée.

Voir également ` QQuickWindow::setRenderTarget()` et ` QQuickRenderControl`.

[static, since 6.8] QQuickRenderTarget QQuickRenderTarget::fromMetalTexture(MTLTexture *texture, uint format, uint viewFormat, QSize pixelSize, int sampleCount, int arraySize, QQuickRenderTarget::Flags flags)

Renvoie un nouvel objet ` QQuickRenderTarget ` faisant référence à une texture Metal 2D ou à un tableau de textures 2D spécifié dans ` texture`.

format Spécifie le MTLPixelFormat de la texture. Seuls les formats de texture pris en charge par l’infrastructure de rendu de Qt doivent être utilisés.

viewFormat est généralement défini sur la même valeur que ` format`. Dans certains cas, par exemple lors du rendu dans une texture au format ` _SRGB ` et lorsque la conversion implicite `linear->sRGB` lors des écritures du shader n’est pas souhaitée, la valeur peut être différente. Notez toutefois que cette valeur peut être ignorée par Qt si, lors de l’exécution, ` QRhi ` signale que la fonctionnalité ` QRhi::TextureViewFormat ` n’est pas prise en charge.

pixelSize Spécifie la taille de l’image, en pixels. Actuellement, seules les textures 2D et les tableaux de textures 2D sont pris en charge.

sampleCount Spécifie le nombre d’échantillons. Une valeur de 0 ou 1 signifie qu’il n’y a pas de multisampling, tandis qu’une valeur telle que 4 ou 8 indique que l’objet natif est une texture multisample, sauf lorsque flags contient MultisampleResolve. Dans ce cas, ` texture ` est considéré comme une texture 2D ou un tableau de textures 2D sans échantillonnage multiple, et ` sampleCount ` définit le nombre d’échantillons souhaité. L’ QQuickRenderTarget e résultante utilisera une texture (ou un tableau de textures) multisample intermédiaire, créée automatiquement, comme attachement de couleur, et résoudra les échantillons en texture. Il s’agit de l’approche recommandée pour effectuer un MSAA lorsque la texture Metal native n’est pas déjà multisample.

Le nombre d’éléments du tableau (couches) est indiqué dans ` arraySize`. Lorsqu’il est supérieur à 1, cela implique un rendu multivue, ce qui peut être particulièrement pertinent en réalité virtuelle (VR) ou en réalité augmentée (AR). ` arraySize ` correspond au nombre de vues, généralement ` 2`. Voir ` QSGMaterial::viewCount()` pour plus de détails sur l’activation du rendu multivue au sein du graphe de scène ` Qt Quick `.

La texture est utilisée comme premier attachement de couleur de la cible de rendu utilisée par le graphe de scène Qt Quick. Un tampon de profondeur-stencil, le cas échéant, est créé et utilisé automatiquement. Lorsque le tampon de couleur est multi-échantillonné, le tampon de profondeur-stencil sera automatiquement multi-échantillonné lui aussi. Pour le rendu multi-vue, la texture de profondeur-stencil sera automatiquement convertie en tableau avec une structure de données correspondante ( arraySize).

Remarque : l’ QQuickRenderTarget qui en résulte ne possède aucune ressource native ; elle contient simplement des références et les métadonnées associées concernant la taille et le nombre d’échantillons. Il incombe à l’appelant de s’assurer que la ressource native existe aussi longtemps que nécessaire.

Il s’agit d’une fonction surchargée.

Cette fonction a été introduite dans Qt 6.8.

Voir également ` QQuickWindow::setRenderTarget()` et ` QQuickRenderControl`.

[static, since 6.2] QQuickRenderTarget QQuickRenderTarget::fromOpenGLRenderBuffer(uint renderbufferId, const QSize &pixelSize, int sampleCount = 1)

Renvoie un nouvel objet ` QQuickRenderTarget ` faisant référence à un objet de tampon de rendu OpenGL spécifié par ` renderbufferId`.

Le tampon de rendu sera utilisé comme pièce jointe de couleur pour l’objet tampon d’image interne. Cette fonction est fournie pour permettre de cibler des objets de tampon de rendu créés par l’application à partir d’un tampon externe sous-jacent, tel qu’un EGLImageKHR. Une fois que l’application a appelé glEGLImageTargetRenderbufferStorageOES, l’objet de tampon de rendu peut être transmis à cette fonction.

pixelSize spécifie la taille de l’image, en pixels.

sampleCount spécifie le nombre d’échantillons. 0 ou 1 signifie qu’il n’y a pas de multi-échantillonnage, tandis qu’une valeur telle que 4 ou 8 indique que l’objet natif est un tampon de rendu multi-échantillon.

Remarque : l’ QQuickRenderTarget e résultant ne détient aucune ressource native ; il contient simplement des références ainsi que les métadonnées associées concernant la taille et le nombre d’échantillons. Il incombe à l’appelant de s’assurer que la ressource native existe aussi longtemps que nécessaire.

Cette fonction a été introduite dans Qt 6.2.

Voir également ` QQuickWindow::setRenderTarget()` et ` QQuickRenderControl`.

[static, since 6.4] QQuickRenderTarget QQuickRenderTarget::fromOpenGLTexture(uint textureId, uint format, const QSize &pixelSize, int sampleCount = 1)

Renvoie un nouvel objet ` QQuickRenderTarget ` faisant référence à un objet de texture OpenGL spécifié par ` textureId`.

format spécifie le format interne natif de la texture. Seuls les formats de texture pris en charge par l’infrastructure de rendu de Qt doivent être utilisés.

pixelSize Spécifie la taille de l’image, en pixels. Actuellement, seules les textures 2D sont prises en charge.

sampleCount Spécifie le nombre d’échantillons. Une valeur de 0 ou 1 signifie qu’il n’y a pas de multi-échantillonnage, tandis qu’une valeur telle que 4 ou 8 indique que l’objet natif est une texture multi-échantillonnée.

La texture est utilisée comme première attache de couleur de la cible de rendu utilisée par le graphe de scène Qt Quick. Un tampon de profondeur-stencil, le cas échéant, est créé et utilisé automatiquement.

Le nom de l’objet OpenGL « textureId » doit être un nom valide dans le contexte de rendu utilisé par le graphe de scène « Qt Quick ».

Remarque : l’ QQuickRenderTarget résultant ne possède aucune ressource native ; il contient simplement des références ainsi que les métadonnées associées concernant la taille et le nombre d’échantillons. Il incombe à l’appelant de s’assurer que la ressource native existe aussi longtemps que nécessaire.

Cette fonction a été introduite dans Qt 6.4.

Voir également ` QQuickWindow::setRenderTarget()` et ` QQuickRenderControl`.

[static] QQuickRenderTarget QQuickRenderTarget::fromOpenGLTexture(uint textureId, const QSize &pixelSize, int sampleCount = 1)

Renvoie un nouvel objet ` QQuickRenderTarget ` faisant référence à un objet de texture OpenGL spécifié par ` textureId`. On suppose que la texture est au format GL_RGBA (GL_RGBA8).

pixelSize spécifie la taille de l’image, en pixels. Actuellement, seules les textures 2D sont prises en charge.

sampleCount Spécifie le nombre d’échantillons. 0 ou 1 signifie qu’il n’y a pas de multi-échantillonnage, tandis qu’une valeur telle que 4 ou 8 indique que l’objet natif est une texture multi-échantillonnée.

La texture est utilisée comme premier attachement de couleur de la cible de rendu utilisée par le graphe de scène Qt Quick. Un tampon de profondeur-stencil, le cas échéant, est créé et utilisé automatiquement.

Le nom de l’objet OpenGL « textureId » doit être un nom valide dans le contexte de rendu utilisé par le graphe de scène « Qt Quick ».

Remarque : l’ QQuickRenderTarget résultant ne possède aucune ressource native ; il contient simplement des références ainsi que les métadonnées associées concernant la taille et le nombre d’échantillons. Il incombe à l’appelant de s’assurer que la ressource native existe aussi longtemps que nécessaire.

Il s'agit d'une fonction surchargée.

Voir également ` QQuickWindow::setRenderTarget()` et ` QQuickRenderControl`.

[static, since 6.8] QQuickRenderTarget QQuickRenderTarget::fromOpenGLTexture(uint textureId, uint format, QSize pixelSize, int sampleCount, int arraySize, QQuickRenderTarget::Flags flags)

Renvoie un nouvel objet ` QQuickRenderTarget ` faisant référence à une texture 2D OpenGL ou à un tableau de textures spécifié par ` textureId`.

format spécifie le format interne natif de la texture. Seuls les formats de texture pris en charge par l’infrastructure de rendu de Qt doivent être utilisés.

pixelSize Spécifie la taille de l’image, en pixels. Actuellement, seules les textures 2D et les tableaux de textures 2D sont pris en charge.

sampleCount spécifie le nombre d’échantillons. 0 ou 1 signifie l’absence de multi-échantillonnage, tandis qu’une valeur telle que 4 ou 8 indique que l’objet natif est une texture multi-échantillonnée, sauf lorsque flags contient MultisampleResolve. Dans ce cas, ` textureId ` est considéré comme une texture 2D ou un tableau de textures 2D sans échantillonnage multiple, et ` sampleCount ` définit le nombre d’échantillons souhaité. L’ QQuickRenderTarget e résultante utilisera une texture (ou un tableau de textures) multisample intermédiaire, créée automatiquement, comme attachement de couleur, et résoudra les échantillons en textureId. Il s’agit de l’approche recommandée pour effectuer un MSAA lorsque la texture OpenGL native n’est pas déjà multisample.

Lorsque ` arraySize ` est supérieur à 1, cela implique un rendu multivue (GL_OVR_multiview, ` QRhiColorAttachment::setMultiViewCount()`), ce qui peut être particulièrement pertinent en réalité virtuelle (VR) et en réalité augmentée (AR). Dans ce cas, ` arraySize ` correspond au nombre de vues, généralement ` 2`. Voir ` QSGMaterial::viewCount()` pour plus de détails sur l’activation du rendu multivue au sein du graphe de scène ` Qt Quick `.

Un tampon de profondeur-stencil, le cas échéant, est créé et utilisé automatiquement. Lorsque le tampon de couleur est multi-échantillonné, le tampon de profondeur-stencil le sera automatiquement aussi. Pour le rendu multi-vue, la texture de profondeur-stencil sera automatiquement convertie en tableau avec une arraySize correspondante.

Le nom d’objet OpenGL textureId doit être un nom de texture 2D valide dans le contexte de rendu utilisé par le graphe de scène d’ Qt Quick. Lorsque arraySize est supérieur à 1, textureId doit être un nom de tableau de textures 2D valide.

Remarque : l’ QQuickRenderTarget e résultant ne détient aucune ressource native ; il contient simplement des références ainsi que les métadonnées associées concernant la taille et le nombre d’échantillons. Il incombe à l’appelant de s’assurer que la ressource native existe aussi longtemps que nécessaire.

Remarque : l’implémentation de cette surcharge n’est pas compatible avec OpenGL ES 2.0 ou 3.0, et nécessite au minimum OpenGL ES 3.1 (ou OpenGL 3.0 sur ordinateur de bureau).

Il s'agit d'une fonction surchargée.

Cette fonction a été introduite dans Qt 6.8.

Voir également QQuickWindow::setRenderTarget(), QQuickRenderControl et fromOpenGLTexture().

[static, since 6.4] QQuickRenderTarget QQuickRenderTarget::fromPaintDevice(QPaintDevice *device)

Renvoie un nouvel objet ` QQuickRenderTarget ` faisant référence à un périphérique de dessin spécifié par ` device`.

Cette option permettant de rediriger le rendu vers un ` QPaintDevice ` n’est disponible que lorsque l’application s’exécute avec le backend ` software ` de ` Qt Quick`.

Remarque : l’ QQuickRenderTarget ne prend pas en charge la gestion de l’ device; il incombe à l’appelant de s’assurer que l’objet existe aussi longtemps que nécessaire.

Cette fonction a été introduite dans Qt 6.4.

Voir également QQuickWindow::setRenderTarget() et QQuickRenderControl.

[static, since 6.6] QQuickRenderTarget QQuickRenderTarget::fromRhiRenderTarget(QRhiRenderTarget *renderTarget)

Renvoie un nouvel objet ` QQuickRenderTarget ` faisant référence à un objet ` renderTarget` existant.

renderTarget Il s'agira dans la plupart des cas d'un ` QRhiTextureRenderTarget`, ce qui permet de rediriger le rendu de la scène ` Qt Quick ` vers un ` QRhiTexture`.

Remarque : l’ QQuickRenderTarget ainsiobtenu ne détient pas la propriété de renderTarget ni des ressources natives sous-jacentes ; il contient simplement des références ainsi que les métadonnées associées concernant la taille et le nombre d’échantillons. Il incombe à l’appelant de s’assurer que les ressources référencées existent aussi longtemps que nécessaire.

Cette fonction a été introduite dans Qt 6.6.

Voir également QQuickWindow::setRenderTarget() et QQuickRenderControl.

[static, since 6.4] QQuickRenderTarget QQuickRenderTarget::fromVulkanImage(VkImage image, VkImageLayout layout, VkFormat format, const QSize &pixelSize, int sampleCount = 1)

Renvoie un nouvel objet ` QQuickRenderTarget ` faisant référence à un objet image Vulkan spécifié par ` image`. L'layout e actuelle de l'image doit également être fournie.

format spécifie le VkFormat de l’image. Seuls les formats d’image pris en charge par l’infrastructure de rendu de Qt doivent être utilisés.

pixelSize Spécifie la taille de l’image, en pixels. Actuellement, seules les textures 2D sont prises en charge.

sampleCount Spécifie le nombre d’échantillons. Une valeur de 0 ou 1 signifie qu’il n’y a pas de multi-échantillonnage, tandis qu’une valeur telle que 4 ou 8 indique que l’objet natif est une texture multi-échantillonnée.

L’image est utilisée comme première attache de couleur de la cible de rendu utilisée par le graphe de scène de l’ Qt Quick. Un tampon de profondeur-stencil, le cas échéant, est créé et utilisé automatiquement.

Remarque : l’ QQuickRenderTarget e résultante ne possède aucune ressource native ; elle contient simplement des références et les métadonnées associées concernant la taille et le nombre d’échantillons. Il incombe à l’appelant de s’assurer que la ressource native existe aussi longtemps que nécessaire.

Cette fonction a été introduite dans Qt 6.4.

Voir également ` QQuickWindow::setRenderTarget()` et ` QQuickRenderControl`.

[static] QQuickRenderTarget QQuickRenderTarget::fromVulkanImage(VkImage image, VkImageLayout layout, const QSize &pixelSize, int sampleCount = 1)

Renvoie un nouvel objet ` QQuickRenderTarget ` faisant référence à un objet image Vulkan spécifié par ` image`. On suppose que l'image est au format `VK_FORMAT_R8G8B8A8_UNORM`.

pixelSize spécifie la taille de l’image, en pixels. Actuellement, seules les textures 2D sont prises en charge.

sampleCount Spécifie le nombre d’échantillons. Une valeur de 0 ou 1 signifie qu’il n’y a pas de multi-échantillonnage, tandis qu’une valeur telle que 4 ou 8 indique que l’objet natif est une texture multi-échantillonnée.

La texture est utilisée comme première attache de couleur de la cible de rendu utilisée par le graphe de scène de l’ Qt Quick. Un tampon de profondeur-stencil, le cas échéant, est créé et utilisé automatiquement.

Remarque : l’ QQuickRenderTarget e résultante ne possède aucune ressource native ; elle contient simplement des références et les métadonnées associées concernant la taille et le nombre d’échantillons. Il incombe à l’appelant de s’assurer que la ressource native existe aussi longtemps que nécessaire.

Il s’agit d’une fonction surchargée.

Voir également ` QQuickWindow::setRenderTarget()` et ` QQuickRenderControl`.

[static, since 6.8] QQuickRenderTarget QQuickRenderTarget::fromVulkanImage(VkImage image, VkImageLayout layout, VkFormat format, VkFormat viewFormat, QSize pixelSize, int sampleCount, int arraySize, QQuickRenderTarget::Flags flags)

Renvoie un nouvel objet ` QQuickRenderTarget ` faisant référence à un objet image Vulkan spécifié par ` image`. L'layout e actuelle de l'image doit également être fournie. L'image doit être soit une texture 2D, soit un tableau de textures 2D.

format Spécifie le VkFormat de l’image. Seuls les formats d’image pris en charge par l’infrastructure de rendu de Qt doivent être utilisés.

viewFormat est généralement défini sur la même valeur que format. Dans certains cas, par exemple lors du rendu dans une texture au format _SRGB et lorsque la conversion implicite linéaire vers sRGB lors des écritures du shader n’est pas souhaitée, la valeur peut être différente. (Par exemple, une format de VK_FORMAT_R8G8B8A8_SRGB et une viewFormat de VK_FORMAT_R8G8B8A8_UNORM).

pixelSize Spécifie la taille de l’image, en pixels. Actuellement, seules les textures 2D sont prises en charge.

sampleCount Spécifie le nombre d’échantillons. 0 ou 1 signifie qu’il n’y a pas de multisampling, tandis qu’une valeur telle que 4 ou 8 indique que l’objet natif est une texture multisample, sauf lorsque flags contient MultisampleResolve. Dans ce cas, ` image ` est considéré comme une texture 2D sans échantillonnage multiple ou un tableau de textures 2D, et ` sampleCount ` définit le nombre d’échantillons souhaité. L’ QQuickRenderTarget e résultante utilisera une texture (ou un tableau de textures) multisample intermédiaire, créée automatiquement, comme attachement de couleur, et résoudra les échantillons en image. Il s’agit de l’approche recommandée pour effectuer un MSAA lorsque l’image Vulkan native n’est pas déjà multisample.

Le nombre d’éléments du tableau (couches) est indiqué dans ` arraySize`. Lorsqu’il est supérieur à 1, cela implique un rendu multivue (VK_KHR_multiview), ce qui peut être particulièrement pertinent en réalité virtuelle (VR) ou en réalité augmentée (AR). ` arraySize ` correspond au nombre de vues, généralement ` 2`. Consultez ` QSGMaterial::viewCount()` pour plus de détails sur l’activation du rendu multivue au sein du graphe de scène ` Qt Quick `.

La texture est utilisée comme premier attachement de couleur de la cible de rendu utilisée par le graphe de scène Qt Quick. Un tampon de profondeur-stencil, le cas échéant, est créé et utilisé automatiquement. Lorsque le tampon de couleur est multi-échantillonné, le tampon de profondeur-stencil sera automatiquement multi-échantillonné lui aussi. Pour le rendu multi-vues, la texture de profondeur-stencil sera automatiquement convertie en tableau avec une structure de données correspondante ( arraySize).

Remarque : l’ QQuickRenderTarget qui en résulte ne possède aucune ressource native ; elle contient simplement des références ainsi que les métadonnées associées concernant la taille et le nombre d’échantillons. Il incombe à l’appelant de s’assurer que la ressource native existe aussi longtemps que nécessaire.

Il s’agit d’une fonction surchargée.

Cette fonction a été introduite dans Qt 6.8.

Voir également ` QQuickWindow::setRenderTarget()` et ` QQuickRenderControl`.

bool QQuickRenderTarget::isNull() const

Renvoie « true » si cet objet de type « QQuickRenderTarget » a été instancié par construction par défaut et ne fait référence à aucun objet natif.

[since 6.4] bool QQuickRenderTarget::mirrorVertically() const

Retour Indique si la cible de rendu est inversée verticalement.

La valeur par défaut est « false ».

Cette fonction a été introduite dans Qt 6.4.

Voir aussi ` setMirrorVertically()`.

[since 6.8] void QQuickRenderTarget::setDepthTexture(QRhiTexture *texture)

Demandes utilisant l'texture fournie comme tampon de profondeur ou de profondeur-stencil. La propriété de texture n'est pas prise en compte.

La requête n’est prise en compte que lorsqu’elle est pertinente. Par exemple, l’appel de cette fonction n’a aucun effet avec fromRhiRenderTarget(), fromPaintDevice() ou fromOpenGLRenderBuffer().

Normalement, un tampon de profondeur-stencil est créé automatiquement, de manière transparente pour l’utilisateur de ` QQuickRenderTarget`. Par conséquent, il n’est généralement pas nécessaire d’appeler cette fonction lorsque l’on utilise QQuickRenderTarget. Dans certaines circonstances particulières, il peut toutefois s’avérer indispensable de pouvoir fournir une texture dans laquelle les données de profondeur (ou de profondeur et de stencil) seront rendues, plutôt que de laisser Qt Quick créer ses propres textures ou tampons intermédiaires. C’est notamment le cas avec OpenXR et ses extensions telles que XR_KHR_composition_layer_depth. Afin de « soumettre le tampon de profondeur » au compositeur XR, il faut, en pratique, récupérer une texture de profondeur (profondeur-stencil) déjà créée à partir d’OpenXR (à partir du XrSwapchain) et utiliser cette texture comme cible de rendu pour les données de profondeur. Cela ne serait pas possible sans cette fonction.

Remarque : l’ texture doit toujours être une texture 2D non multisample ou un tableau de textures (pour le mode multivue). Si le MSAA est utilisé, les échantillons sont résolus en « texture » à la fin du passage de rendu, que le drapeau « MultisampleResolve » soit activé ou non. Le MSAA n’est pris en charge pour les textures de profondeur (depth-stencil) que si l’API 3D sous-jacente le permet, et cette prise en charge n’est pas universellement disponible. Voir the relevant QRhi feature flag pour plus de détails. Lorsque cette fonctionnalité n’est pas prise en charge et qu’un échantillonnage multiple est demandé en combinaison avec une texture de profondeur personnalisée, ` texture ` ne sera pas modifié pendant le rendu et un avertissement sera affiché.

Remarque : en ce qui concerne OpenGL et OpenGL ES, l'utilisation des textures de profondeur ne fonctionne pas sous OpenGL ES 2.0 et nécessite au minimum OpenGL ES 3.0. La prise en charge du multisampling (MSAA) n'est pas disponible sans au moins OpenGL ES 3.1, ou OpenGL 3.0 sur ordinateur de bureau.

Cette fonction a été introduite dans Qt 6.8.

Voir également ` depthTexture()`.

[since 6.3] void QQuickRenderTarget::setDevicePixelRatio(qreal ratio)

Définit le rapport de pixels de l'appareil pour cette cible de rendu à ratio. Il s'agit du rapport entre les pixels de l'appareil et les pixels indépendants de l'appareil.

Notez que la valeur spécifiée pour le rapport de pixels de l'appareil sera ignorée si la fonction ` QQuickRenderControl::renderWindow()` est réimplémentée pour renvoyer une valeur valide de ` QWindow`.

Cette fonction a été introduite dans Qt 6.3.

Voir également devicePixelRatio().

[since 6.4] void QQuickRenderTarget::setMirrorVertically(bool enable)

Définit la taille de la cible de rendu dont le contenu doit être inversé verticalement vers enable lors du dessin. Cela permet d'intégrer facilement du code de rendu tiers qui ne respecte pas les normes habituelles.

Remarque : cette fonction ne doit pas être utilisée avec le backend software.

Cette fonction a été introduite dans Qt 6.4.

Voir aussi mirrorVertically().

Éléments non membres associés

[noexcept] bool operator!=(const QQuickRenderTarget &a, const QQuickRenderTarget &b)

Renvoie « true » si a et b font référence à un ensemble différent d'objets natifs, ou si les données associées (taille, nombre d'échantillons) ne correspondent pas.

[noexcept] bool operator==(const QQuickRenderTarget &a, const QQuickRenderTarget &b)

Renvoie « true » si a et b font référence au même ensemble d'objets natifs et si leurs données associées (taille, nombre d'échantillons) correspondent.

© 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.