Sur cette page

QOpenGLFramebufferObject Class

La classe QOpenGLFramebufferObject encapsule un objet framebuffer OpenGL. Plus d'informations...

En-tête : #include <QOpenGLFramebufferObject>
CMake : find_package(Qt6 REQUIRED COMPONENTS OpenGL)
target_link_libraries(mytarget PRIVATE Qt6::OpenGL)
qmake : QT += opengl

Types publics

enum Attachment { NoAttachment, CombinedDepthStencil, Depth }
enum FramebufferRestorePolicy { DontRestoreFramebufferBinding, RestoreFramebufferBindingToDefault, RestoreFrameBufferBinding }

Fonctions publiques

QOpenGLFramebufferObject(const QSize &size, GLenum target = GL_TEXTURE_2D)
QOpenGLFramebufferObject(const QSize &size, const QOpenGLFramebufferObjectFormat &format)
QOpenGLFramebufferObject(int width, int height, GLenum target = GL_TEXTURE_2D)
QOpenGLFramebufferObject(int width, int height, const QOpenGLFramebufferObjectFormat &format)
QOpenGLFramebufferObject(const QSize &size, QOpenGLFramebufferObject::Attachment attachment, GLenum target = GL_TEXTURE_2D, GLenum internalFormat = 0)
QOpenGLFramebufferObject(int width, int height, QOpenGLFramebufferObject::Attachment attachment, GLenum target = GL_TEXTURE_2D, GLenum internalFormat = 0)
virtual ~QOpenGLFramebufferObject()
void addColorAttachment(const QSize &size, GLenum internalFormat = 0)
void addColorAttachment(int width, int height, GLenum internalFormat = 0)
QOpenGLFramebufferObject::Attachment attachment() const
bool bind()
QOpenGLFramebufferObjectFormat format() const
GLuint handle() const
int height() const
bool isBound() const
bool isValid() const
bool release()
void setAttachment(QOpenGLFramebufferObject::Attachment attachment)
QSize size() const
QList<QSize> sizes() const
GLuint takeTexture()
GLuint takeTexture(int colorAttachmentIndex)
GLuint texture() const
QList<GLuint> textures() const
QImage toImage(bool flipped = true) const
QImage toImage(bool flipped, int colorAttachmentIndex) const
int width() const

Membres publics statiques

bool bindDefault()
void blitFramebuffer(QOpenGLFramebufferObject *target, const QRect &targetRect, QOpenGLFramebufferObject *source, const QRect &sourceRect, GLbitfield buffers, GLenum filter, int readColorAttachmentIndex, int drawColorAttachmentIndex, QOpenGLFramebufferObject::FramebufferRestorePolicy restorePolicy)
void blitFramebuffer(QOpenGLFramebufferObject *target, QOpenGLFramebufferObject *source, GLbitfield buffers = GL_COLOR_BUFFER_BIT, GLenum filter = GL_NEAREST)
void blitFramebuffer(QOpenGLFramebufferObject *target, const QRect &targetRect, QOpenGLFramebufferObject *source, const QRect &sourceRect, GLbitfield buffers = GL_COLOR_BUFFER_BIT, GLenum filter = GL_NEAREST)
void blitFramebuffer(QOpenGLFramebufferObject *target, const QRect &targetRect, QOpenGLFramebufferObject *source, const QRect &sourceRect, GLbitfield buffers, GLenum filter, int readColorAttachmentIndex, int drawColorAttachmentIndex)
bool hasOpenGLFramebufferBlit()
bool hasOpenGLFramebufferObjects()

Description détaillée

La classe QOpenGLFramebufferObject encapsule un objet framebuffer OpenGL, défini par l'extension GL_EXT_framebuffer_object. Elle fournit une surface de rendu qui peut être peinte avec un QPainter avec l'aide de QOpenGLPaintDevice, ou rendue en utilisant les appels natifs d'OpenGL. Cette surface peut être liée et utilisée comme une texture normale dans votre propre code de dessin OpenGL. Par défaut, la classe QOpenGLFramebufferObject génère une texture OpenGL 2D (en utilisant la cible GL_TEXTURE_2D ), qui est utilisée comme cible de rendu interne.

Il est important d'avoir un contexte OpenGL courant lors de la création d'un QOpenGLFramebufferObject, sinon l'initialisation échouera.

Créez l'instance de QOpenGLFrameBufferObject avec l'attachement CombinedDepthStencil si vous voulez que QPainter rende correctement. Notez que vous devez créer un QOpenGLFramebufferObject avec plus d'un échantillon par pixel pour que les primitives soient anticrénelées lorsque vous dessinez en utilisant un QPainter. Pour créer un objet framebuffer multi-échantillon, vous devez utiliser l'un des constructeurs qui prennent un paramètre QOpenGLFramebufferObjectFormat, et définir la propriété QOpenGLFramebufferObjectFormat::samples() à une valeur non nulle.

Pour les objets framebuffer multi-échantillons, un tampon de rendu de couleur est créé, sinon une texture avec la cible de texture spécifiée est créée. Le tampon de rendu des couleurs ou la texture aura le format interne spécifié et sera lié à l'attachement GL_COLOR_ATTACHMENT0 dans l'objet framebuffer.

Les cibles de rendu multiples sont également prises en charge, si l'implémentation OpenGL le permet. Ici, il y aura plusieurs textures (ou, dans le cas d'un multi-échantillonnage, des renderbuffers) présentes et chacune d'entre elles sera attachée à GL_COLOR_ATTACHMENT0, 1, 2, ...

Si vous voulez utiliser un objet framebuffer avec le multi-échantillonnage activé comme texture, vous devez d'abord le copier dans un objet framebuffer normal en utilisant QOpenGLContext::blitFramebuffer().

Il est possible de dessiner dans un QOpenGLFramebufferObject en utilisant QPainter et QOpenGLPaintDevice dans un thread séparé.

Documentation des types de membres

enum QOpenGLFramebufferObject::Attachment

Ce type d'énumération est utilisé pour configurer les tampons de profondeur et de pochoir attachés à l'objet framebuffer lors de sa création.

ConstanteValeurDescription de l'objet
QOpenGLFramebufferObject::NoAttachment0Aucun attachement n'est ajouté à l'objet framebuffer. Notez que les tests de profondeur et de pochoir OpenGL ne fonctionneront pas lors du rendu sur un objet framebuffer sans tampon de profondeur ou de pochoir. C'est la valeur par défaut.
QOpenGLFramebufferObject::CombinedDepthStencil1Si l'extension GL_EXT_packed_depth_stencil est présente, un tampon de profondeur et de stencil combiné est attaché. Si l'extension n'est pas présente, seul un tampon de profondeur est attaché.
QOpenGLFramebufferObject::Depth2Un tampon de profondeur est attaché à l'objet framebuffer.

Voir également attachment().

enum QOpenGLFramebufferObject::FramebufferRestorePolicy

Ce type d'énumération est utilisé pour configurer le comportement lié à la restauration des liaisons avec le framebuffer lors de l'appel à blitFramebuffer().

ConstanteValeurDescription
QOpenGLFramebufferObject::DontRestoreFramebufferBinding0Ne pas restaurer la liaison précédente du framebuffer. L'appelant est responsable du suivi et du réglage de la liaison du framebuffer si nécessaire.
QOpenGLFramebufferObject::RestoreFramebufferBindingToDefault1Après l'opération de blit, lier le framebuffer par défaut.
QOpenGLFramebufferObject::RestoreFrameBufferBinding2Restaurer le framebuffer précédemment lié. Cette opération peut s'avérer coûteuse en raison de la nécessité d'interroger le framebuffer actuellement lié.

Voir aussi blitFramebuffer().

Documentation des fonctions membres

[explicit] QOpenGLFramebufferObject::QOpenGLFramebufferObject(const QSize &size, GLenum target = GL_TEXTURE_2D)

Construit un objet framebuffer OpenGL et lie une texture OpenGL 2D au tampon de la taille size. La texture est liée à la cible GL_COLOR_ATTACHMENT0 dans l'objet framebuffer.

Le paramètre target est utilisé pour spécifier la cible de la texture OpenGL. La cible par défaut est GL_TEXTURE_2D. Gardez à l'esprit que les textures GL_TEXTURE_2D doivent avoir une puissance de 2 en largeur et en hauteur (par exemple 256x512), à moins que vous n'utilisiez OpenGL 2.0 ou une version plus récente.

Par défaut, aucun tampon de profondeur et de pochoir n'est attaché. Ce comportement peut être modifié en utilisant l'un des constructeurs surchargés.

Le format de texture interne par défaut est GL_RGBA8 pour OpenGL de bureau, et GL_RGBA pour OpenGL/ES.

Il est important d'avoir un contexte OpenGL courant lors de la création de QOpenGLFramebufferObject, sinon l'initialisation échouera.

Voir aussi size(), texture(), et attachment().

QOpenGLFramebufferObject::QOpenGLFramebufferObject(const QSize &size, const QOpenGLFramebufferObjectFormat &format)

Construit un objet framebuffer OpenGL de l'adresse size donnée en fonction de l'adresse format fournie.

QOpenGLFramebufferObject::QOpenGLFramebufferObject(int width, int height, GLenum target = GL_TEXTURE_2D)

Construit un objet framebuffer OpenGL et lie une texture OpenGL 2D au tampon des objets width et height.

Voir aussi size() et texture().

QOpenGLFramebufferObject::QOpenGLFramebufferObject(int width, int height, const QOpenGLFramebufferObjectFormat &format)

Construit un objet framebuffer OpenGL avec les adresses width et height en fonction de l'adresse format.

QOpenGLFramebufferObject::QOpenGLFramebufferObject(const QSize &size, QOpenGLFramebufferObject::Attachment attachment, GLenum target = GL_TEXTURE_2D, GLenum internalFormat = 0)

Construit un objet framebuffer OpenGL et lie une texture au tampon du paramètre size.

Le paramètre attachment décrit la configuration du tampon de profondeur/stencil, target la cible de la texture et internalFormat le format interne de la texture. La cible de texture par défaut est GL_TEXTURE_2D, tandis que le format interne par défaut est GL_RGBA8 pour OpenGL desktop et GL_RGBA pour OpenGL/ES.

Voir aussi size(), texture(), et attachment().

QOpenGLFramebufferObject::QOpenGLFramebufferObject(int width, int height, QOpenGLFramebufferObject::Attachment attachment, GLenum target = GL_TEXTURE_2D, GLenum internalFormat = 0)

Construit un objet framebuffer OpenGL et lie une texture au tampon des paramètres width et height.

Le paramètre attachment décrit la configuration du tampon de profondeur/stencil, target la cible de la texture et internalFormat le format interne de la texture. La cible de texture par défaut est GL_TEXTURE_2D, tandis que le format interne par défaut est GL_RGBA8 pour OpenGL desktop et GL_RGBA pour OpenGL/ES.

Voir aussi size(), texture(), et attachment().

[virtual noexcept] QOpenGLFramebufferObject::~QOpenGLFramebufferObject()

Détruit l'objet framebuffer et libère les ressources allouées.

void QOpenGLFramebufferObject::addColorAttachment(const QSize &size, GLenum internalFormat = 0)

Crée et attache une texture ou un tampon de rendu supplémentaire d'une largeur et d'une hauteur de size.

Il y a toujours une pièce jointe à GL_COLOR_ATTACHMENT0. Appelez cette fonction pour créer des pièces jointes supplémentaires à GL_COLOR_ATTACHMENT1, GL_COLOR_ATTACHMENT2, ...

Lorsque internalFormat n'est pas 0, il spécifie le format interne de la texture ou du tampon de rendu. Sinon, le format par défaut GL_RGBA ou GL_RGBA8 est utilisé.

Note : Ceci n'est fonctionnel que lorsque plusieurs cibles de rendu sont supportées par l'implémentation OpenGL. Si ce n'est pas le cas, la fonction n'ajoutera pas d'attachement de couleur supplémentaire. Appelez QOpenGLFunctions::hasOpenGLFeature() avec QOpenGLFunctions::MultipleRenderTargets au moment de l'exécution pour vérifier si le MRT est supporté.

Remarque : le format interne des pièces jointes de couleur peut être différent, mais il peut y avoir des limitations sur les combinaisons prises en charge, en fonction des pilotes.

Remarque : la taille des pièces jointes en couleur peut varier, mais le rendu est limité à la zone qui correspond à toutes les pièces jointes, conformément à la spécification OpenGL. Certains pilotes peuvent toutefois ne pas être totalement conformes à cet égard.

void QOpenGLFramebufferObject::addColorAttachment(int width, int height, GLenum internalFormat = 0)

Crée et attache une texture ou un tampon de rendu supplémentaire de taille width et height.

Lorsque internalFormat n'est pas 0, il spécifie le format interne de la texture ou du tampon de rendu. Sinon, le format par défaut GL_RGBA ou GL_RGBA8 est utilisé.

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

QOpenGLFramebufferObject::Attachment QOpenGLFramebufferObject::attachment() const

Renvoie l'état des tampons de profondeur et de pochoir attachés à cet objet framebuffer.

Voir aussi setAttachment().

bool QOpenGLFramebufferObject::bind()

Bascule le rendu du framebuffer par défaut, fourni par le système de fenêtrage, vers cet objet framebuffer. Retourne true en cas de succès, false dans le cas contraire.

Remarque : si takeTexture() a été appelé, une nouvelle texture est créée et associée à l'objet framebuffer. Cette opération est potentiellement coûteuse et modifie l'état du contexte (la texture actuellement liée).

Voir aussi release().

[static] bool QOpenGLFramebufferObject::bindDefault()

Retourne le rendu au framebuffer par défaut, fourni par le système de fenêtrage. Renvoie true en cas de succès, false dans le cas contraire.

Voir aussi bind() et release().

[static] void QOpenGLFramebufferObject::blitFramebuffer(QOpenGLFramebufferObject *target, const QRect &targetRect, QOpenGLFramebufferObject *source, const QRect &sourceRect, GLbitfield buffers, GLenum filter, int readColorAttachmentIndex, int drawColorAttachmentIndex, QOpenGLFramebufferObject::FramebufferRestorePolicy restorePolicy)

Permet de passer du rectangle sourceRect de l'objet framebuffer source au rectangle targetRect de l'objet framebuffer target.

Si source ou target vaut 0, le framebuffer par défaut sera utilisé à la place d'un objet framebuffer comme source ou cible respectivement.

Cette fonction n'aura aucun effet à moins que hasOpenGLFramebufferBlit() ne renvoie un résultat positif.

Le paramètre buffers doit être un masque composé de n'importe quelle combinaison de GL_COLOR_BUFFER_BIT, GL_DEPTH_BUFFER_BIT et GL_STENCIL_BUFFER_BIT. Tout type de tampon qui n'est pas présent à la fois dans les tampons source et cible est ignoré.

Les rectangles sourceRect et targetRect peuvent avoir des tailles différentes ; dans ce cas, buffers ne doit pas contenir GL_DEPTH_BUFFER_BIT ou GL_STENCIL_BUFFER_BIT. Le paramètre filter doit être fixé à GL_LINEAR ou GL_NEAREST, et spécifie si l'interpolation linéaire ou la plus proche doit être utilisée lors de la mise à l'échelle.

Si source est égal à target, une copie est effectuée dans le même tampon. Les résultats sont indéfinis si les rectangles source et cible se chevauchent et ont des tailles différentes. Les tailles doivent également être identiques si l'un des objets framebuffer est un framebuffer multi-échantillon.

Remarque : le test des ciseaux limitera la zone de décoloration s'il est activé.

Lorsque plusieurs cibles de rendu sont utilisées, readColorAttachmentIndex et drawColorAttachmentIndex spécifient l'index des attachements de couleur dans les framebuffers source et destination.

Le site restorePolicy détermine si le framebuffer qui était lié avant l'appel de cette fonction doit être restauré, ou si le framebuffer par défaut doit être lié avant de retourner, ou si l'appelant est responsable du suivi et de la définition du framebuffer lié. La restauration du framebuffer précédent peut être relativement coûteuse en raison de l'appel à glGetIntegerv qui, sur certains pilotes OpenGL, peut impliquer un blocage du pipeline.

Voir aussi hasOpenGLFramebufferBlit().

[static] void QOpenGLFramebufferObject::blitFramebuffer(QOpenGLFramebufferObject *target, QOpenGLFramebufferObject *source, GLbitfield buffers = GL_COLOR_BUFFER_BIT, GLenum filter = GL_NEAREST)

Surcharge de commodité pour effectuer un blit entre deux objets framebuffer.

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

[static] void QOpenGLFramebufferObject::blitFramebuffer(QOpenGLFramebufferObject *target, const QRect &targetRect, QOpenGLFramebufferObject *source, const QRect &sourceRect, GLbitfield buffers = GL_COLOR_BUFFER_BIT, GLenum filter = GL_NEAREST)

