Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 9 sur 9
  1. #1
    Invité de passage
    Inscrit en
    novembre 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : novembre 2007
    Messages : 8
    Points : 2
    Points
    2

    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

  2. #2
    Inactif


    Homme Profil pro Guillaume Belz
    Biochimiste
    Inscrit en
    novembre 2008
    Messages
    5 317
    Détails du profil
    Informations personnelles :
    Nom : Homme Guillaume Belz
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Biochimiste
    Secteur : Santé

    Informations forums :
    Inscription : novembre 2008
    Messages : 5 317
    Points : 18 047
    Points
    18 047

    Par défaut

    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)

  3. #3
    Invité de passage
    Inscrit en
    novembre 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : novembre 2007
    Messages : 8
    Points : 2
    Points
    2

    Par défaut

    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

  4. #4
    Inactif


    Homme Profil pro Guillaume Belz
    Biochimiste
    Inscrit en
    novembre 2008
    Messages
    5 317
    Détails du profil
    Informations personnelles :
    Nom : Homme Guillaume Belz
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Biochimiste
    Secteur : Santé

    Informations forums :
    Inscription : novembre 2008
    Messages : 5 317
    Points : 18 047
    Points
    18 047

    Par défaut

    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)

  5. #5
    Invité de passage
    Inscrit en
    novembre 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : novembre 2007
    Messages : 8
    Points : 2
    Points
    2

    Par défaut

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

  6. #6
    Invité de passage
    Inscrit en
    novembre 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : novembre 2007
    Messages : 8
    Points : 2
    Points
    2

    Par défaut

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

  7. #7
    Responsable 2D/3D/Jeux

    Avatar de LittleWhite
    Homme Profil pro Alexandre Laurent
    Ingénieur développement logiciels
    Inscrit en
    mai 2008
    Messages
    16 715
    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 : 16 715
    Points : 86 137
    Points
    86 137

    Par défaut

    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.

  8. #8
    Invité de passage
    Inscrit en
    novembre 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : novembre 2007
    Messages : 8
    Points : 2
    Points
    2

    Par défaut

    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

    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

  9. #9
    Invité de passage
    Inscrit en
    novembre 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : novembre 2007
    Messages : 8
    Points : 2
    Points
    2

    Par défaut

    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

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •