QQuick3DTextureData Class
Classe de base permettant de définir des données de texture personnalisées. En savoir plus…
| Header: | #include <QQuick3DTextureData> |
| Since: | Qt 6.0 |
| In QML: | TextureData |
| Inherits: | QQuick3DObject |
Types publics
| enum | Format { None, RGBA8, RGBA16F, RGBA32F, RGBE8, …, ASTC_12x12 } |
Fonctions publiques
| int | depth() const |
| QQuick3DTextureData::Format | format() const |
| bool | hasTransparency() const |
| void | setDepth(int depth) |
| void | setFormat(QQuick3DTextureData::Format format) |
| void | setHasTransparency(bool hasTransparency) |
| void | setSize(const QSize &size) |
| void | setTextureData(const QByteArray &data) |
| QSize | size() const |
| const QByteArray | textureData() const |
Description détaillée
La classe QQuick3DTextureData permet de spécifier des données de texture personnalisées pour un objet de type « Texture » dans une scène 3D de l’ Qt Quick.
Bien que cela ne soit pas strictement nécessaire, l’usage courant consiste à hériter de cette classe. La sous-classe est ensuite exposée à QML en l’enregistrant dans le système de types. La propriété ` textureData ` d’un ` Texture ` peut alors être définie pour faire référence à une instance du type enregistré.
Exemple d’implémentation :
class CustomTextureData : public QQuick3DTextureData
{
Q_OBJECT
... properties ...
public:
CustomTextureData() { regenerateTextureData(); }
void setProperty(...)
{
// Change relevant internal data.
// ...
// Update the texture data
regenerateTextureData();
// Finally, trigger an update. This is relevant in case nothing else
// is changed in the scene; this way we make sure a new frame will
// be rendered
update();
}
private:
void regenerateTextureData()
{
QByteArray textureData;
textureData = generateTextureData();
setTextureData(textureData);
setSize(QSize(256, 256));
setFormat(QQuick3DTextureData::Format::RGBA8)
setHasTransparency(true);
}
};Cette classe peut ensuite être enregistrée en tant que type QML et utilisée avec ` Texture`.
Dans Qt 5, l’enregistrement des types s’effectuait via ` qmlRegisterType` :
qmlRegisterType<MyCustomTextureData>("Example", 1, 0, "MyCustomTextureData");Dans Qt 6, l’approche par défaut consiste à utiliser l’enregistrement automatique à l’aide du système de construction. Au lieu d’appeler ` qmlRegisterType`, le fichier ` .pro ` peut désormais contenir :
CONFIG += qmltypes
QML_IMPORT_NAME = Example
QML_IMPORT_MAJOR_VERSION = 1Avec CMake, l’enregistrement automatique est le comportement par défaut ; aucun paramétrage particulier n’est donc nécessaire au-delà de la configuration de base du module QML :
qt_add_qml_module(application
URI Example
VERSION 1.0
)L’implémentation de la classe doit ajouter ` QML_NAMED_ELEMENT` :
class CustomTextureData : public QQuick3DTextureData
{
Q_OBJECT
QML_NAMED_ELEMENT(MyCustomTextureData)
...
};Le code QML peut alors utiliser le type personnalisé :
import Example 1.0
Model {
source: "#Cube"
materials: [
DefaultMaterial {
diffuseMap: diffuseMapCustomTexture
}
]
Texture {
id: diffuseMapCustomTexture
textureData: MyCustomTextureData { }
}
}Documentation sur les types membres
enum QQuick3DTextureData::Format
Renvoie le format de couleur des données de texture attribuées à la propriété « textureData ».
| Constante | Valeur | Description |
|---|---|---|
QQuick3DTextureData::None | 0 | Le format de couleur n'est pas défini |
QQuick3DTextureData::RGBA8 | 1 | Le format de couleur est considéré comme un entier de 8 bits dans les canaux R, G, B et alpha. |
QQuick3DTextureData::RGBA16F | 2 | Le format de couleur est considéré comme un nombre à virgule flottante de 16 bits dans les canaux R, G, B et alpha. |
QQuick3DTextureData::RGBA32F | 3 | Le format de couleur est considéré comme un nombre à virgule flottante de 32 bits dans les canaux R, G, B et alpha. |
QQuick3DTextureData::RGBE8 | 4 | Le format de couleur est considéré comme une mantisse de 8 bits dans les canaux R, G et B, avec un exposant partagé de 8 bits. |
QQuick3DTextureData::R8 | 5 | Le format de couleur est considéré comme un entier de 8 bits dans le canal R. |
QQuick3DTextureData::R16 | 6 | Le format de couleur est considéré comme un entier de 16 bits dans le canal R. |
QQuick3DTextureData::R16F | 7 | Le format de couleur est considéré comme un nombre à virgule flottante de 16 bits dans le canal R. |
QQuick3DTextureData::R32F | 8 | Le format de couleur est considéré comme un nombre à virgule flottante de 32 bits dans le canal R. |
QQuick3DTextureData::BC1 | 9 | Le format de couleur est considéré comme un format compressé BC1 avec les canaux R, G, B et alpha. |
QQuick3DTextureData::BC2 | 10 | Le format de couleur est considéré comme un format compressé BC2 avec les canaux R, G, B et alpha. |
QQuick3DTextureData::BC3 | 11 | Le format de couleur est considéré comme un format compressé BC3 avec les canaux R, G, B et alpha. |
QQuick3DTextureData::BC4 | 12 | Le format de couleur est considéré comme un format compressé BC4 avec un canal de couleur. |
QQuick3DTextureData::BC5 | 13 | Le format de couleur est considéré comme un format compressé BC5 avec deux canaux de couleur. |
QQuick3DTextureData::BC6H | 14 | Le format de couleur est considéré comme un format compressé BC6H avec trois canaux de couleur à plage dynamique élevée. |
QQuick3DTextureData::BC7 | 15 | Le format de couleur est considéré comme un format compressé BC7 avec des canaux R, G, B et alpha. |
QQuick3DTextureData::DXT1_RGBA | 16 | Le format de couleur est considéré comme un format compressé DXT1 avec des canaux R, G, B et alpha. |
QQuick3DTextureData::DXT1_RGB | 17 | Le format couleur est considéré comme un format compressé DXT1 avec des canaux R, G et B. |
QQuick3DTextureData::DXT3_RGBA | 18 | Le format de couleur est considéré comme un format compressé DXT3 avec des canaux R, G, B et alpha. |
QQuick3DTextureData::DXT5_RGBA | 19 | Le format couleur est considéré comme un format compressé DXT5 avec des canaux R, G, B et alpha. |
QQuick3DTextureData::ETC2_RGB8 | 20 | Le format de couleur est considéré comme un format compressé ETC2 pour les données RGB888. |
QQuick3DTextureData::ETC2_RGB8A1 | 21 | Le format de couleur est considéré comme un format compressé ETC2 pour les données RGBA où le canal alpha est de 1 bit. |
QQuick3DTextureData::ETC2_RGBA8 | 22 | Le format de couleur est considéré comme un format compressé ETC2 avec des données RGBA8888. |
QQuick3DTextureData::ASTC_4x4 | 23 | Le format couleur est considéré comme un format compressé ASTC avec une empreinte de bloc 4x4. |
QQuick3DTextureData::ASTC_5x4 | 24 | Le format de couleur est considéré comme un format compressé ASTC avec une taille de bloc de 5x4. |
QQuick3DTextureData::ASTC_5x5 | 25 | Le format de couleur est considéré comme un format compressé ASTC avec une taille de bloc de 5x5. |
QQuick3DTextureData::ASTC_6x5 | 26 | Le format de couleur est considéré comme un format compressé ASTC avec une taille de bloc de 6x5. |
QQuick3DTextureData::ASTC_6x6 | 27 | Le format de couleur est considéré comme un format compressé ASTC avec une empreinte de bloc 6x6. |
QQuick3DTextureData::ASTC_8x5 | 28 | Le format couleur est considéré comme un format compressé ASTC avec une empreinte de bloc 8x5. |
QQuick3DTextureData::ASTC_8x6 | 29 | Le format couleur est considéré comme un format compressé ASTC avec une empreinte de blocs de 8x6. |
QQuick3DTextureData::ASTC_8x8 | 30 | Le format couleur est considéré comme un format compressé ASTC avec une empreinte de blocs de 8x8. |
QQuick3DTextureData::ASTC_10x5 | 31 | Le format couleur est considéré comme un format compressé ASTC avec une empreinte de blocs de 10x5. |
QQuick3DTextureData::ASTC_10x6 | 32 | Le format couleur est considéré comme un format compressé ASTC avec une empreinte de blocs de 10×6. |
QQuick3DTextureData::ASTC_10x8 | 33 | Le format couleur est considéré comme un format compressé ASTC avec une empreinte de blocs de 10×8. |
QQuick3DTextureData::ASTC_10x10 | 34 | Le format couleur est considéré comme un format compressé ASTC avec une empreinte de blocs de 10x10. |
QQuick3DTextureData::ASTC_12x10 | 35 | Le format couleur est considéré comme un format compressé ASTC avec une empreinte de blocs de 12x10. |
QQuick3DTextureData::ASTC_12x12 | 36 | Le format couleur est considéré comme un format compressé ASTC avec une empreinte de blocs de 12×12. Remarque : à l'exception de Remarque : le format « Remarque : l’utilisation de la valeur |
Documentation des fonctions membres
int QQuick3DTextureData::depth() const
Renvoie la profondeur des données de texture en pixels.
Voir aussi setDepth().
QQuick3DTextureData::Format QQuick3DTextureData::format() const
Renvoie le format des données de texture.
Voir aussi setFormat().
bool QQuick3DTextureData::hasTransparency() const
Renvoie « true » si les données de texture comportent de la transparence.
La valeur par défaut est false.
Voir aussi ` setHasTransparency()`.
void QQuick3DTextureData::setDepth(int depth)
Définit l'depth des données de texture en pixels. Si la valeur de la profondeur est supérieure à 0, la texture est traitée comme une texture 3D.
Voir également depth().
void QQuick3DTextureData::setFormat(QQuick3DTextureData::Format format)
Définit l'format e des données de texture.
Le format par défaut est /c RGBA8
Voir aussi format().
void QQuick3DTextureData::setHasTransparency(bool hasTransparency)
Définissez la propriété « hasTransparency » sur « true » si les données de texture comportent un canal alpha actif contenant des valeurs non opaques.
Cette option est utilisée par le moteur à des fins d’optimisation, afin que, pour les formats prenant en charge un canal alpha, il ne soit pas nécessaire de vérifier si chaque valeur est non opaque.
Voir également hasTransparency().
void QQuick3DTextureData::setSize(const QSize &size)
Définit l'size des données de texture en pixels.
Voir aussi size().
void QQuick3DTextureData::setTextureData(const QByteArray &data)
Définit les données de texture. Le contenu de ` data ` doit respecter les propriétés ` size ` et ` format `, car le moteur tentera de charger et d'utiliser ces données comme s'il s'agissait d'une texture de taille et de format correspondants ; tout écart entraînera soit un rendu incorrect de la texture, soit, éventuellement, un plantage.
Voir également textureData().
QSize QQuick3DTextureData::size() const
Renvoie la taille des données de texture en pixels.
Voir aussi setSize().
const QByteArray QQuick3DTextureData::textureData() const
Renvoie les données de texture actuelles définies par cet élément.
Voir aussi setTextureData().
© 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.