Forum de la communauté SFML

Aide => Graphique => Discussion démarrée par: Raitosan le Avril 13, 2012, 06:10:12 pm

Titre: [Résolus][SFML 2.0] RenderStates Manquant?
Posté par: Raitosan le Avril 13, 2012, 06:10:12 pm
Bonjour,

J'ai un problème avec les shaders qui m'empêchent de programmer ce que je veux(je suis obliger de passer par d'autres méthodes très lourdes et pas franchement efficaces...)

J'ai vu qu'avec la SFML 2.0 il fallait déclarer et charger notre shader puis l'envoyer à un RenderStates pour pouvoir l'afficher.
Or, je n'ai pas de RenderStates O_o Je ne peux pas non plus inclure l'entête car elle n'existe apparemment pas...

Ce simple code ne fonctionne donc pas:
sf::Shader sh;
sh.LoadFromFile("noirblanc.sfx");
sf::RenderStates r;
r.Shader = &sh;

Est-ce que ça a changer entre temps?
J'ai compiler la SFML 2.0 en mode débug et statique.(je n'ai pas d'autres problèmes que celui là)

Merci d'avance!
Titre: Re : [SFML 2.0] RenderStates Manquant?
Posté par: Laurent le Avril 13, 2012, 06:13:52 pm
La convention de nommage a changé, c'est maintenant du lowerCamelCase.

Et la prochaine fois, pense à donner le message d'erreur exact ;)

Et n'hésite pas à utiliser les raccourcis prévus :
window.draw(sprite, &sh);
Titre: Re : [SFML 2.0] RenderStates Manquant?
Posté par: Raitosan le Avril 13, 2012, 06:17:45 pm
Problème avec le header:
Citer
C:\Users\Raitosan\Documents\Programmation\Zeforiu-Editeur\src\Editeur.cpp|5|fatal error: SFML/RenderStates.hpp: No such file or directory|

#include <SFML/Graphics.hpp>
#include <SFML/Audio.hpp>
#include <SFML/RenderStates.hpp>

Citer
C:\Users\Raitosan\Documents\Programmation\Zeforiu-Editeur\src\Editeur.cpp|288|error: 'renderstates' is not a member of 'sf'|

sf::Shader sh;
sh.LoadFromFile("noirblanc.sfx");
sf::renderstates r;
r.Shader = &sh;
Titre: Re : [SFML 2.0] RenderStates Manquant?
Posté par: Koryushin le Avril 13, 2012, 06:22:02 pm
RenderStates.hpp fait parti de Graphics donc tu peux l'inclure en faisant #include <SFML/Graphics.hpp>
ou <SFML/Graphics/RenderStates.hpp>
Titre: Re : [SFML 2.0] RenderStates Manquant?
Posté par: Laurent le Avril 13, 2012, 06:24:14 pm
Faut pas essayer d'inventer des trucs. Tu n'as jamais inclus <SFML/LaClasse.hpp>, et bien aucune raison pour que ça change maintenant.
Titre: Re : [SFML 2.0] RenderStates Manquant?
Posté par: Raitosan le Avril 13, 2012, 06:28:58 pm
C'est pas que j'invente des trucs, c'est que j'essaye un peu tout... J'ai essayer avec SFML/Graphic/RenderStates.hpp et SFML/Graphics/RenderStates.hpp mais:

Citer
C:\Users\Raitosan\Documents\Programmation\Zeforiu-Editeur\src\Editeur.cpp|4|fatal error: SFML/Graphics/RenderStates.hpp: No such file or directory|

J'ai télécharger la dernière release de la SFML 2.0 ici: https://github.com/SFML/SFML

J'ai compiler en Static et debug et static et release et j'ai toujours ce problème.

J'ai regarder Graphics.hpp:

#include <SFML/Window.hpp>
#include <SFML/Graphics/Color.hpp>
#include <SFML/Graphics/Font.hpp>
#include <SFML/Graphics/Glyph.hpp>
#include <SFML/Graphics/Image.hpp>
#include <SFML/Graphics/Renderer.hpp>
#include <SFML/Graphics/RenderTexture.hpp>
#include <SFML/Graphics/RenderWindow.hpp>
#include <SFML/Graphics/Shader.hpp>
#include <SFML/Graphics/Shape.hpp>
#include <SFML/Graphics/Sprite.hpp>
#include <SFML/Graphics/Text.hpp>
#include <SFML/Graphics/Texture.hpp>
#include <SFML/Graphics/View.hpp>

Pas de RenderStates :/
Et là je me demande si ça a vraiment recompiler. J'ai utiliser CMake(en suivant le tutoriel) et j'ai ensuite compiler avec mingw32-make(sans erreur).

Il faut supprimer l'ancien dossier de la SFML avant de recompiler la librairie?

Voici une capture d'écran montrant la compilation:
(http://img571.imageshack.us/img571/6941/90517812.png)

J'ai renommer le dossier SFML dans C:\Program Files (x86) en SFML2 et j'ai ensuite clear le cache sur CMake et j'ai tout recompiler. On vois très bien dans la console que le dossier est ailleurs, surtout quand on vas dans C:\Program Files (x86) et qu'on remarquer que aucun dossier SFML s'est créer >_>

Donc là je ne comprend pas, apparement le problème viens de la compilation.
Titre: Re : [SFML 2.0] RenderStates Manquant?
Posté par: gaulois94 le Avril 13, 2012, 07:10:16 pm
Pourquoi ne fait tu pas une recherche dans ton dossier include de la SFML pour voir si tu trouve ton fichier ? C'est mieux que de tapper à l'aveugle :p
Titre: Re : [SFML 2.0] RenderStates Manquant?
Posté par: Raitosan le Avril 13, 2012, 07:13:42 pm
Fait, j'ai éditer mon poste au fait.
Titre: Re : [SFML 2.0] RenderStates Manquant?
Posté par: gaulois94 le Avril 13, 2012, 07:16:10 pm
Plusieurs points déjà :

RenderStates.hpp est bien disponible dans les include (je les trouvé dans le lien git).
Pour ce qui est de ton cmake, met comme point de compilation un nouveau répertoire (là où tu va pouvoir compiler ton projet). Sa sera beaucoup mieux comme sa.

Sinon, ta configuration avec cmake est correcte. Reclick sur configure puis ensuite sur generate. Voila, j'espère que tu va t'amuser :) .
Titre: Re : [SFML 2.0] RenderStates Manquant?
Posté par: Orwel le Avril 13, 2012, 07:27:03 pm
Solution qui devrait marcher :

-Supprime le depot SFML qui est sur ton PC
-Reclone le dépot
-Réinstalle

Si le RenderState n'est pas dans Graphic.hpp, certainement une ancienne version. Je confirme qui est présent normalement dans le fichier. Regarde directement sur le dépot git  ;)
Titre: Re : [SFML 2.0] RenderStates Manquant?
Posté par: Raitosan le Avril 13, 2012, 07:36:17 pm
@Orwel
C'est ce que j'ai fais, ça se compile et tout nickel, mais ça ne s'install pas dans C:/Program Files (x86)/SFML alors que c'est ce qui est spécifier dans CMake :/
Et je ne sais pas du tout où s'install la SFML du coup...

Edit: Après un redémarrage de l'ordinateur, ça a fonctionner... Je vais devoir maintenant tout modifier, je vous dis ensuite si mon problème est résolu ;)

ça passe!

Merci à vous tous pour votre aide :)