Précédent   Forum du club des développeurs et IT Pro > C et C++ > Bibliothèques > Qt
Qt Forum d'entraide technique sur la bibliothèque Qt. Avant de poster -> F.A.Q Qt
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 14/12/2012, 16h34   #1
el goupil
Invité de passage
 
Inscription : novembre 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 8
Points : 1
Points : 1
Par défaut fonction Opengl dans Qt 5.0

Bonjour a tous,

j'ouvre cette discussion car je n'arrive a rien avec google.
Voila le problème :
je veux utiliser des fonctions opengl dans un projet Qt.
Je constate que certaines de ces fonctions marchent même si elles ne sont pas listées dans Qt assistant et d'autres fonctions ne marchent pas alors qu'elles sont dans les exemples qt

Je prend par exemple glbegin() et a chaque compil j'ai l'erreur "glBegin : identificateur introuvable.

J'utilise le compilateur msvc 10.0 avec qt 5.0.0
J'ai bien le qt +=opengl
j'ai tenter l'include Gl/gl.h mais la c'est la cata
...je ne sais plus quelle piste explorer.... une idée?
merci beaucoup
el goupil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2012, 19h40   #2
gbdivers
Responsable C++

 
Homme Guillaume Belz
Biochimiste
Inscription : novembre 2008
Messages : 5 318
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Belz
Âge : 37
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Biochimiste
Secteur : Santé

Informations forums :
Inscription : novembre 2008
Messages : 5 318
Points : 19 518
Points : 19 518
Bonjour et bienvenue sur le forum

En effet, il y a un problème avec le message d'erreur. Il aurait du être "glBegin ? C'est quoi cette fonction dépréciée ? Veuillez trouver un cours sur OpenGL à jour et ne plus utiliser glBegin"

Voici la liste des fonctions GL importées dans Qt 5 : http://qt-project.org/doc/qt-5.0/qtg...functions.html
Pour autres, il faut utiliser getProcAdress ou utiliser un lib externe (GLEW par exemple)
__________________
Vous souhaitez rejoindre l'équipe de bénévoles qui fait vivre Developpez (traduction, rédaction, modération) ? Contactez moi par MP.

Ma page personnelle avec la liste de mes articles - Mon blog sur le C++, Qt et les GPU.

Je suis régulièrement sur le chat pour les questions C++/Qt.

Apprendre Qt 5 : vidéos d'installation (YouTube), extraites du livre Créer des applications avec Qt 5.
gbdivers est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 15/12/2012, 00h39   #3
el goupil
Invité de passage
 
Inscription : novembre 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 8
Points : 1
Points : 1
merci de vous intéresser au probleme.

je me suis penché sur la fonction getProcAdress qui si j'ai bien compris teste la compatibilité de la fonction opengl.
Et là mauvaise surprise j'ai encore cette même erreur de compilation :

c3861 : getProcAdress : indentificateur introuvable

J'ai bien vérifier que cette fonction (appartenant à la classe QOpenGLContext) se trouve bien dans ma version de qt installée.
Le plus incroyable c'est que j'ai testé d'autres fonctions de cette même classe et certaines marchent et d'autres non avec l'erreur c3861.

Je vais re-vérifier la partie compilation, faire d'autres test...
Je viens de reinstaller qt sur windows xp étant avant sur seven 64bits : pas de résultat

j'ai jamais eu de gros problèmes de compilation avec qt mais je là suis tombé sur un os
el goupil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2012, 00h47   #4
gbdivers
Responsable C++

 
Homme Guillaume Belz
Biochimiste
Inscription : novembre 2008
Messages : 5 318
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Belz
Âge : 37
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Biochimiste
Secteur : Santé

Informations forums :
Inscription : novembre 2008
Messages : 5 318
Points : 19 518
Points : 19 518
Salut

Tu compiles avec quelles modules inclus ?
Dans Qt5, les fonctions OpenGL sont passée (en partie) du module QtOpenGL au module QtGui
As tu essayer de compiler en code d'exemple utilisant OpenGL ?

Tu as un code minimal reproduisant l'erreur ? (avec le .pro)
__________________
Vous souhaitez rejoindre l'équipe de bénévoles qui fait vivre Developpez (traduction, rédaction, modération) ? Contactez moi par MP.

Ma page personnelle avec la liste de mes articles - Mon blog sur le C++, Qt et les GPU.

Je suis régulièrement sur le chat pour les questions C++/Qt.

Apprendre Qt 5 : vidéos d'installation (YouTube), extraites du livre Créer des applications avec Qt 5.
gbdivers est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2012, 17h09   #5
el goupil
Invité de passage
 
Inscription : novembre 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 8
Points : 1
Points : 1
Salut ,

j'ai exploré ton idée de la fonction : glGetString
Je crois que je me suis un peu trop précipité dans l'utilisation d'opengl bref...

Avec cette glGetString(GL_VERSION) j'ai donc la version opengl ES 2.0 qui s'affiche. ET dans opengl ES 2.0 le glBegin() est absent.
glBegin() est mentionné dans opengl 2.1

Voila, mon problème est résolu.
Par contre j'ai une dernière question : j'ai cru comprendre que la version opengl dépend du compilateur (je compile avec msvc 10). Est-ce exact ?
Je ne peux pas programmer avec opengl 3.3 par exemple ? ... j'ai tellement recherché d'information que je commence a me mélanger les pinceaux...
el goupil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2012, 22h36   #6
el goupil
Invité de passage
 
Inscription : novembre 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 8
Points : 1
Points : 1
... je n'avais pas vu cet article :
http://qt.developpez.com/actu/49471/...rne-dans-Qt-5/
je pense pouvoir m'en sortir, mais domage que le download du fichier source
de l'exemple de marche pas.
Merci
el goupil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2012, 23h24   #7
LittleWhite
Responsable 2D/3D/Jeux


 
Avatar de LittleWhite
 
Homme Alexandre Laurent
Ingénieur développement logiciels
Inscription : mai 2008
Messages : 10 439
Détails du profil
Informations personnelles :
Nom : Homme Alexandre Laurent
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : mai 2008
Messages : 10 439
Points : 40 255
Points : 40 255
Bonsoir,

Vous pouvez trouver ce même fichier ici : http://www.kdab.com/~blackie/dump/dd-opengl.zip
__________________
Vous souhaitez participer à la rubrique 2D / 3D / Jeux ? Contactez-moi
La rubrique a aussi un blog !

Ma page sur DVP
Mon Portfolio

Qui connaît l'erreur, connaît la solution.
LittleWhite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2012, 17h04   #8
el goupil
Invité de passage
 
Inscription : novembre 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 8
Points : 1
Points : 1
Merci !! pour le lien.

Malheureusement je n'arrive a compiler les exemples.
Avant tout cela voici ma configuration :
je suis sous windows 7 (64bits)
- qt-windows-opensource-5.0.0-rc2-msvc2010_32-x86-offline
- je compile avec microsoft visual C++ compiler 10.0 (x86)

J'ai pris l'exemple ex_basic_shader et je me retrouve avec 83 erreurs .
les erreurs majeurs viennent de qopenglextensions.h

J'ai donc isoler le problème en utilisant le fichiet Qtgui/qopenglext.h qui apparement contient les mêmes definitions.
Ainsi dans un projet basic j'ai simplement rajouter le : #include <QtGui/qopenglext.h>

et voici les erreurs

