Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: Crash après initialisation d'un Shader  (Lu 2458 fois)

0 Membres et 1 Invité sur ce sujet

FougereBle

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
Crash après initialisation d'un Shader
« le: Mars 11, 2015, 05:51:32 pm »
Bonjour,

Je suis en train de faire un petit jeu en C++ avec SFML, et je rencontre un problème avec les Shaders.
Mon jeu fonctionne très bien, mais dès l'instant où j'appelle cette fonction (cf. plus bas), mon jeu "Crash" (Cette application à cessé de fonctionner).

sf::Shader shader;

    if (Shader::isAvailable())
    {
        cout << "Shader supporte" << endl;

        // C'est cette ligne qui fait crasher le jeu. Lorsque je l'enlève, tout refonctionne.
        if (!shader.loadFromFile("res/shader.vert", sf::Shader::Vertex))
        {
            cout << "Erreur chargement shader" << endl;
        }
    }
    else
    {
        cout << "Shader non supporte" << endl;
    }

Pourtant, le fichier "res/shader.vert" existe bien. Aussi, je n'ai pas l'erreur "Erreur chargement shader" qui s'affiche dans la console, puisque le jeu crash au moment de l'appel de la fonction "loadFromFile" (et du coup, le code suivant n'est pas exécuté, donc pas de message d'erreur).

Et puis j'ai bien le message "Shader supporte" qui s'affiche...

Je ne comprend vraiment pas ce qui peut bien se passé.

Quelqu'un à une idée ?

Merci ! =)

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Crash après initialisation d'un Shader
« Réponse #1 le: Mars 11, 2015, 05:53:19 pm »
Est-ce que tu as vérifié avec ton debugger si c'était cette fonction en particulier qui crashait, ou bien un autre truc plus loin ?

Sinon il nous faut les renseignements habituels : version de SFML, OS, drivers graphiques à jour ?, etc.
Laurent Gomila - SFML developer

FougereBle

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
Re : Crash après initialisation d'un Shader
« Réponse #2 le: Mars 11, 2015, 06:01:03 pm »
Bonjour,

Merci pour votre réponse.

Je débute avec le C++ (et donc avec Code::Block). Je ne sais pas où regarder pour voir ce qui bloque, mais je suis sûr à 100% que c'est la fonction loadFromFile qui bug, car lorsque je l'enlève, tout fonctionne parfaitement.

Je suis sur Windows 8.1. Mes drivers graphiques sont (je pense) à jour (mais je peu peut être me tromper. Comment vérifier ?). J'ai la dernière version de SFML (je l'ai télécharger ici hier).

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Crash après initialisation d'un Shader
« Réponse #3 le: Mars 11, 2015, 09:08:59 pm »
Comme tu débutes, je pense que c'est une bonne occasion d'en apprendre un peu plus sur ces choses primordiales. Si je te donnais tout cuit les réponses tu n'apprendrais rien et on te reverrait dans 3 jours pour un nouveau problème. Donc je te propose de te documenter sur l'utilisation de ton debugger (personne ne peut programmer sérieusement sans debugger...), ainsi que sur tes drivers graphiques.

Bon courage ;)
Laurent Gomila - SFML developer

Skrool

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
Re : Crash après initialisation d'un Shader
« Réponse #4 le: Mars 13, 2015, 05:06:13 pm »
De manière générale, il es possible que ton shader ait quelques erreurs, où qu'il comporte du code que le compilateur considère comme "erreur". Ca m'est arrivé personnellement parce que le shader comprenait des valeur sans virgules.
 De manière générale, les outils de débuggages aujourd'hui permettent de repérer assez bien où il y a une erreur, mais il savoir comment chercher  ;)

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Crash après initialisation d'un Shader
« Réponse #5 le: Mars 13, 2015, 05:43:15 pm »
Citer
De manière générale, il es possible que ton shader ait quelques erreurs, où qu'il comporte du code que le compilateur considère comme "erreur".
Non. Ca produirait un message d'erreur, pas un plantage de l'application.
Laurent Gomila - SFML developer