Sur cette page

QRhiTexture Class

Ressource de texture. En savoir plus…

En-tête : #include <rhi/qrhi.h>
CMake : find_package(Qt6 REQUIRED COMPONENTS GuiPrivate)
target_link_libraries(mytarget PRIVATE Qt6::GuiPrivate)
qmake : QT += gui-private
Depuis : Qt 6.6
Hérite de : QRhiResource

Types publics

struct NativeTexture
(since 6.8) struct ViewFormat
enum Flag { RenderTarget, CubeMap, MipMapped, sRGB, UsedAsTransferSource, …, UsedAsShadingRateMap }
flags Flags
enum Format { UnknownFormat, RGBA8, BGRA8, R8, RG8, …, RGBA32SI }

Fonctions publiques

int arrayRangeLength() const
int arrayRangeStart() const
int arraySize() const
virtual bool create() = 0
virtual bool createFrom(QRhiTexture::NativeTexture src)
int depth() const
QRhiTexture::Flags flags() const
QRhiTexture::Format format() const
virtual QRhiTexture::NativeTexture nativeTexture()
QSize pixelSize() const
(since 6.8) QRhiTexture::ViewFormat readViewFormat() const
int sampleCount() const
void setArrayRange(int startIndex, int count)
void setArraySize(int arraySize)
void setDepth(int depth)
void setFlags(QRhiTexture::Flags f)
void setFormat(QRhiTexture::Format fmt)
virtual void setNativeLayout(int layout)
void setPixelSize(const QSize &sz)
(since 6.8) void setReadViewFormat(const QRhiTexture::ViewFormat &fmt)
void setSampleCount(int s)
(since 6.8) void setWriteViewFormat(const QRhiTexture::ViewFormat &fmt)
(since 6.8) QRhiTexture::ViewFormat writeViewFormat() const

Fonctions publiques réimplémentées

virtual QRhiResource::Type resourceType() const override

Description détaillée

Un objet QRhiTexture encapsule un objet de texture natif, tel qu’un VkImage ou un MTLTexture.

Une instance de QRhiTexture est toujours créée en appelant the QRhi's newTexture() function. Cela ne crée aucune ressource graphique native. Pour ce faire, appelez create() après avoir défini les options appropriées, telles que le format et la taille, bien que dans la plupart des cas, celles-ci soient déjà définies en fonction des arguments passés à newTexture().

Il est essentiel de définir correctement ` flags `, faute de quoi diverses erreurs peuvent se produire en fonction du backend ` QRhi ` sous-jacent et de l’API graphique. Par exemple, lorsqu’une texture doit être rendue à partir d’un passage de rendu via ` QRhiTextureRenderTarget`, elle doit être créée avec le drapeau ` RenderTarget ` activé. De même, lorsque la texture doit être soumise à un mipmapping ( read back), le drapeau ` UsedAsTransferSource ` doit être activé au préalable. Les textures mipmappées doivent avoir le drapeau « MipMapped » activé. Et ainsi de suite. Il n’est pas possible de modifier les drapeaux une fois que la fonction ` create()` a abouti. Pour libérer l’objet de texture existant et en créer un nouveau avec les paramètres modifiés, appelez les méthodes de configuration, puis appelez à nouveau ` create()`. Cette opération peut alors s’avérer coûteuse en ressources.

Exemple d'utilisation

Pour créer une texture 2D de taille 512x512 pixels et définir son contenu en vert :

QRhiTexture *texture = rhi->newTexture(QRhiTexture::RGBA8, QSize(512, 512));
if (!texture->create()) { error(); }
QRhiResourceUpdateBatch *batch = rhi->nextResourceUpdateBatch();
QImage image(512, 512, QImage::Format_RGBA8888);
image.fill(Qt::green);
batch->uploadTexture(texture, image);
// ...
commandBuffer->resourceUpdate(batch); // or, alternatively, pass 'batch' to a beginPass() call

Modèles courants

Un appel à ` create()` détruit toutes les ressources natives existantes si ` create()` a été appelé avec succès auparavant. Si ces ressources natives sont toujours utilisées par une image en cours de traitement (c’est-à-dire s’il est possible qu’elles soient encore lues par le GPU), leur destruction est automatiquement reportée. Ainsi, le modèle suivant est très courant et pratique pour modifier en toute sécurité la taille d’une texture existante. En pratique, cela supprime et crée une toute nouvelle ressource de texture native en arrière-plan, ce n’est donc pas nécessairement une opération peu coûteuse, mais elle est plus pratique et tout de même plus rapide que les alternatives, car en ne détruisant pas l’objet ` texture ` lui-même, toutes les références à celui-ci restent valides dans d’autres structures de données (par exemple, dans tout `QShaderResourceBinding` à partir duquel le `QRhiTexture` est référencé).

