IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenGL Discussion :

OpenGL 3, glew, GLFW


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 157
    Billets dans le blog
    4
    Par défaut OpenGL 3, glew, GLFW
    Bonjour,

    j'ai un problème que je ne parviens pas à résoudre... que je trouve étrange.

    Je souhaite utiliser OpenGL3 (je n'ai pas de souci avec la version 1), ma carte le supporte (GTX260, jusque gl 3.3), mes drivers sont à jour.

    J'ai téléchargé les sources de glew pour cela sur http://glew.sourceforge.net/

    Les projets de test disponibles fonctionnent parfaitement.

    Je parviens à recompiler glew en static lib sur visual studio 2010 afin de l'utiliser dans ma propre solution.
    Et là c'est le drame : tout ce qui vient de glew se plante au link
    unresolved external symbol __imp__glewInit referenced in function _main
    unresolved external symbol __imp____glewBufferData
    unresolved external symbol __imp____glewGenBuffers
    etc

    Ces fonctions fonctionnent dans leurs projets de test fournis avec glew, donc le problème vient clairement de ma solution.
    J'ai essayé de prendre le .lib généré dans la solution de test pour la linker directement, mêmes erreurs.
    Même combat en utilisant les binaires proposés par sourceforge.

    J'ai bien pensé à linker glew_d.lib (le nom du projet glew que j'ai ajouté à ma solution) ainsi que glu32.lib

    J'ai également essayé de créer une solution triviale qui reprend juste glew_static et link le .lib qu'il crée, et ça plante déjà.

    Tous mes define et include sont pourtant identiques à ceux que j'ai repéré dans la solution de test (mais je me trompe peut-être vu le résultat que j'ai )

    Donc à part des incantations voudous, vous êtes mon dernier ressort^^.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 157
    Billets dans le blog
    4
    Par défaut
    Après plus de 2j à chercher dans tous les sens, en comparant les "command line" et ajoutant quelques defines manquant dans celle-ci, ça compile.
    Enfin presque, les "fonctions glew" semblent NULL.

    edit: glewInit() retourne une erreur "missing GL version"
    pour le fenêtrage j'utilise glfw
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 157
    Billets dans le blog
    4
    Par défaut
    L'erreur final venait de GLFW.
    Comme j'ai pu lire http://www.phacks.net/static-compile-glfw-and-glew/ GLFW nécessite un context GL 3.2 et non 3.1

    Et le seul define nécessaire est finalement GLEW_STATIC (logique)

    Maintenant à moi GL 3

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    #include <glew/glew.h>
    #include <glew/wglew.h>
    #include <glfw.h>
    ...
            glfwInit();
    	glfwOpenWindowHint( GLFW_FSAA_SAMPLES, 4 );
    	glfwOpenWindowHint(GLFW_OPENGL_VERSION_MAJOR, 3);
    	glfwOpenWindowHint(GLFW_OPENGL_VERSION_MINOR, 2);
    	glfwOpenWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
    	glfwOpenWindow(1280, 768, 8, 8, 8, 8, 24, 0, GLFW_WINDOW);
    	GLenum initialisationGLEW( glewInit() );
    	if (initialisationGLEW != GLEW_OK)
    	{
    		std::cout<<"erreur initialisation glew : "<<glewGetErrorString(initialisationGLEW)<<std::endl;
    		return -2;
    	}
    L'ordre des includes et des appels à glfw/glew est important !
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

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

Discussions similaires

  1. OpenGL + GLFW 3 Template pour Microsoft Visual Studio 2010
    Par LittleWhite dans le forum Contribuez
    Réponses: 0
    Dernier message: 08/09/2014, 20h43
  2. OpenGL + GLFW 3 Template pour Code::Blocks
    Par LittleWhite dans le forum Contribuez
    Réponses: 0
    Dernier message: 26/08/2014, 20h24
  3. OpenGL et *.3ds
    Par tintin22 dans le forum OpenGL
    Réponses: 4
    Dernier message: 06/05/2002, 14h51
  4. OpenGL ou DirectX
    Par Nadir dans le forum DirectX
    Réponses: 6
    Dernier message: 02/05/2002, 13h48
  5. Opengl -- Les surfaces
    Par Anonymous dans le forum OpenGL
    Réponses: 2
    Dernier message: 02/05/2002, 11h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo