Forum de la communauté SFML

Aide => Graphique => Discussion démarrée par: gaulois94 le Mai 25, 2012, 09:46:44 pm

Titre: Shape::getTexture() return NULL
Posté par: gaulois94 le Mai 25, 2012, 09:46:44 pm
Bonsoirs,

alors voila, je souhaite créer une image à partir d'une Shape (normale quoi :) ), et je rencontre un petit bug au niveau de Shape::getTexture() que je vais vous illustrer avec le code suivant :

sf::RectangleShape shape(sf::Vector2f(rect.width, title.getSize().y));
                shape.setFillColor(backgroundTitle); //backgroundTitle est une couleur reçu en paramètre de cette fonction
                shape.setPosition(getPosition().x, getPosition().y);

                sf::Sprite sprite;
                if(shape.getTexture()) //sa return NULL
                        sprite.setTexture(*(shape.getTexture()));

Voila, je pense que c'est tout ;) . Merci d'avance :)

ps : j'utilise la sfml2.0 (j'imagine que c'était simple à trouver, non ? :) ).
Titre: Re : Shape::getTexture() return NULL
Posté par: Laurent le Mai 25, 2012, 10:31:46 pm
Je crois que t'as mal compris la chose. Le get/setTexture de sf::Shape a la même fonction que le get/setTexture de sf::Sprite, à savoir mapper la texture sur la forme. En l'occurence si tu ne fais pas un setTexture auparavant, getTexture renverra forcément NULL.

Citer
je souhaite créer une image à partir d'une Shape (normale quoi  )
Pas vraiment normal non ???
Titre: Re : Shape::getTexture() return NULL
Posté par: gaulois94 le Mai 25, 2012, 10:33:57 pm
Il n'est pas possible de transformer une sf::Shape en sf::Sprite ? Moi je pensais que le getTexture renvoie ce que contient graphiquement la Shape.
Titre: Re : Shape::getTexture() return NULL
Posté par: Orwel le Mai 25, 2012, 11:22:47 pm
En passant par un RenderTexture. Plus de renseignement sur la documentation  ;)
Titre: Re : Shape::getTexture() return NULL
Posté par: gaulois94 le Mai 25, 2012, 11:24:44 pm
Ah ouai, c'est pas idiot comme moyen :D merci beaucoup ;) je vais de ce pas faire cette petite fonction ;)
Titre: Re : Shape::getTexture() return NULL
Posté par: Laurent le Mai 26, 2012, 08:11:13 am
Mais concrètement ça sert à quoi ? S'il existe différents objets graphiques, c'est pas pour tout ramener à des sprites.
Titre: Re : Shape::getTexture() return NULL
Posté par: gaulois94 le Mai 26, 2012, 12:54:42 pm
Sa m'évite de me trimbaler différents type de Drawable (tout en pouvant les modifié). Pour un bouton, je peux très bien me servir d'un sprite comme d'un shape, pourtant je ne vais pas mettre un sprite et un shape en attribut. Je ramène donc le tout au sprite ;) (tout en faisant des modifications très basiques propre aux sprites).

Mais bon, j'ai pu faire en sorte de résoudre mon problème avec un simple sf::Sprite (un rectangle en couleur ;) ).
Titre: Re : Shape::getTexture() return NULL
Posté par: Laurent le Mai 26, 2012, 02:26:57 pm
Et pourquoi pas l'inverse ? Un sprite n'est qu'un shape particulier.
Titre: Re : Shape::getTexture() return NULL
Posté par: gaulois94 le Mai 26, 2012, 02:29:12 pm
Parce que j'utilise beaucoup plus les Sprites que les Shapes. Mais sur le fond, c'est vrai que je peux faire d'un Sprite un Shape, m'enfin je préfère réserver le sprite pour tout ce qui est purement graphics, et le Shape pour les formes ;) .