Bonjour,
voila j'ai un petit problème avec ma vue avec l'utilisation d'une RenderTexture.
Dans mon code, je possède un objet Camera qui hérite de View et qui s'occupe de se placer correctement par rapport a mon personnage et de dessiner les sprites censés être dans la scène. Au début je n'utilisais pas de RenderTexture mais ayant pour projet d'utiliser des shaders sur toute ma scene, j'ai changé mon code.
Mon problème est que ma RenderTexture ne se dessine pas la ou il faut, voici 2 images sans/avec utilisation de la RenderTexture :
http://www.noelshack.com/2015-11-1426025436-sans-rendertexture.pnghttp://www.noelshack.com/2015-11-1426025429-avec-rendertexture.pngVoici le code que j'utilise :
void Camera::dessinerSpriteVisible(Map* map, RenderWindow * app)
{
Sprite sprite;
sf::RenderTexture renderTexture;
if (!renderTexture.create(1920, 1080)){
cerr << "Erreur initialisation render"<<endl;
return;
}
renderTexture.clear(sf::Color::Red);
// renderTexture.setView(*this);
vector<Platforme*> * platformes = map->getPlatformes();
//on dessine les platformes
for(unsigned int i = 0 ; i < platformes->size() ; i++)
{
if(isVisible((*platformes)[i]))
{
renderTexture.draw( *((*platformes)[i]) );
sprite.setTexture(renderTexture.getTexture());
renderTexture.display();
app->draw(sprite);
}
}
vector<Personnage*> * personnages = map->getPersonnages();
//on dessine les perso
for(unsigned int i = 0 ; i < personnages->size() ; i++)
{
if(isVisible((*personnages)[i]))
{
renderTexture.draw( *((*personnages)[i]) );
sprite.setTexture(renderTexture.getTexture());
renderTexture.display();
app->draw(sprite);
}
}
vector<Decor*> * decors = map->getDecors();
for(unsigned int i = 0 ; i < decors->size() ; i++)
{
if(isVisible((*decors)[i]))
{
renderTexture.draw( *((*decors)[i]) );
sprite.setTexture(renderTexture.getTexture());
renderTexture.display();
app->draw(sprite);
}
}
// app->setView(renderTexture.getView());
}
J'ai essayé de jouer avec 'renderTexture.setView(app->getView())' puis 'app->setView(renderTexture.getView());' mais rien n'y fait, cela ne fonctionne pas correctement
Quelqu'un pourrait t-il m'expliquer ce que je fais de mal ?
Merci de votre aide !