// determine newSize, e.g. based on the swapchain's output size or other factors
if (texture->pixelSize() != newSize) {
    texture->setPixelSize(newSize);
    if (!texture->create()) { error(); }
}
// continue using texture, fill it with new data

Remarque : il s’agit d’une API RHI dont la compatibilité n’est pas entièrement garantie ; voir QRhi pour plus de détails.

Voir également QRhiResourceUpdateBatch, QRhi et QRhiTextureRenderTarget.

Documentation sur les types de membres

enum QRhiTexture::Flag
flags QRhiTexture::Flags

Les indicateurs permettent de spécifier comment la texture sera utilisée. Le non-respect des indicateurs définis avant l'appel à ` create()` et toute tentative d'utilisation de la texture d'une manière non déclarée au préalable peuvent entraîner un comportement indéfini ou une baisse des performances, selon le backend et l'API graphique sous-jacente.

ConstanteValeurDescription
QRhiTexture::RenderTarget1 << 0La texture qui sera utilisée en combinaison avec QRhiTextureRenderTarget.
QRhiTexture::CubeMap1 << 2La texture est une carte cubique. Ces textures comportent 6 couches, une pour chaque face dans l’ordre +X, -X, +Y, -Y, +Z, -Z. Les textures de carte cubique ne peuvent pas être multisampling.
QRhiTexture::MipMapped1 << 3La texture comporte des mipmaps. Le nombre approprié de mipmaps est calculé automatiquement et peut également être récupéré via QRhi::mipLevelsForSize(). Les images correspondant aux différents niveaux de mipmaps doivent être fournies dans la texture téléchargée ou générées via QRhiResourceUpdateBatch::generateMips(). Les textures multi-échantillonnées ne peuvent pas comporter de mipmaps.
QRhiTexture::sRGB1 << 4Utilisez un format sRGB.
QRhiTexture::UsedAsTransferSource1 << 5La texture est utilisée comme source pour une copie ou une relecture de texture, ce qui signifie qu’elle est indiquée comme source dans les fonctions QRhiResourceUpdateBatch::copyTexture() ou QRhiResourceUpdateBatch::readBackTexture().
QRhiTexture::UsedWithGenerateMips1 << 6La texture va être utilisée avec la fonction QRhiResourceUpdateBatch::generateMips().
QRhiTexture::UsedWithLoadStore1 << 7La texture va être utilisée avec des opérations de chargement/enregistrement d’images, par exemple dans un shader de calcul.
QRhiTexture::UsedAsCompressedAtlas1 << 8La texture est au format compressé et les dimensions des sous-ressources chargées peuvent ne pas correspondre à la taille de la texture.
QRhiTexture::ExternalOES1 << 9La texture doit utiliser la cible GL_TEXTURE_EXTERNAL_OES avec OpenGL. Cet indicateur est ignoré avec les autres API graphiques.
QRhiTexture::ThreeDimensional1 << 10La texture est une texture 3D. Ces textures doivent être créées à l’aide de la surcharge de la fonction ` QRhi::newTexture()` qui prend en compte la profondeur en plus de la largeur et de la hauteur. Une texture 3D peut comporter des mipmaps, mais ne peut pas être multisample. Lors du rendu ou du chargement de données dans une texture 3D, l’ layer e spécifiée dans l’attachement de couleur de la cible de rendu ou dans la description du chargement fait référence à une seule tranche comprise dans l’intervalle [0..depth-1]. L’API graphique sous-jacente peut ne pas prendre en charge les textures 3D lors de l’exécution. La prise en charge est indiquée par la fonctionnalité « QRhi::ThreeDimensionalTextures ».
QRhiTexture::TextureRectangleGL1 << 11La texture doit utiliser la cible GL_TEXTURE_RECTANGLE avec OpenGL. Ce drapeau est ignoré avec d’autres API graphiques. Tout comme ExternalOES, ce drapeau est utile lorsque l’on travaille avec des API de plateforme où les objets de texture OpenGL natifs reçus de la plateforme sont encapsulés dans un ` QRhiTexture`, et où la plateforme ne peut fournir que des textures pour une cible de texture non 2D.
QRhiTexture::TextureArray1 << 12La texture est un tableau de textures, c'est-à-dire un objet de texture unique qui est un tableau homogène de textures 2D. Les tableaux de textures sont créés à l’aide de la fonction ` QRhi::newTextureArray()`. L’API graphique sous-jacente peut ne pas prendre en charge les objets de type tableau de textures lors de l’exécution. La prise en charge est indiquée par la fonctionnalité « QRhi::TextureArrays ». Lors du rendu dans un tableau de textures ou du chargement de données vers celui-ci, l’ layer spécifiée dans l’attachement de couleur de la cible de rendu ou dans la description du chargement sélectionne un élément unique du tableau.
QRhiTexture::OneDimensional1 << 13La texture est une texture unidimensionnelle. De telles textures peuvent être créées en passant une hauteur et une profondeur égales à 0 à la fonction ` QRhi::newTexture()`. Notez qu’il peut exister des limitations concernant les textures unidimensionnelles selon l’API graphique sous-jacente. Par exemple, le rendu sur ces textures ou leur utilisation avec un filtrage basé sur des mipmaps peut ne pas être pris en charge. Ceci est indiqué par les indicateurs de fonctionnalité ` QRhi::OneDimensionalTextures ` et ` QRhi::OneDimensionalTextureMipmaps `.
QRhiTexture::UsedAsShadingRateMap1 << 14 

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

