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 :

Problème pour utiliser une extension OpenGL à propos des Frame Buffer Objects


Sujet :

OpenGL

  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2008
    Messages : 179
    Points : 172
    Points
    172
    Par défaut Problème pour utiliser une extension OpenGL à propos des Frame Buffer Objects
    Bonjour,

    suite à une judicieuse suggestion, je m'intéresse aux FBO.
    Après avoir grosso modo compris de quoi il retournait, j'ai eu confirmation que c'était ce que je recherchais... maintenant, j'essaie de les utiliser.

    Le bout de code que j'essaie d'écrire avec Visual C++ est celui-ci (pour commencer):

    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
    17
    18
    19
    20
    	if (l_DrawInFBO)
    	{
    		// CREATES TARGET TEXTURE
    		width				= 320;
    		height				= 480;
    		bytes	= new unsigned char[width*height*4]; // => Unsigned char *, GL_RGBA, GL_UNSIGNED_BYTE
    		glGenTextures(1, &tex);
    		glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
    		glEnable(GL_TEXTURE_2D);
    		glBindTexture(GL_TEXTURE_2D, tex);
    		glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, bytes); 
     
    		// CREATES FBO
    		glGenFramebuffersEXT(1, &fbo);
    		glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fbo);
    		glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, tex, 0);
     
     
    	}
    /

    Problème :
    ...\GlView.cpp(169) : error C2065: 'glGenFramebuffersEXT' : undeclared identifier
    ...\GlView.cpp(170) : error C2065: 'glBindFramebufferEXT' : undeclared identifier
    ...\GlView.cpp(171) : error C2065: 'glFramebufferTexture2DEXT' : undeclared identifier
    ...\GlView.cpp(187) : error C2065: 'glCheckFramebufferStatusEXT' : undeclared identifier
    Ha! On me dit quelque part que je dois rajouter au choix : glee ou glew (les deux sont dispos, donc j'essaie les deux).

    Pas de chance, le compilo râle parceque gl.h et glext.h précèdent glew.h.
    Seulement, il y a un hic : je peux difficilement virer ces deux premiers, car ils sont planqués un peu de partout dans le code (je ne développe qu'un module dans une usine à gaz déjà plus ou moins rodée), et qu'ils sont à tous les niveaux de la chaîne (à part tout en haut... ce qui m'a suggéré la suite).

    Donc je tente un truc pas propre... je le mets tout en haut de la chaîne, dans le StdAfx.h (je devine que ce n'est pas très propre, mais je suis dans la phase de test, alors j'occulte sans remords le sentiment de culpabilité prémonitoire).
    Et là, je me fais encore insulter :

    ...\VolRen.cpp(20) : warning C4273: '__glewTexImage3DEXT' : inconsistent dll linkage. dllexport assumed.

    Creating library Debug/TestVolRen.lib and object Debug/TestVolRen.exp
    GlView.obj : error LNK2001: unresolved external symbol __imp____glewFramebufferTexture2DEXT
    GlView.obj : error LNK2001: unresolved external symbol __imp____glewBindFramebufferEXT
    GlView.obj : error LNK2001: unresolved external symbol __imp____glewGenFramebuffersEXT
    GlView.obj : error LNK2001: unresolved external symbol __imp____glewCheckFramebufferStatusEXT
    Debug/TestVolRen.exe : fatal error LNK1120: 4 unresolved externals
    et pour info , dans le VolRen.cpp (qui est un volume Renderer utilisé par la GlView, vous l'aurez deviné) :
    PFNGLTEXIMAGE3DEXTPROC glTexImage3DEXT;
    chose qui marchait très bien jusque là....


    Bon, à ce stade là, ça commence à devenir un peu flou dans mon esprit, donc je préfère soumettre à votre appréciation ce problème plutôt que de continuer à mettre mon nez dans mon usine à gaz.
    Pourriez-vous me donner votre avis ici, et m'indiquer le cas échéant de quelle façon je peux utiliser le bout de code du haut en sachant que je ne peux toucher qu'à mon module et pas à tous les autres.


    PS : WE de pâques oblige, je ne consulterai pas ce sujet avant mardi. Ne vous en offensez pas!

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 894
    Points : 219 536
    Points
    219 536
    Billets dans le blog
    124
    Par défaut
    Bonjour,

    Je viens ( hier ) d'utiliser un peu glew, et une possibitité et de virer les :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    #include <GL/gl.h>
    #include <GL/glu.h>
    pour les remplacer par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #include <GL/glew.h>
    J'imagine qu'il va les inclure lui même.
    Du moins, faire ce que je viens de dire, dans les fichiers ou tu utilise glew ... ( ce qui me semble logique )

  3. #3
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2006
    Messages
    450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 450
    Points : 1 630
    Points
    1 630
    Par défaut
    As-tu rajouté glew.lib dans les options de compilation ?

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 894
    Points : 219 536
    Points
    219 536
    Billets dans le blog
    124
    Par défaut
    Citation Envoyé par TanEk Voir le message
    As-tu rajouté glew.lib dans les options de compilation ?
    J'avais pas assez réflechi sur la deuxième partie des messages d'erreur ... Mais oui, il semble que ce soit juste qu'il manque le paramétrage de la bibliothèque

  5. #5
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2008
    Messages : 179
    Points : 172
    Points
    172
    Par défaut
    Ha ben oui.... c'était juste un oubli d'ajout de lib.
    J'ai un peu honte sur le coup...
    Ben dans tous les cas, merci beaucoup à vous.

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

Discussions similaires

  1. [2D/3D] Remplacer les pbuffers par des frame buffer objects dans Qt 5
    Par LittleWhite dans le forum Qt
    Réponses: 0
    Dernier message: 22/02/2013, 08h49
  2. problème pour utiliser une enumération
    Par koma777 dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 01/12/2009, 01h27
  3. Réponses: 8
    Dernier message: 28/10/2009, 19h08
  4. Réponses: 1
    Dernier message: 27/08/2007, 09h02

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