Bienvenue, Invité. Merci de vous connecter ou de vous inscrire. Avez-vous oublié d'activer ?

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - Wimoh

Pages: [1]
1
Graphique / Re : Problème avec GLEW en static
« le: Août 07, 2012, 12:47:32 pm »
J'ai fini par trouver tout seul ! 8)
Qu'est-ce qu'on en apprend des choses à chercher tout seul ! ;D

J'ai appris à compiler de toutes les façons tordues possibles alors que ça n'avait aucun rapport avec mon problème  ::)

J'avais fais l'hypothèse -fausse- que la classe sf::RenderWindow initialisait glew puisque SFML créer le context OpenGL.
Donc la solution à mon problème:
glewInit();
 

J'ai cru ça parce qu'il faut initialiser glew pour utiliser certaines fonctions OpenGL (d'où mes crashes), une petite parenthèse dans le tuto OpenGL si possible   ::)

2
Graphique / Re : Problème avec GLEW en static
« le: Août 07, 2012, 12:56:07 am »
Je suis sous Windows 7 64, j'utilise le dernier mingw + code::blocks, le dernier glew, opengl constext 4.2

J'ai finalement réussi à faire des compilations dynamiques, résultats:
     - sfml static & new_glew static => compile pas comme dis plus haut
     - sfml static & new_glew dynamic => crash sans explication
     - sfml dynamic & new_glew dynamic => crash sans explication
     - sfml dynamic & new_glew static => crash sans explication
     - sfml  sans new_glew mais avec mon code gl => compile pas

A chaque fois ça compile sans faire d'histoire et ça crash.
J'imagine que les deux glew entre en conflit au chargement des .dll. Comme ça passe pas en static, ça plante en dynamique?
Je suis pas une star du debugger gbd mais bon je peux quand même appuyer sur la flèche rouge  ::)
ça me dis segment fault .. avec un kernell32 qui traine...

Est-ce que ferais pas mieux de bidouiller la sfml pour utiliser le glew dont j'ai besoin? J'ai pas loupé quelque chose? C'est normal que la lib glew dans sfml interagisse comme ça avec mon code  :'( ?

3
Graphique / Re : Problème avec GLEW en static
« le: Août 05, 2012, 05:53:16 pm »
Merci pour ton aide.

Je vais me renseigner sur la compilation dynamique en c++, j'avoue que j'y connais pas grand chose à par le principe général.


4
Graphique / Problème avec GLEW en static
« le: Août 05, 2012, 12:28:52 pm »
Bonjour,

C'est la première fois que je viens sur ce forum alors je dois d'abords dire que j'adore le code SFML pour ouvrir une fenêtre.  ;D

J'ai suivi le tuto pour compiler le SFML en static et tout c'est bien passé (c'est bien expliqué pour ceux qui trouvent le linkage compliqué en c++, comme moi   :-\ et j'ai appris quelques trucs au passage  :D ).
Puis j'ai compilé un autre code indépendant de la SFML avec le dernier GLEW fraichement téléchargé, tout ce passe bien.
Ensuite j'ai essayé de combiner les deux... et là c'est le drame.

J'ai des erreurs en essayant de compiler SFML et GLEW en static avec code::blocks
J'utilise :
   - les define SFML_STATIC et GLEW_STATIC
   - j'ai mis le glew.c dans mon projet et renommé glew.h dans Mingw (pour être sûr d'utiliser le bon)
   - j'ai ajouté "opengl32" et "glu32" en dessous des options de link sfml static

Le code très basique:
#include <SFML/Graphics.hpp>
#include <GL/glew.h>

int main()
{
    sf::RenderWindow window(sf::VideoMode(300, 200), "SFML works!");
    sf::Text text("Hello SFML");

    while (window.isOpen())
    {
        sf::Event event;
        while (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
                window.close();
        }

        window.clear();
        window.draw(text);
        window.display();
    }

    return 0;
}
 

Les erreurs:
-------------- Build: Release in sfml_opengl (compiler: GNU GCC Compiler)---------------

Compiling: glew.c
cc1.exe: attention : command line option '-std=c++0x' is valid for C++/ObjC++ but not for C [enabled by default]
Compiling: sfml_opengl.cpp
Linking executable: bin\Release\sfml_test.exe
C:\sfml_2_0\lib/libsfml-graphics-s.a(glew.c.o):glew.c:(.bss+0xd78): multiple definition of `__glewWindowPos2dARB'
obj\Release\glew.o:glew.c:(.bss+0x15e0): first defined here
C:\sfml_2_0\lib/libsfml-graphics-s.a(glew.c.o):glew.c:(.bss+0xd7c): multiple definition of `__glewWindowPos2dvARB'
obj\Release\glew.o:glew.c:(.bss+0x15dc): first defined here
C:\sfml_2_0\lib/libsfml-graphics-s.a(glew.c.o):glew.c:(.bss+0xd80): multiple definition of `__glewWindowPos2fARB'
obj\Release\glew.o:glew.c:(.bss+0x15d8): first defined here
C:\sfml_2_0\lib/libsfml-graphics-s.a(glew.c.o):glew.c:(.bss+0xd84): multiple definition of `__glewWindowPos2fvARB'
obj\Release\glew.o:glew.c:(.bss+0x15d4): first defined here
C:\sfml_2_0\lib/libsfml-graphics-s.a(glew.c.o):glew.c:(.bss+0xd88): multiple definition of `__glewWindowPos2iARB'
obj\Release\glew.o:glew.c:(.bss+0x15d0): first defined here
C:\sfml_2_0\lib/libsfml-graphics-s.a(glew.c.o):glew.c:(.bss+0xd8c): multiple definition of `__glewWindowPos2ivARB'
obj\Release\glew.o:glew.c:(.bss+0x15cc): first defined here
C:\sfml_2_0\lib/libsfml-graphics-s.a(glew.c.o):glew.c:(.bss+0xd90): multiple definition of `__glewWindowPos2sARB'
obj\Release\glew.o:glew.c:(.bss+0x15c8): first defined here
 

Je met pas tout c'est comme ça sur toute les fonctions du fichier glew.c

Je pense que la sfml ne prend pas mon fichier glew.c mais elle ne peut pas prendre celui de Mingw, alors elle possède le sien j'imagine.
Comment éviter ce conflit ?

Je vais avoir besoin de définir ça avant le glewInit() (que j'imagine donc être quelque part dans la SFML) :
glewExperimental = GL_TRUE;
 

Est-ce possible sans bidouiller-recompiler la SFML ?

EDIT: désolé j'avais pas vu la section aide->général sur le forum

Pages: [1]