enum QRhiTexture::Format

Spécifie le format de texture. Voir également QRhi::isTextureFormatSupported() et noter que flags() peut modifier le format lorsque QRhiTexture::sRGB est défini.

ConstanteValeurDescription
QRhiTexture::UnknownFormat0Format non valide. Ne peut pas être transmis à la fonction setFormat().
QRhiTexture::RGBA81Quatre composantes, normalisées sans signe, 8 bits par composante. Toujours pris en charge. (32 bits au total)
QRhiTexture::BGRA82Quatre composantes, normalisées sans signe, 8 bits par composante. (32 bits au total)
QRhiTexture::R83Une composante, normalisée sans signe de 8 bits. (8 bits au total)
QRhiTexture::RG84Deux composantes, normalisées sans signe de 8 bits. (16 bits au total)
QRhiTexture::R165Une composante, normalisée sans signe de 16 bits. (16 bits au total)
QRhiTexture::RG166Deux composantes, normalisées sans signe de 16 bits. (32 bits au total)
QRhiTexture::RED_OR_ALPHA87Soit identique à R8, soit un format similaire avec la composante permutée vers l'alpha, selon l'RedOrAlpha8IsRed. (8 bits au total)
QRhiTexture::RGBA16F8Quatre composantes, nombre à virgule flottante de 16 bits. (64 bits au total)
QRhiTexture::RGBA32F9Quatre composantes, nombre à virgule flottante de 32 bits. (128 bits au total)
QRhiTexture::R16F10Une composante, nombre à virgule flottante de 16 bits. (16 bits au total)
QRhiTexture::R32F11Une composante, nombre à virgule flottante de 32 bits. (32 bits au total)
QRhiTexture::RGB10A212Quatre composantes : R, G et B normalisés sans signe sur 10 bits, alpha sur 2 bits. Il s’agit d’un format compacté ; l’endianness native s’applique donc. Notez qu’il n’existe pas de format BGR10A2. En effet, le format RGB10A2 correspond à DXGI_FORMAT_R10G10B10A2_UNORM avec D3D, à MTLPixelFormatRGB10A2Unorm avec Metal, VK_FORMAT_A2B10G10R10_UNORM_PACK32 avec Vulkan, et GL_RGB10_A2/GL_RGB/GL_UNSIGNED_INT_2_10_10_10_REV sur OpenGL (ES). Il s'agit de la seule option RGB30 prise en charge universellement. Les formats d'QImage s correspondants sont QImage::Format_BGR30 et QImage::Format_A2BGR30_Premultiplied. (32 bits au total)
QRhiTexture::D1621Profondeur de 16 bits (entier non signé normalisé)
QRhiTexture::D2422Profondeur de 24 bits (entier normalisé sans signe)
QRhiTexture::D24S823Profondeur de 24 bits (entier non signé normalisé), stencil de 8 bits
QRhiTexture::D32F24Profondeur de 32 bits (nombre à virgule flottante de 32 bits)
QRhiTexture::D32FS8 (since Qt 6.9)25Profondeur de 32 bits (nombre à virgule flottante de 32 bits), stencil de 8 bits, 24 bits inutilisés (64 bits au total)
QRhiTexture::BC126 
QRhiTexture::BC227 
QRhiTexture::BC328 
QRhiTexture::BC429 
QRhiTexture::BC530 
QRhiTexture::BC6H31 
QRhiTexture::BC732 
QRhiTexture::ETC2_RGB833 
QRhiTexture::ETC2_RGB8A134 
QRhiTexture::ETC2_RGBA835 
QRhiTexture::ASTC_4x436 
QRhiTexture::ASTC_5x437 
QRhiTexture::ASTC_5x538 
QRhiTexture::ASTC_6x539 
QRhiTexture::ASTC_6x640 
QRhiTexture::ASTC_8x541 
QRhiTexture::ASTC_8x642 
QRhiTexture::ASTC_8x843 
QRhiTexture::ASTC_10x544 
QRhiTexture::ASTC_10x645 
QRhiTexture::ASTC_10x846 
QRhiTexture::ASTC_10x1047 
QRhiTexture::ASTC_12x1048 
QRhiTexture::ASTC_12x1249 
QRhiTexture::R8UI (since Qt 6.9)17Un composant, 8 bits non signés. (8 bits au total)
QRhiTexture::R32UI (since Qt 6.9)18Une composante, 32 bits sans signe. (32 bits au total)
QRhiTexture::RG32UI (since Qt 6.9)19Deux composantes, 32 bits sans signe. (64 bits au total)
QRhiTexture::RGBA32UI (since Qt 6.9)20Quatre composantes, 32 bits sans signe. (128 bits au total)
QRhiTexture::R8SI (since Qt 6.10)13Une composante, 8 bits avec signe. (8 bits au total)
QRhiTexture::R32SI (since Qt 6.10)14Une composante, signée, de 32 bits. (32 bits au total)
QRhiTexture::RG32SI (since Qt 6.10)15Deux composantes, 32 bits avec signe. (64 bits au total)
QRhiTexture::RGBA32SI (since Qt 6.10)16Quatre composantes, 32 bits non signés. (128 bits au total)