* Surcharge de commodité pour effectuer un blit entre deux objets framebuffer.

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

[static] void QOpenGLFramebufferObject::blitFramebuffer(QOpenGLFramebufferObject *target, const QRect &targetRect, QOpenGLFramebufferObject *source, const QRect &sourceRect, GLbitfield buffers, GLenum filter, int readColorAttachmentIndex, int drawColorAttachmentIndex)

Surcharge de commodité pour effectuer un blit entre deux objets framebuffer et restaurer la liaison framebuffer précédente. Équivaut à appeler blitFramebuffer(target, targetRect, source, sourceRect, buffers, filter, readColorAttachmentIndex, drawColorAttachmentIndex, RestoreFrameBufferBinding).

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

QOpenGLFramebufferObjectFormat QOpenGLFramebufferObject::format() const

Renvoie le format de cet objet framebuffer.

GLuint QOpenGLFramebufferObject::handle() const

Renvoie la poignée de l'objet framebuffer OpenGL pour cet objet framebuffer (renvoyé par la fonction glGenFrameBuffersEXT() ). Cette poignée peut être utilisée pour attacher de nouvelles images ou de nouveaux tampons au framebuffer. L'utilisateur est responsable du nettoyage et de la destruction de ces objets.

[static] bool QOpenGLFramebufferObject::hasOpenGLFramebufferBlit()

Renvoie true si l'extension OpenGL GL_EXT_framebuffer_blit est présente sur ce système ; sinon, renvoie false.

Voir aussi blitFramebuffer().

[static] bool QOpenGLFramebufferObject::hasOpenGLFramebufferObjects()

Renvoie true si l'extension OpenGL GL_EXT_framebuffer_object est présente sur ce système ; sinon, renvoie false.

int QOpenGLFramebufferObject::height() const

Renvoie la hauteur des attachements de l'objet framebuffer.

bool QOpenGLFramebufferObject::isBound() const

Renvoie true si l'objet framebuffer est actuellement lié au contexte actuel, sinon false est renvoyé.

bool QOpenGLFramebufferObject::isValid() const

Renvoie true si l'objet framebuffer est valide.

Le framebuffer peut devenir invalide si le processus d'initialisation échoue, si l'utilisateur attache un tampon invalide à l'objet framebuffer, ou si une largeur/hauteur non puissance deux est spécifiée comme taille de texture si la cible de la texture est GL_TEXTURE_2D. Cette limitation ne s'applique pas si la version d'OpenGL est 2.0 ou supérieure, ou si l'extension GL_ARB_texture_non_power_of_two est présente.

Le framebuffer peut également devenir invalide si le QOpenGLContext dans lequel le framebuffer a été créé est détruit et qu'il n'y a pas d'autres contextes partagés qui peuvent prendre en charge le framebuffer.

bool QOpenGLFramebufferObject::release()

Retourne le rendu au framebuffer par défaut, fourni par le système de fenêtrage. Retourne true en cas de succès, false sinon.

Voir aussi bind().

void QOpenGLFramebufferObject::setAttachment(QOpenGLFramebufferObject::Attachment attachment)

Définit les attaches de l'objet framebuffer à attachment.

Ceci peut être utilisé pour libérer ou rattacher les attaches des tampons de profondeur et de stencil selon les besoins.

Remarque : cette fonction modifie la liaison actuelle du framebuffer.

Voir également attachment().

QSize QOpenGLFramebufferObject::size() const

Renvoie la taille des attachements de couleur et de profondeur/stencil attachés à cet objet framebuffer.

QList<QSize> QOpenGLFramebufferObject::sizes() const

Renvoie les tailles de toutes les couleurs attachées à cet objet framebuffer.

GLuint QOpenGLFramebufferObject::takeTexture()

Renvoie l'identifiant de la texture attachée à cet objet framebuffer. La propriété de la texture est transférée à l'appelant.

Si l'objet framebuffer est actuellement lié, un release() implicite sera effectué. Lors du prochain appel à bind(), une nouvelle texture sera créée.

Si un objet framebuffer multi-échantillon est utilisé, il n'y a pas de texture et la valeur de retour de cette fonction est invalide. De même, les objets framebuffer incomplets renverront également 0.

Voir aussi texture(), bind() et release().

GLuint QOpenGLFramebufferObject::takeTexture(int colorAttachmentIndex)

Renvoie l'identifiant de la texture attachée à la couleur de l'index colorAttachmentIndex de cet objet framebuffer. La propriété de la texture est transférée à l'appelant.

Lorsque colorAttachmentIndex est 0, le comportement est identique à la variante sans paramètre de cette fonction.

Si l'objet framebuffer est actuellement lié, un release() implicite sera effectué. Lors du prochain appel à bind(), une nouvelle texture sera créée.

Si un objet framebuffer multi-échantillon est utilisé, il n'y a pas de texture et la valeur de retour de cette fonction sera invalide. De même, les objets framebuffer incomplets renverront également 0.

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

GLuint QOpenGLFramebufferObject::texture() const

Renvoie l'identifiant de la texture attachée comme cible de rendu par défaut dans cet objet framebuffer. Cet identifiant de texture peut être lié comme une texture normale dans votre propre code OpenGL.

Si un objet framebuffer multi-échantillon est utilisé, la valeur renvoyée par cette fonction sera invalide.

Lorsque plusieurs textures sont attachées, la valeur de retour est l'ID de la première.

Voir aussi takeTexture() et textures().

QList<GLuint> QOpenGLFramebufferObject::textures() const

Renvoie l'identifiant de texture pour toutes les textures attachées.

Si un objet framebuffer multi-échantillon est utilisé, un vecteur vide est renvoyé.

Voir aussi takeTexture() et texture().

QImage QOpenGLFramebufferObject::toImage(bool flipped = true) const

Renvoie le contenu de cet objet framebuffer sous forme de QImage.

Si flipped est vrai, l'image est retournée des coordonnées OpenGL aux coordonnées matricielles. S'il est utilisé avec QOpenGLPaintDevice, flipped doit être l'opposé de la valeur de QOpenGLPaintDevice::paintFlipped().

L'image renvoyée a un format ARGB32 prémultiplié ou RGB32. Ce dernier n'est utilisé que lorsque internalTextureFormat() vaut GL_RGB. Depuis Qt 5.2, la fonction revient à RGBA8888 ou RGBx8888 prémultiplié lorsque la lecture en (A)RGB32 n'est pas supportée, ce qui inclut OpenGL ES. Depuis Qt 5.4 une image A2BGR30 est retournée si le format interne est RGB10_A2, et depuis Qt 5.12 une image RGBA64 est retournée si le format interne est RGBA16.

Si le rendu dans le framebuffer n'a pas été effectué en tenant compte de l'alpha prémultiplié, créez un wrapper QImage avec un format non prémultiplié. Ceci est nécessaire avant d'effectuer des opérations comme QImage::save() car sinon les données de l'image seraient non prémultipliées, même si elles n'étaient pas prémultipliées au départ. Pour créer une telle enveloppe sans effectuer de copie des données de pixels, procédez comme suit :

QImage fboImage(fbo.toImage());
QImage image(fboImage.constBits(), fboImage.width(), fboImage.height(), QImage::Format_ARGB32);

Pour les objets framebuffer multi-échantillonnés, les échantillons sont résolus à l'aide de l'extension GL_EXT_framebuffer_blit. Si l'extension n'est pas disponible, le contenu de l'image renvoyée est indéfini.

Pour les tampons d'images à échantillonnage unique, le contenu est récupéré via glReadPixels. Il s'agit d'une opération potentiellement coûteuse et inefficace. Il est donc recommandé d'utiliser cette fonction le moins souvent possible.

Voir aussi QOpenGLPaintDevice::paintFlipped().

QImage QOpenGLFramebufferObject::toImage(bool flipped, int colorAttachmentIndex) const

Renvoie le contenu de l'attachement de couleur de l'index colorAttachmentIndex de cet objet framebuffer sous forme de QImage. Cette méthode retourne l'image des coordonnées OpenGL vers les coordonnées raster lorsque flipped est défini sur true.

Note : Cette surcharge n'est pleinement fonctionnelle que lorsque plusieurs cibles de rendu sont supportées par l'implémentation OpenGL. Si ce n'est pas le cas, un seul attachement de couleur sera mis en place.

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

int QOpenGLFramebufferObject::width() const

Renvoie la largeur des pièces jointes de l'objet framebuffer.

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