Citation:
17:52:19: Exécution des étapes pour le projet E_conexte...
17:52:19: Configuration inchangée, étape QMake sautée.
17:52:19: Débute : "C:\Qt\Qt5.0.0-rc2\Tools\QtCreator\bin\jom.exe"
C:\Qt\Qt5.0.0-rc2\Tools\QtCreator\bin\jom.exe -f Makefile.Debug
cl -c -nologo -Zm200 -Zc:wchar_t -Zi -MDd -GR -W3 -w34100 -w34189 -EHsc -DUNICODE -DWIN32 -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_OPENGL_ES_2 -DQT_OPENGL_ES_2_ANGLE -I"..\..\..\..\..\..\Qt\Qt5.0.0-rc2\5.0.0-rc2\msvc2010\include" -I"..\..\..\..\..\..\Qt\Qt5.0.0-rc2\5.0.0-rc2\msvc2010\include\QtOpenGL" -I"..\..\..\..\..\..\Qt\Qt5.0.0-rc2\5.0.0-rc2\msvc2010\include\QtWidgets" -I"..\..\..\..\..\..\Qt\Qt5.0.0-rc2\5.0.0-rc2\msvc2010\include\QtGui" -I"..\..\..\..\..\..\Qt\Qt5.0.0-rc2\5.0.0-rc2\msvc2010\include\QtCore" -I"debug" -I"..\..\..\..\..\..\Qt\Qt5.0.0-rc2\5.0.0-rc2\msvc2010\mkspecs\win32-msvc2010" -Fodebug\ @C:\Users\oo\AppData\Local\Temp\glWindow.obj.2012.63.jom
glWindow.cpp
C:\Qt\Qt5.0.0-rc2\5.0.0-rc2\msvc2010\include\GL/gl.h(55) : error C2371: 'GLdouble'ÿ: red‚finitionÿ; types de base diff‚rents
C:\Qt\Qt5.0.0-rc2\5.0.0-rc2\msvc2010\include\QtGui/qopengl.h(71)ÿ: voir la d‚claration de 'GLdouble'
C:\Qt\Qt5.0.0-rc2\5.0.0-rc2\msvc2010\include\GL/gl.h(201) : warning C4005: 'GL_DOUBLE'ÿ: red‚finition de macro
C:\Qt\Qt5.0.0-rc2\5.0.0-rc2\msvc2010\include\QtGui/qopengl.h(68)ÿ: voir la d‚finition pr‚c‚dente de 'GL_DOUBLE'
C:\Qt\Qt5.0.0-rc2\5.0.0-rc2\msvc2010\include\QtGui/qopenglext.h(5250) : warning C4005: 'GL_COVERAGE_SAMPLES_NV'ÿ: red‚finition de macro
C:\Qt\Qt5.0.0-rc2\5.0.0-rc2\msvc2010\include\QtGui/qopengles2ext.h(530)ÿ: voir la d‚finition pr‚c‚dente de 'GL_COVERAGE_SAMPLES_NV'
C:\Qt\Qt5.0.0-rc2\5.0.0-rc2\msvc2010\include\QtGui/qopenglext.h(5503) : error C2371: 'GLintptr'ÿ: red‚finitionÿ; types de base diff‚rents
C:\Qt\Qt5.0.0-rc2\5.0.0-rc2\msvc2010\include\GLES2/gl2.h(38)ÿ: voir la d‚claration de 'GLintptr'
C:\Qt\Qt5.0.0-rc2\5.0.0-rc2\msvc2010\include\QtGui/qopenglext.h(5504) : error C2371: 'GLsizeiptr'ÿ: red‚finitionÿ; types de base diff‚rents
C:\Qt\Qt5.0.0-rc2\5.0.0-rc2\msvc2010\include\GLES2/gl2.h(39)ÿ: voir la d‚claration de 'GLsizeiptr'
jom: C:\Users\oo\Desktop\fraiseuse_3d\section_SOFT_3D\E_conexte\Makefile.Debug [debug\glWindow.obj] Error 2
jom: C:\Users\oo\Desktop\fraiseuse_3d\section_SOFT_3D\E_conexte\Makefile [debug] Error 2
17:52:23: Le processus "C:\Qt\Qt5.0.0-rc2\Tools\QtCreator\bin\jom.exe" s'est terminé avec le code 2.
Error while building/deploying project E_conexte (kit: Desktop Qt 5.0.0 MSVC2010 32bit (SDK))
Lors de l'exécution de l'étape "Make"
je pense qu'il y a une erreur dans les include ou de compilation. Je cherche depuis un bon moment la-dessus mais sans resultat.
Quelqu'un aurait une piste ??
merci
el goupil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2012, 22h46   #9
el goupil
Invité de passage
 
Inscription : novembre 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 8
Points : 1
Points : 1
Bonjour,

les exemples que j'ai pu télécharger, bien que ne pouvant pas les compiler m'aident quand même super bien.....Donc je ferme le post

merci
el goupil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 10h22.


 
 
 
 
Partenaires

Hébergement Web