Documentation des fonctions membres

int QRhiTexture::arrayRangeLength() const

Renvoie la taille de la plage de l'array exposée lors de l'appel de la fonction setArrayRange().

Voir également ` setArrayRange()`.

int QRhiTexture::arrayRangeStart() const

Renvoie la première couche de tableau lorsque la fonction ` setArrayRange()` a été appelée.

Voir aussi setArrayRange().

int QRhiTexture::arraySize() const

Renvoie la taille du tableau de textures.

Voir également setArraySize().

[pure virtual] bool QRhiTexture::create()

Crée les ressources graphiques natives correspondantes. Si des ressources existent déjà suite à un appel antérieur à `create()` sans ` destroy()` correspondant, alors la fonction ` destroy()` est d’abord appelée implicitement.

Renvoie ` true ` en cas de succès, et ` false ` lorsqu’une opération graphique a échoué. Quelle que soit la valeur renvoyée, l’appel à ` destroy()` est toujours sans risque.

[virtual] bool QRhiTexture::createFrom(QRhiTexture::NativeTexture src)

Similaire à ` create()`, à la différence qu'aucune nouvelle texture native n'est créée. À la place, les ressources de texture natives spécifiées par ` src ` sont utilisées.

Cela permet d’importer un objet de texture native existant (qui doit appartenir au même périphérique ou au même contexte de partage, selon l’API graphique) depuis un moteur graphique externe.

Renvoie « true » si l’objet de texture native existant spécifié a bien été encapsulé en tant qu’ QRhiTexture non propriétaire.

Remarque : les fonctions format(), pixelSize(), sampleCount() et flags() doivent tout de même être définies correctement. Transmettre des tailles et autres valeurs incorrectes à QRhi::newTexture(), puis enchaîner avec un appel à createFrom() en espérant que l’objet de texture natif suffise à lui seul à déduire ces valeurs est une erreur qui entraînera des problèmes.

Remarque : la fonction ` QRhiTexture ` ne prend pas possession de l’objet texture. La fonction ` destroy()` ne libère ni l’objet ni la mémoire qui lui est associée.

L’opération inverse, consistant à exposer un objet de texture natif créé par QRhiTexture à un moteur tiers, est possible via nativeTexture().

