Bonjour,
J'ai remarquer que lorsque je crée un context opengl avec wglCreateContext(), glGetString(GL_VERSION) retourne 4.0 !
Est-ce normal ? Je croyais que pour créer un context opengl 3.x / 4.x nous devions utiliser wglCreateContextAttribs ?
Bonjour,
J'ai remarquer que lorsque je crée un context opengl avec wglCreateContext(), glGetString(GL_VERSION) retourne 4.0 !
Est-ce normal ? Je croyais que pour créer un context opengl 3.x / 4.x nous devions utiliser wglCreateContextAttribs ?
Bonjour,
En fait, dans la page de documentation, rien ne dit que c'est le numero de version du contexte qui est retourné. Par contre, il est dit que cela permet de reconnaître la plateforme (et les capacités ?). Donc, c'est surement toujours la version OpenGL maximale supportées.
Dans la spécification, ils sont un peu plus précis :
GetString returns the version number (in the VERSION string) that can be
supported by the current GL context.Après, pour tester, je conseillerai de forcer le contexte à 2.0 (ou 3.0) et de voir ce que retourne la fonction, mais je pense qu'il retournera toujours 4.0 (sinon, il n'y aurait pas de moyen de savoir si un contexte 4.0 est supporté).The profile implemented by the context may be queried by calling GetIntegerv
with value CONTEXT_PROFILE_MASK, which returns a mask containing one of the
bits in table 22.1, corresponding to the API profile implemented by the context (see
appendix D.1).
Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi
Ma page sur DVP
Mon Portfolio
Qui connaît l'erreur, connaît la solution.
merci d'avoir pris le temps de me répondre ! Lorsque je force le contexte a 2, la fonction échoue. Lors que je la force a 3.3, GL_VERSION retourne 3.3 ...
L'algorithme décrit par les spécifications et qui est lié à wglCreateContext() est un algorithme qui essaie de trouver le contexte qui possède la configuration la plus proche (best match) de la configuration demandée par l'utilisateur.
Plus précisément, la carte graphique / pilote possède une série de contexte (que l'on peut connaitre avec glxinfo). Avec wglCreateContextAttribs(), nous spécifions le contexte que nous aimerions avoir (rien ne dit que le contexte crée sera exactement celui que l'on veut). Donc j'imagine que les contextes prioritaires, sont bien les contexte OpenGL 4.0.
(En fait, la spécification défini même comment les différentes options sont prioritaires et si on doit garder celle dont le score est le plus haut, ou le plus bas).
Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi
Ma page sur DVP
Mon Portfolio
Qui connaît l'erreur, connaît la solution.
Partager