QGLFormatLa classe QGLFormat sp�cifie le format d'affichage d'un contexte de rendu OpenGL. Plus d'informations... #include <QGLFormat> Voir la position dans l'arbre des classes. Description d�taill�eLa classe QGLFormat sp�cifie le format d'affichage d'un contexte de rendu OpenGL. Un format d'affichage poss�de plusieurs caract�ristiques :
On peut aussi sp�cifier le nombre de bits de profondeur voulu pour le buffer de couleur, le buffer de profondeur, le buffer alpha, le buffer d'accumulation et le stencil buffer avec les fonctions : setRedBufferSize(), setGreenBufferSize(), setBlueBufferSize(), setDepthBufferSize(), setAlphaBufferSize(), setAccumBufferSize() et setStencilBufferSize(). � noter que m�me si on veut un buffer de profondeur sur 32 bits (par exemple avec setDepthBufferSize(32)), le format qui va �tre choisi peut ne pas avoir un buffer de profondeur de 32 bits, m�me s'il y a un format disponible poss�dant un buffer de profondeur de 32 bits. La principale raison a pour origine l'algorithme de s�lection, d�pendant du syst�me et de certaines options de format ayant priorit� sur les autres. On cr�e et indique quelles sont les options de rendu que l'on veut pour un contexte de rendu OpenGL � un objet QGLFormat. Les pilotes OpenGL ou les cartes acc�l�ratrices peuvent ou non prendre en charge des fonctionnalit�s avanc�es telles que le canal alpha ou la vision st�r�o. Si on demande des fonctionnalit�s que le pilote/mat�riel ne peut pas fournir lors de la cr�ation d'un QGLWidget, on va avoir un contexte de rendu poss�dant le plus proche sous-ensemble de fonctionnalit�s disponibles. Il y a plusieurs m�thodes pour d�finir les caract�ristiques d'affichage d'un contexte de rendu. L'une d'entre elles est de cr�er un QGLFormat et de le d�finir comme d�faut pour l'application toute enti�re : QGLFormat fmt; fmt.setAlpha(true); fmt.setStereo(true); QGLFormat::setDefaultFormat(fmt); Ou on peut sp�cifier le format voulu lors de la cr�ation d'une instance de la sous-classe QGLWidget : QGLFormat fmt; fmt.setDoubleBuffer(false); // simple buffer fmt.setDirectRendering(false); // rendu logiciel MyGLWidget* myWidget = new MyGLWidget(fmt, ...); Apr�s que le widget ait �t� cr��, on peut chercher quelles ont �t� les fonctionnalit�s que le syst�me a �t� capable de fournir : QGLFormat fmt; fmt.setOverlay(true); fmt.setStereo(true); MyGLWidget* myWidget = new MyGLWidget(fmt, ...); if (!myWidget->format().stereo()) { // OK, on enl�ve les lunettes if (!myWidget->format().hasOverlay()) { qFatal("Cool hardware required"); } } OpenGL est une marque d�pos�e de Silicon Graphics, Inc. aux �tats-Unis est dans les autres pays. Voir aussi QGLContext et QGLWidget. Typeenum QGLFormat::OpenGLContextProfileCette enum d�crit les profils de contexte d'OpenGL qui peuvent �tre sp�cifi�s au contexte impl�mentant une version OpenGL 3.2 ou sup�rieur. Ces profils sont diff�rents des profils OpenGL ES.
Cette enum a �t� introduite ou modifi�e dans Qt 4.7. enum QGLFormat::OpenGLVersionFlagflags QGLFormat::OpenGLVersionFlagsCette enum d�crit les diff�rentes versions d'OpenGL qui sont reconnues par Qt. On utilise la fonction QGLFormat::openGLVersionFlags() pour identifier quelles versions sont prises en charge durant l'ex�cution.
Voir aussi http://www.opengl.org pour plus d'informations � propos des diff�rentes r�visions d'OpenGL. Cette enum a �t� introduite ou modifi�e dans Qt 4.2. Le type OpenGLVersionFlags est un typedef pour QFlags<OpenGLVersionFlag>. Il contient une combinaison avec l'op�rateur OU logique des valeurs de OpenGLVersionFlag. Voir aussi openGLVersionFlags(). Fonctions membresQGLFormat::QGLFormat ()Construit un objet QGLFormat avec la configuration par d�faut suivante :
QGLFormat::QGLFormat ( QGL::FormatOptions options, int plane = 0 )Cr�e un objet QGLFormat qui est une copie du format courant defaultFormat(). Si options n'est pas 0, le format par d�faut est modifi� par les options de format sp�cifi�es. Le param�tre options devrait �tre des valeurs de QGL::FormatOption combin�es avec l'op�rateur OU logique. Ce constructeur permet de sp�cifier, facilement, un certain format voulu dans les classes d�riv�es de QGLWidget, par exemple : // Le rendu dans MyGLWidget d�pend de l'utilisation // du stencil buffer et du canal alpha MyGLWidget::MyGLWidget(QWidget* parent) : QGLWidget(QGLFormat(QGL::StencilBuffer | QGL::AlphaChannel), parent) { if (!format().stencil()) qWarning("Could not get stencil buffer; results will be suboptimal"); if (!format().alpha()) qWarning("Could not get alpha channel; results will be suboptimal"); ... } � noter qu'il y a des valeurs de QGL::FormatOption pour d�finir des param�tres de format activ�es et d�sactiv�es � la fois, par exemple QGL::DepthBuffer et QGL::NoDepthBuffer, QGL::DirectRendering et QGL::IndirectRendering, etc. Le param�tre plane est par d�faut � 0 et correspond au plan avec lequel ce format devra �tre associ�. Les impl�mentations d'OpenGL ne prennent pas toutes en charge les diff�rents plans de calques. Voir aussi defaultFormat(), setOption() et setPlane(). QGLFormat::QGLFormat ( const QGLFormat & other )Construit une copie de other. QGLFormat::~QGLFormat ()D�truit le QGLFormat. bool QGLFormat::accum () constRetourne true si le buffer d'accumulation est activ� ; sinon retourne false. Le buffer d'accumulation est d�sactiv� par d�faut. Voir aussi setAccum() et setAccumBufferSize(). int QGLFormat::accumBufferSize () constRetourne la taille du buffer d'accumulation. Voir aussi setAccumBufferSize(), accum() et setAccum(). bool QGLFormat::alpha () constRetourne true si le buffer alpha du framebuffer est activ� ; sinon retourne false. Le buffer alpha est d�sactiv� par d�faut. Voir aussi setAlpha() et setAlphaBufferSize(). int QGLFormat::alphaBufferSize () constRetourne la taille du buffer alpha. Voir aussi alpha(), setAlpha() et setAlphaBufferSize(). int QGLFormat::blueBufferSize () constRetourne la taille du buffer bleu. Cette fonction a �t� introduite dans Qt 4.2. Voir aussi setBlueBufferSize(). QGLFormat QGLFormat::defaultFormat () [static]Retourne le QGLFormat par d�faut pour l'application. Tous les objets QGLWidget qui sont cr��s utilisent ce format tant qu'un autre n'est pas sp�cifi�, par exemple lors de leurs constructions. Si aucun format par d�faut n'a �t� d�fini avec setDefaultFormat(), il est le m�me que celui cr�� avec QGLFormat(). Voir aussi setDefaultFormat(). QGLFormat QGLFormat::defaultOverlayFormat () [static]Retourne le QGLFormat par d�faut pour les contextes calques. Le format de calque par d�faut est :
Voir aussi setDefaultOverlayFormat() et setDefaultFormat(). bool QGLFormat::depth () constRetourne true si le buffer d profondeur est activ� ; sinon retourne false. Le buffer de profondeur est activ� par d�faut. Voir aussi setDepth() et setDepthBufferSize(). int QGLFormat::depthBufferSize () constRetourne la taille du buffer de profondeur. Voir aussi depth(), setDepth() et setDepthBufferSize(). bool QGLFormat::directRendering () constRetourne true si le rendu direct est activ� ; sinon retourne false. Le rendu direct est activ� par d�faut. Voir aussi setDirectRendering(). bool QGLFormat::doubleBuffer () constRetourne true si le double buffering est activ� ; sinon retourne false. Le double buffering est activ� par d�faut. Voir aussi setDoubleBuffer(). int QGLFormat::greenBufferSize () constRetourne la taille du buffer vert. Cette fonction a �t� introduite dans Qt 4.2. Voir aussi setGreenBufferSize(). bool QGLFormat::hasOpenGL () [static]Retourne true si le syst�me de fen�tres prend en charge OpenGL ; sinon retourne false. Attention : cette fonction ne doit pas �tre appel�e avant que l'objet QApplication ne soit cr��. bool QGLFormat::hasOpenGLOverlays () [static]Retourne true si le syst�me de fen�tres prend en charge les calques OpenGL ; sinon retourne false. Attention : cette fonction ne doit pas �tre appel�e avant que l'objet QApplication ne soit cr��. bool QGLFormat::hasOverlay () constRetourne true si le calque est activ� ; sinon retourne false. Le calque est d�sactiv� par d�faut. Voir aussi setOverlay(). int QGLFormat::majorVersion () constRetourne la version majeure d'OpenGL. Cette fonction a �t� introduite dans Qt 4.7. Voir aussi setVersion() et minorVersion(). int QGLFormat::minorVersion () constRetourne la version mineure d'OpenGL. Cette fonction a �t� introduite dans Qt 4.7. Voir aussi setVersion() et majorVersion(). OpenGLVersionFlags QGLFormat::openGLVersionFlags () [static]Identifie, � l'ex�cution, quelles versions d'OpenGL sont prises en charge par la plateforme actuelle. � noter que si la version 1.5 d'OpenGL est prise en charge, les versions inf�rieures (c'est-�-dire, 1.4 et inf�rieures) sont aussi prises en charge. Pour identifier la prise en charge d'une fonctionnalit� particuli�re telle que le multitexturing, on teste la version dans laquelle cette fonctionnalit� a �t� impl�ment�e (c'est-�-dire, la version 1.3 dans ce cas) afin de s'adapter au plus large groupe de plateformes. Cette fonction n�cessite un contexte OpenGL valide courant pour fonctionner ; sinon la fonction retournera OpenGL_Version_None. Cette fonction a �t� introduite dans Qt 4.2. Voir aussi hasOpenGL() et hasOpenGLOverlays(). int QGLFormat::plane () constRetourne le plan de ce format. La valeur pour les plans normaux est 0. La valeur pour le calque est 1, qui indique le premier plan calque. Voir aussi setPlane() et defaultOverlayFormat(). OpenGLContextProfile QGLFormat::profile () constRetourne le profil du contexte OpenGL. Cette fonction a �t� introduite dans Qt 4.7. Voir aussi setProfile(). int QGLFormat::redBufferSize () constRetourne la taille du buffer rouge. Cette fonction a �t� introduite dans Qt 4.2. Voir aussi setRedBufferSize(). bool QGLFormat::rgba () constRetourne true si le mode de couleurs RGBA est d�fini. Retourne false si le mode de couleurs index�es est d�fini. Le mode de couleurs par d�faut est RGBA. Voir aussi setRgba(). bool QGLFormat::sampleBuffers () constRetourne true si la prise en charge des buffers multisample est activ�e ; sinon retourne false. Le buffer multisample est d�sactiv� par d�faut. Voir aussi setSampleBuffers(). int QGLFormat::samples () constRetourne le nombre d'�chantillons par pixel lorsque le multisampling est activ�. Par d�faut, le plus haut nombre d'�chantillons disponible est utilis�. Voir aussi setSampleBuffers(), sampleBuffers() et setSamples(). void QGLFormat::setAccum ( bool enable )Si enable est true, le buffer d'accumulation est activ� ; sinon le buffer d'accumulation est d�sactiv�. Le buffer d'accumulation est d�sactiv� par d�faut. Le buffer d'accumulation est utilis� pour cr�er des effets de flou et d'exposition multiples. Voir aussi accum() et setAccumBufferSize(). void QGLFormat::setAccumBufferSize ( int size )D�finit la taille voulue pour le buffer d'accumulation. size est la profondeur de bits pour chaque composant RGBA. Voir aussi accum(), setAccum() et accumBufferSize(). void QGLFormat::setAlpha ( bool enable )Si enable est true, le buffer alpha est activ� ; sinon le buffer alpha est d�sactiv�. Le buffer alpha est d�sactiv� par d�faut. Le buffer alpha est g�n�ralement utilis� pour l'impl�mentation de la transparence ou de la translucidit�. Le A dans RGBA sp�cifie la transparence d'un pixel. Voir aussi alpha() et setAlphaBufferSize(). void QGLFormat::setAlphaBufferSize ( int size )D�finit la taille voulue pour le buffer alpha � size. Cette fonction active implicitement le canal alpha. Voir aussi setRedBufferSize(), setGreenBufferSize() et alphaBufferSize(). void QGLFormat::setBlueBufferSize ( int size )D�finit la taille voulue pour le buffer bleu � size. Cette fonction a �t� introduite dans Qt 4.2. Voir aussi blueBufferSize(), setRedBufferSize(), setGreenBufferSize() et setAlphaBufferSize(). void QGLFormat::setDefaultFormat ( const QGLFormat & f ) [static]D�finit un nouveau QGLFormat par d�faut pour l'application � f. Par exemple, pour d�finir le simple buffering � la place du double buffering, la fonction main() doit contenir un code similaire � : QApplication a(argc, argv); QGLFormat f; f.setDoubleBuffer(false); QGLFormat::setDefaultFormat(f); Voir aussi defaultFormat(). void QGLFormat::setDefaultOverlayFormat ( const QGLFormat & f ) [static]D�finit un nouveau QGLFormat par d�faut pour les contextes de calque � f. Ce format est utilis� � chaque fois qu'un QGLWidget est cr�� avec un format ayant le calque hasOverlay() d'activ�. Par exemple, pour obtenir le double buffering d'un contexte calque (si disponible), on utilise un code similaire � : QGLFormat f = QGLFormat::defaultOverlayFormat(); f.setDoubleBuffer(true); QGLFormat::setDefaultOverlayFormat(f); Comme toujours, on peut savoir, apr�s la cr�ation du widget, si l'impl�mentation d'OpenGL a �t� capable de fournir le format voulu : // ...suite MyGLWidget* myWidget = new MyGLWidget(QGLFormat(QGL::HasOverlay), ...); if (myWidget->format().hasOverlay()) { // Oui, nous avons un calque, v�rifions __son__ format: QGLContext* olContext = myWidget->overlayContext(); if (olContext->format().doubleBuffer()) ; // Oui, nous avons un calque avec double buffer else ; // Non, seul un calque avec simple buffer est disponible } Voir aussi defaultOverlayFormat(). void QGLFormat::setDepth ( bool enable )Si enable est true, le buffer de profondeur est activ� ; sinon le buffer de profondeur est d�sactiv�. Le buffer de profondeur est activ� par d�faut. Le but d'un buffer de profondeur (ou Z-buffering) est d'enlever les surfaces cach�es. Les pixels re�oivent une valeur Z bas�e sur la distance de la cam�ra. Un pixel ayant une valeur Z haute est plus proche de la cam�ra qu'un pixel ayant une valeur Z basse. Cette information est utilis�e pour d�cider si le pixel est dessin� ou non. Voir aussi depth() et setDepthBufferSize(). void QGLFormat::setDepthBufferSize ( int size )D�finit la profondeur minimale du buffer � size. Voir aussi depthBufferSize(), setDepth() et depth(). void QGLFormat::setDirectRendering ( bool enable )Si enable est true, active le rendu direct ; sinon d�sactive le rendu direct. Le rendu direct est activ� par d�faut. L'activation de cette fonction va permettre � OpenGL d'ignorer le syst�me de fen�tre sous-jacent et de dessiner directement depuis le mat�riel � l'�cran, si cela est pris en charge par le syst�me. Voir aussi directRendering(). void QGLFormat::setDoubleBuffer ( bool enable )Si enable est true, active le double buffering ; sinon active le simple buffering. Le double buffering est activ� par d�faut. Le double buffering est une technique o� les graphismes sont dessin�s dans un buffer hors �cran et non directement � l'�cran. Lorsque le dessin est fini, le programme appelle une fonction swapBuffers() pour �changer le contenu du buffer avec celui de l'�cran. Le r�sultat est un dessin sans saut d'images et souvent une meilleure performance. � noter que les contextes ayant un simple buffer ne sont actuellement pas pris en charge avec EGL. Voir aussi doubleBuffer(), QGLContext::swapBuffers() et QGLWidget::swapBuffers(). void QGLFormat::setGreenBufferSize ( int size )D�finit la taille voulue du buffer vert � size. Cette fonction a �t� introduite dans Qt 4.2. Voir aussi greenBufferSize(), setRedBufferSize(), setBlueBufferSize() et setAlphaBufferSize(). void QGLFormat::setOption ( QGL::FormatOptions opt )D�finit l'option de format � opt. Voir aussi testOption(). void QGLFormat::setOverlay ( bool enable )Si enable est true, active le calque ; sinon d�sactive le calque. L'activation du calque va forcer QGLWidget la cr�ation d'un contexte additionnel dans un calque. Voir la documentation de QGLWidget pour de plus amples informations. Voir aussi hasOverlay(). void QGLFormat::setPlane ( int plane )D�finit le plan demand� � plane. 0 est le plan normal, 1 le premier calque, 2 le second calque, etc. ; -1, -2, etc. sont les sous-calques. � noter que contrairement aux autres sp�cifications de format, les sp�cifications pour les plans vont parfaitement correspondre. Cela signifie que si on sp�cifie un plan que l'impl�mentation sous-jacente d'OpenGL ne peut pas fournir, un QGLWidget invalide va �tre cr��. Voir aussi plane(). void QGLFormat::setProfile ( OpenGLContextProfile profile )D�finit le profil de contexte OpenGL � profile. Le profile est ignor� si la version d'OpenGL voulue est inf�rieure � 3.2. Cette fonction a �t� introduite dans Qt 4.7. Voir aussi profile(). void QGLFormat::setRedBufferSize ( int size )D�finit la taille voulue pour le buffer rouge � size. Cette fonction a �t� introduite dans Qt 4.2. Voir aussi redBufferSize(), setGreenBufferSize(), setBlueBufferSize() et setAlphaBufferSize(). void QGLFormat::setRgba ( bool enable )Si enable est true, active le mode RGBA. Si enable est false, active le mode de couleurs index�es. Le mode de couleurs par d�faut est RGBA. RGBA est le mode voulu dans la plupart des applications OpenGL. Dans le mode de couleurs RGBA on peut sp�cifier les couleurs comme ensemble rouge + vert + bleu + alpha. Dans le mode de couleurs index�es on peut sp�cifier un index dans une table de correspondance de couleurs. Voir aussi rgba(). void QGLFormat::setSampleBuffers ( bool enable )Si enable est true, un contexte OpenGL avec des buffers multisample est choisi ; sinon l'option est ignor�e. Voir aussi sampleBuffers(), setSamples() et samples(). void QGLFormat::setSamples ( int numSamples )D�finit le nombre d'�chantillons par pixel voulu, lorsque le multisampling est activ�, � numSamples. Par d�faut, le plus haut nombre d'�chantillons disponible est utilis�. Voir aussi setSampleBuffers(), sampleBuffers() et samples(). void QGLFormat::setStencil ( bool enable )Si enable est true, active le stencil buffer ; sinon d�sactive le stencil buffer. Le stencil buffer est activ� par d�faut. Le stencil buffer masque certaines parties de la zone de dessin afin que ces zones ne soient pas dessin�es. Voir aussi stencil() and setStencilBufferSize(). void QGLFormat::setStencilBufferSize ( int size )D�finit la taille voulue pour le stencil buffer � size. Voir aussi stencilBufferSize(), setStencil() et stencil(). void QGLFormat::setStereo ( bool enable )Si enable est true, active le st�r�o buffering ; sinon d�sactive le st�r�o buffering. Le st�r�o buffering est d�sactiv� par d�faut. Le st�r�o buffering fournit des buffers de couleurs additionnels pour g�n�rer des images du point de vue de chaque \oeil. Voir aussi stereo(). void QGLFormat::setSwapInterval ( int interval )D�finit l'intervalle d'�change voulu. Cela peut �tre utilis� pour synchroniser le dessin d'OpenGL dans un syst�me de fen�tres au rafraichissement vertical de l'�cran. La d�finition d'un intervalle interval � 0 va d�sactiver la synchronisation verticale, n'importe quelle valeur sup�rieure � 0 va activer la synchronisation verticale. Sous Windows et sous X11, lorsque les extensions WGL_EXT_swap_control et GLX_SGI_video_sync sont utilis�es, le param�tre interval peut �tre utilis� pour d�finir le nombre minimal d'images qui sont affich�es avant l'�change de buffers. En effet, la d�finition de l'intervalle interval � 10, signifie qu'il y aura 10 r�affichages avant chaque �change de buffers. Sous Windows, l'extension WGL_EXT_swap_control doit �tre pr�sente et sous X11 l'extension GLX_SGI_video_sync doit �tre pr�sente. Cette fonction a �t� introduite dans Qt 4.2. Voir aussi swapInterval(). void QGLFormat::setVersion ( int major, int minor )D�finit la version d'OpenGL aux nombres majeur major et mineur minor. Si un contexte compatible avec la version d'OpenGL demand�e ne peut �tre cr��, un contexte compatible avec la version 1.X va �tre cr�� � la place. Cette fonction a �t� introduite dans Qt 4.7. Voir aussi majorVersion() et minorVersion(). bool QGLFormat::stencil () constRetourne true si le stencil buffer est activ� ; sinon retourne false. Le stencil buffer est activ� par d�faut. Voir aussi setStencil() et setStencilBufferSize(). int QGLFormat::stencilBufferSize () constRetourne la taille du stencil buffer. Voir aussi stencil(), setStencil() et setStencilBufferSize(). bool QGLFormat::stereo () constRetourne true si le st�r�o buffering est activ� ; sinon retourne false. Le st�r�o buffering est d�sactiv� par d�faut. Voir aussi setStereo(). int QGLFormat::swapInterval () constRetourne l'intervalle d'�change actuellement d�fini. -1 est renvoy� si la d�finition d'un intervalle d'�change n'est pas prise en charge par l'impl�mentation d'OpenGL. Cette fonction a �t� introduite dans Qt 4.2. Voir aussi setSwapInterval(). bool QGLFormat::testOption ( QGL::FormatOptions opt ) constRetourne true si l'option de format opt est d�finie ; sinon retourne false. Voir aussi setOption(). QGLFormat & QGLFormat::operator= ( const QGLFormat & other )Affecte other � cet objet. En relation mais non membres de la classebool operator!= ( const QGLFormat & a, const QGLFormat & b )Retourne false si toutes les options des deux objets QGLFormat a et b sont �gales ; sinon retourne true. bool operator== ( const QGLFormat & a, const QGLFormat & b )Retourne true si toutes les options des deux objets QGLFormat a et b sont �gales ; sinon retourne false. 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 © 2025 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 ! |