Remarque : lors de l'importation d'une texture 3D, d'un objet de tableau de textures ou, avec OpenGL ES, d'une texture externe, il est particulièrement important de définir les indicateurs correspondants (ThreeDimensional, TextureArray, ExternalOES) via setFlags() avant d'appeler cette fonction.

int QRhiTexture::depth() const

Renvoie la profondeur des textures 3D.

Voir aussi setDepth().

QRhiTexture::Flags QRhiTexture::flags() const

Renvoie les indicateurs de texture.

Voir aussi ` setFlags()`.

QRhiTexture::Format QRhiTexture::format() const

Renvoie le format de texture.

Voir aussi setFormat().

[virtual] QRhiTexture::NativeTexture QRhiTexture::nativeTexture()

Renvoie les ressources natives sous-jacentes de cette texture. La valeur renvoyée sera vide si l'exposition des ressources natives sous-jacentes n'est pas prise en charge par le backend.

Voir également createFrom().

QSize QRhiTexture::pixelSize() const

Renvoie la taille en pixels.

Voir aussi setPixelSize().

[since 6.8] QRhiTexture::ViewFormat QRhiTexture::readViewFormat() const

Renvoie le format de vue utilisé lors de l'échantillonnage de la texture. Si cette fonction n'est pas appelée, le format de vue est considéré comme étant identique à celui de la fonction ` format()`.

Cette fonction a été introduite dans Qt 6.8.

Voir également setReadViewFormat().

[override virtual] QRhiResource::Type QRhiTexture::resourceType() const

Réimplémente : ` QRhiResource::resourceType()` const.

Renvoie le type de ressource.

int QRhiTexture::sampleCount() const

Renvoie le nombre d'échantillons. La valeur 1 indique qu'il n'y a pas d'anticrénelage multi-échantillon.

Voir également setSampleCount().

void QRhiTexture::setArrayRange(int startIndex, int count)

En règle générale, toutes les couches du tableau sont exposées et c'est au shader de sélectionner la couche via la troisième coordonnée transmise à la fonction GLSL ` texture() ` lors de l'échantillonnage de ` sampler2DArray`. Lorsque ` QRhi::TextureArrayRange ` est signalé comme pris en charge, l'appel de `setArrayRange()` avant ` create()` ou ` createFrom()` permet de sélectionner uniquement la plage spécifiée, soit ` count ` éléments à partir de ` startIndex`. La logique du shader peut alors être écrite en tenant compte de cela.

Voir également QRhi::TextureArrayRange.

void QRhiTexture::setArraySize(int arraySize)

Définit la texture arraySize.

Voir aussi arraySize().

void QRhiTexture::setDepth(int depth)

Définit l'depth e d'une texture 3D.

Voir également depth().

void QRhiTexture::setFlags(QRhiTexture::Flags f)

Définit les indicateurs de texture sur « f ».

Voir aussi flags().

void QRhiTexture::setFormat(QRhiTexture::Format fmt)

Définit le format de texture demandé sur « fmt ».

Remarque : la valeur définie n’est prise en compte qu’au prochain appel à la fonction ` create()`, c’est-à-dire lorsque la ressource graphique sous-jacente est (re)créée. Dans le cas contraire, définir une nouvelle valeur est inutile et doit être évité, car cela peut entraîner un état incohérent.

Voir aussi format().

[virtual] void QRhiTexture::setNativeLayout(int layout)

Avec certaines API graphiques, telles que Vulkan, l’intégration d’un code de rendu personnalisé utilisant directement l’API graphique nécessite une attention particulière en ce qui concerne la disposition des images. Cette fonction permet de spécifier l’ layout attendue dans laquelle se trouve l’image sous-jacente de l’ QRhiTexture après l’exécution des commandes de rendu natives.

QRhiTexturePrenons par exemple le cas d’un rendu directement dans le `VkImage` d’une ` QRhiCommandBuffer::beginExternal` à l’aide de Vulkan, dans un bloc de code encadré par les fonctions ` ()` et ` QRhiCommandBuffer::endExternal()`, suivi de l’utilisation de cette image pour l’échantillonnage de texture dans un passage de rendu basé sur ` QRhi`. Afin d’éviter des transitions de disposition d’image potentiellement incorrectes, cette fonction peut être utilisée pour indiquer quelle sera la disposition de l’image une fois que les commandes enregistrées dans ledit bloc de code auront été exécutées.

L'appel de cette fonction n'a de sens qu'après QRhiCommandBuffer::endExternal() et avant un QRhiCommandBuffer::beginPass() suivant.

