QGLBufferLa classe QGLBuffer fournit des fonctions pour créer et gérer les objets buffers OpenGL. Plus d'informations... #include <QGLBuffer> Voir la position dans l'arbre des classes. Cette classe a été introduite dans Qt 4.7. Description détailléeLa classe QGLBuffer fournit des fonctions pour créer et gérer les objets buffers OpenGL. Les objets buffers sont créés dans le serveur OpenGL ce qui permet à l'application cliente d'éviter d'envoyer les vertex, index, données de texture, etc., à chaque fois qu'elles sont nécessaires. Les objets QGLBuffer peuvent être copiés comme référence pour l'objet buffer OpenGL sous-jacent : QGLBuffer buffer1(QGLBuffer::IndexBuffer); buffer1.create(); QGLBuffer buffer2 = buffer1; QGLBuffer effectue une copie superficielle lorsque les objets sont copiés de cette manière, mais n'implémente pas les sémantiques de la copie sur écriture (COW). L'objet original sera affecté à chaque fois que la copie est modifiée. Typeenum QGLBuffer::AccessCette enum définit le mode d'accès pour QGLBuffer::map().
enum QGLBuffer::TypeCette enum définit le type d'objet buffer OpenGL à créer avec QGLBuffer.
enum QGLBuffer::UsagePatternCette enum définit le schéma d'utilisation de l'objet QGLBuffer.
Fonctions membresQGLBuffer::QGLBuffer ()Construit un nouvel objet buffer de type QGLBuffer::VertexBuffer. Note : le constructeur crée juste l'instance du QGLBuffer. L'objet buffer du serveur OpenGL n'est pas créé avant que create() ne soit appelé. Voir aussi create(). QGLBuffer::QGLBuffer ( QGLBuffer::Type type )Construit un nouvel objet buffer du type. Note : le constructeur crée juste l'instance du QGLBuffer. L'objet buffer du serveur OpenGL n'est pas créé avant que create() ne soit appelé. Voir aussi create(). QGLBuffer::QGLBuffer ( const QGLBuffer & other )Construit une copie superficielle de other. Note : QGLBuffer n'implémente pas les sémantiques copie sur écriture (COW), donc other va être affecté à chaque fois que la copie est modifiée. QGLBuffer::~QGLBuffer ()Détruit l'objet buffer, incluant l'espace de stockage utilisé par le serveur OpenGL. void QGLBuffer::allocate ( const void * data, int count )Alloue le nombre count d'octets pour le buffer, initialisé avec le contenu de data. L'ancien contenu sera supprimé. On suppose que create() a été appelé sur ce buffer et qu'il a été lié au contexte courant. Voir aussi create(), read() et write(). void QGLBuffer::allocate ( int count )Il s'agit d'une fonction surchargée. Alloue, le nombre count d'octets pour le buffer. L'ancien contenu sera supprimé. On suppose que create() a été appelé sur ce buffer et qu'il a été lié au contexte courant. Voir aussi create() et write(). bool QGLBuffer::bind ()Lie le buffer associé à cet objet au contexte OpenGL courant. Retourne false si la liaison n'a pas été possible, souvent à cause d'un type() non pris en charge par cette implémentation d'OpenGL. Le buffer doit être lié avec le même QGLContext courant lors de l'appel à create() ou d'un autre QGLContext qui partage les ressources avec celui-ci. Sinon, false va être retourné. Voir aussi release() et create(). GLuint QGLBuffer::bufferId () constRetourne l'identifiant OpenGL associé à ce buffer ; zéro si le buffer n'a pas été créé. Voir aussi isCreated(). bool QGLBuffer::create ()Crée un objet buffer dans le serveur OpenGL. Retourne true si l'objet a été créé ; sinon false. Cette fonction doit être appelée avec le QGLContext courant. Le buffer va être lié au contexte et ne pourra être utilisé qu'avec ce contexte (ou un autre contexte avec lequel il partage ses ressources). Cette fonction va retourner false si l'implémentation d'OpenGL ne prend pas en charge les buffers ou s'il n'y a pas de QGLContext courant. Voir aussi isCreated(), allocate(), write() et destroy(). void QGLBuffer::destroy ()Détruit cet objet buffer, incluant l'espace de stockage utilisé par le serveur OpenGL. Toutes les références à ce buffer deviendront invalides. bool QGLBuffer::isCreated () constRetourne true si ce buffer a été créé ; sinon false. Voir aussi create() et destroy(). void * QGLBuffer::map ( QGLBuffer::Access access )Accède au contenu de ce buffer dans la mémoire de l'application et retourne un pointeur dessus. Retourne NULL si l'accès n'est pas possible. Le paramètre access indique le type d'accès à effectuer. On suppose que create() a été appelé pour ce buffer et qu'il a été lié au contexte courant. Cette fonction n'est prise en charge sous OpenGL/ES que si l'extension GL_OES_mapbuffer est présente. Voir aussi unmap(), create() et bind(). bool QGLBuffer::read ( int offset, void * data, int count )Lit le nombre count d'octets de ce buffer en partant du décalage offset dans data. Retourne true lors d'une réussite ; false si la lecture à partir du buffer n'est pas prise en charge. La lecture d'un buffer n'est pas prise en charge sous OpenGL/ES. On suppose que ce buffer a été lié au contexte courant. void QGLBuffer::release ()Libère le buffer associé à cet objet du contexte OpenGL courant. Cette fonction doit être appelée avec le même QGLContext courant que lors de l'appel bind() pour ce buffer. Voir aussi bind(). void QGLBuffer::release ( QGLBuffer::Type type ) [static]Libère le buffer associé avec type dans le QGLContext courant. Cette fonction est un appel direct à glBindBuffer(type, 0) afin d'être utilisée lorsque l'appelant ne connaît pas quel QGLBuffer a été lié au contexte et qu'il veut être sûr qu'il est libéré. QGLBuffer::release(QGLBuffer::VertexBuffer); void QGLBuffer::setUsagePattern ( QGLBuffer::UsagePattern value )Définit l'utilisation de cet objet buffer à la valeur value. Cette fonction doit être appelée avec allocate() ou write(). Voir aussi usagePattern(), allocate() et write(). int QGLBuffer::size () constRetourne la taille des données de ce buffer, pour les opérations de lecture. Retourne -1, si la récupération de la taille du buffer n'est pas supportée ou si le buffer n'a pas été créé. Il est supposé que ce buffer a été lié avec le contexte courant. Voir aussi isCreated() et bind(). QGLBuffer::Type QGLBuffer::type () constRetourne le type de buffer représenté par cet objet. bool QGLBuffer::unmap ()Enlève l'accès au buffer après un appel à map(). Retourne true si cela réussit ; sinon false. On suppose que ce buffer a été lié au contexte courant et qu'il a été précédemment accédé avec map(). Cette fonction n'est prise en charge sous OpenGL/ES que si l'extension GL_OES_mapbuffer est présente. Voir aussi map(). QGLBuffer::UsagePattern QGLBuffer::usagePattern () constRetourne le schéma d'utilisation de cet objet buffer. La valeur par défaut est StaticDraw. Voir aussi setUsagePattern(). void QGLBuffer::write ( int offset, const void * data, int count )Remplace le nombre count d'octets de ce buffer, partant du décalage offset avec le contenu de data. Les autres octets du buffer vont être laissés tels quels. On suppose que create() a été appelé pour ce buffer et qu'il a été lié au contexte courant. Voir aussi create(), read() et allocate(). QGLBuffer & QGLBuffer::operator= ( const QGLBuffer & other )Assigne une copie superficielle de other à cet objet. Note : QGLBuffer n'implémente pas les sémantiques copie sur écriture (COW), donc other va être affecté à chaque fois que la copie est modifiée. RemerciementsMerci à Alexandre Laurent pour la traduction ainsi qu'à Lo?c Leguay, Jonathan Courtois et Claude Leloup pour leur relecture ! |
Cette page est une traduction d'une page de la documentation de Qt, écrite par Nokia Corporation and/or its subsidiary(-ies). Les éventuels problèmes résultant d'une mauvaise traduction ne sont pas imputables à Nokia. | Qt 4.7 | |
Copyright © 2024 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon, vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD. | ||
Vous avez déniché une erreur ? Un bug ? Une redirection cassée ? Ou tout autre problème, quel qu'il soit ? Ou bien vous désirez participer à ce projet de traduction ? N'hésitez pas à nous contacter ou par MP ! |