Bonjour tout le monde,
Je n'arrive pas à comprendre la source de mon problème, tout simplement, ce n'est pas même forcément lié à SFML, je n'ai aucune idée d'où l'erreur vient...
Vous remarquerez que j'ai pété un plomb avec le debugger, et que j'ai donc débuggé comme un bleu à coup de cerr
. Assez parlé, voila le code
//Dans Menu.hpp
virtual void draw(sf::RenderTarget &target, sf::RenderStates states) const
{
if(isAtMain)
{
//...
std::cerr << "0 - mainvessel exists : " << (bool)mainVessel;
target.draw(*mainVessel);
std::cerr << "1";
target.draw(*Play);
std::cerr << "2";
//...
protected:
FullSprite *mainVessel;
};
Dans fullsprite.hpp
class FullSprite : public sf::Drawable //Used to be a struct, that's why it is not, well, traditional
{
public:
virtual void draw(sf::RenderTarget &target, sf::RenderStates states) const
{
target.draw(*m_sprite); //m_sprite est un sf::sprite
std::cerr << "sprite exists: " << (bool)m_sprite;
}
Pour expliquer tout ca: la console affiche "mainvessel exist: 1", ce qui signifie que l'instruction executée est bien celle désirée. L'instruction suivante ( target.draw(*mainVessel)
va être exécutée. Pour voir plus en détail les instructions suivantes, il faut donc se rendre dans la méthode draw de FullSprite. Les deux lignes qui constituent cette méthode sont vien exécutées, la console indique que le sprite existe.
A présent, la prochaine instruction qui doit être exécutée est
std::cerr << "1";
si je ne me trompe pas, pas d'erreur jusqu'ici, non?
Eh bien non, mon programme crashe entre les deux dernières instructions, visual studio m'indiquant en chemin :
Aucun symbole n'a été chargé: /*bla bla*/
Emplacement d'origine: C:\Users\monNom\Projets\SFML\DatBlaster\Release\sfml-graphics-2.dll
Je trouve cela étrange puisque j'ai déjà réussi à faire tourner mon programme sans soucis, les modifications dernières n'ayant aucun rapport avec cette partie du code.
Je suis sous Windows 7 x64 avec SFML 2.2.
Dites moi si vous avez une idée, ou simplement besoin de plus d'infos
Merci d'avance