Cette fonction n’a aucun effet avec les backends « QRhi » où l’API graphique sous-jacente ne prend pas en charge le concept de disposition d’image.

Remarque : avec Vulkan, ` layout ` est un ` VkImageLayout`. Avec Direct 3D 12, ` layout ` est une valeur composée des bits de ` D3D12_RESOURCE_STATES`.

void QRhiTexture::setPixelSize(const QSize &sz)

Définit la taille de la texture, exprimée en pixels, à l'aide de la fonction ` sz`.

Remarque : la valeur définie n’est prise en compte qu’au prochain appel à la fonction create(), c’est-à-dire lorsque la ressource graphique sous-jacente est (re)créée. Dans le cas contraire, définir une nouvelle valeur est inutile et doit être évité, car cela peut entraîner un état incohérent. Il en va de même pour toutes les autres fonctions de définition.

Voir également pixelSize().

[since 6.8] void QRhiTexture::setReadViewFormat(const QRhiTexture::ViewFormat &fmt)

Définit le format d'affichage de la ressource de shader (ou le format de la vue utilisée pour l'échantillonnage de la texture) sur « fmt ». Par défaut, le format (et l'espace de couleur sRGB) utilisé est le même que celui de la texture elle-même ; dans la plupart des cas, il n'est donc pas nécessaire d'appeler cette fonction.

Ce paramètre n’est pris en compte que lorsque la fonctionnalité « QRhi::TextureViewFormat » est signalée comme prise en charge.

Remarque : cette fonctionnalité est fournie pour permettre la « conversion » entre les formats non-sRGB et sRGB afin que les lectures du shader effectuent, ou non, les conversions sRGB implicites. D’autres types de conversion peuvent fonctionner ou non.

Cette fonction a été introduite dans Qt 6.8.

Voir également readViewFormat().

void QRhiTexture::setSampleCount(int s)

Définit le nombre d'échantillons sur s.

Voir aussi sampleCount().

[since 6.8] void QRhiTexture::setWriteViewFormat(const QRhiTexture::ViewFormat &fmt)

Définit le format d'affichage de la cible de rendu sur ` fmt`. Par défaut, le format (et l'espace colorimétrique sRGB) utilisé est le même que celui de la texture elle-même ; dans la plupart des cas, il n'est donc pas nécessaire d'appeler cette fonction.

Un cas d’utilisation courant pour la spécification d’un format de vue d’écriture consiste à travailler avec des textures fournies en externe qui, indépendamment de notre contrôle, utilisent un format sRGB avec des API 3D telles que Vulkan ou Direct 3D, mais le moteur de rendu est déjà prêt à gérer la linéarisation et la conversion vers sRGB à la fin de son pipeline de shading. Dans ce cas, ce qu’il faut lors du rendu dans une telle texture, c’est une vue de cible de rendu (par exemple VkImageView) qui ait le même format, mais non sRGB. (Si, par exemple, une implémentation OpenXR fournit une texture au format VK_FORMAT_R8G8B8A8_SRGB, il est probable que le rendu vers celle-ci doive être effectué à l’aide d’une vue de type VK_FORMAT_R8G8B8A8_UNORM, si tel est ce qu’exige le pipeline du moteur de rendu ; dans cet exemple, on appellerait cette fonction avec une ` ViewFormat ` dont le format est ` QRhiTexture::RGBA8 ` et dont ` srgb ` est défini sur ` false`).

Ce paramètre n’est pris en compte que lorsque la fonctionnalité « QRhi::TextureViewFormat » est signalée comme prise en charge.

Remarque : cette fonctionnalité est fournie pour permettre la « conversion » entre les espaces de couleurs non-sRGB et sRGB afin que l'écriture du shader n'effectue pas, ou effectue, les conversions sRGB implicites. D'autres types de conversion peuvent fonctionner ou non.

Cette fonction a été introduite dans Qt 6.8.

Voir également writeViewFormat().

[since 6.8] QRhiTexture::ViewFormat QRhiTexture::writeViewFormat() const

Renvoie le format de vue utilisé lors de l'écriture dans la texture et lors de son utilisation avec les fonctions de chargement/enregistrement d'images. Si cette fonction n'est pas appelée, le format de vue est supposé être le même que celui de la fonction ` format()`.

Cette fonction a été introduite dans Qt 6.8.

Voir également setWriteViewFormat().

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