Forum de la communauté SFML

Aide => Graphique => Discussion démarrée par: Fugius le Mai 24, 2017, 03:00:53 pm

Titre: Crash lors du chargement de shaders
Posté par: Fugius le Mai 24, 2017, 03:00:53 pm
Salut, après avoir reformaté mon pc, je me suis décidé a essayer un truc avec sfml, j'ai téléchargé la dernière version et l'utilise avec visual studio code et mingw.

Voilà mon problème : je peu faire n'importe quoi tout fonctionne ... jusqu'au moment ou j'essaye de load un shader. La ça compile mais quand j'execute le .exe j'ai un jolie "le programme a cessé de fonctionner".

Je pensais que ca venait d'une erreur de mon code, donc j'ai fait un truc tout simple pour tester et dans le doute j'ai récupéré les shaders (exemples) de la doc même si ça ne devrait pas faire crash le programme.

Voici mon code de test, ca bug au niveau du "shader.loadfromfile" :

int main() {
    sf::RenderWindow window(sf::VideoMode(1200, 713), "SFML works!");

    sf::Texture tx;
    tx.loadFromFile("res/textures/deathcube.png");

    sf::RectangleShape rec;
    rec.setTexture(&tx);

    rec.setSize(sf::Vector2f(600, 713));

    sf::Shader shader;

    if (!shader.loadFromFile("res/shaders/Cube.vert", "res/shaders/Cube.frag")) {
        std::cout << "error";
    }


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

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

    return 0;
}
 

Si vous avez une idée de l'origine de ce bug, vous m'aideriez grandement.
Je travaille sous win10, mes drivers sont à jours.
Merci par avance :)

Edit : Dans le doute j'ai vérifé : "sf::Shader::isAvailable()" est vrai
Titre: Re: Crash lors du chargement de shaders
Posté par: Laurent le Mai 24, 2017, 04:03:33 pm
Il faudrait si possible un peu plus d'informations sur le crash (utilise ton debugger) :)
Titre: Re: Crash lors du chargement de shaders
Posté par: Fugius le Mai 24, 2017, 05:48:35 pm
Salut, j'apprends a utiliser g++, lors du crash gdb me renvoie ca :

Program received signal SIGSEGV, Segmentation fault.
0x6fe5df15 in libstdc++-6!_ZN9__gnu_cxx9free_list8_M_clearEv () from C:\MinGW\bin\libstdc++-6.dll

(je ne comprends pas vraiment pourquoi quand j'essaye de load un shader il y aurait un pb avec libstdc++ mais bon ... x)
Titre: Re: Crash lors du chargement de shaders
Posté par: Laurent le Mai 24, 2017, 08:43:00 pm
Pour le savoir il faut afficher la pile d'appels ;)
Titre: Re: Crash lors du chargement de shaders
Posté par: Fugius le Mai 24, 2017, 09:19:56 pm
Bon, je me doutais qu'il y avait un problème entre sfml et mingw avec cette histoire de libstdc++, j'ai recompilé sfml et le problème est résolu, merci pour avoir pris le temps de me répondre ! :D