En regardant un peu, j'ai vu qu'on demande souvent un code minimal reprenant le problème dans la plupart des sujets du forum...
Puisque je n'ai pas encore eut de réponse, et que je pense que vous en avez marre de demander
, je vais vous en donner un (j'ai repris l'exemple sur les sf::RenderTexture que j'ai modifié pour que le problème apparaisse:
// Create a new render-window
sf::RenderWindow window(sf::VideoMode(800, 600), "SFML window");
// Create a new render-texture
sf::RenderTexture texture;
if (!texture.create(350, 500))
return -1;
// The main loop
while (!Keyboard::isKeyPressed(Keyboard::Escape))
{
// create a Text
sf::Text text(sf::String("AB"));
// Clear the whole texture with red color
texture.clear(sf::Color::Red);
// Draw stuff to the texture
texture.draw(text); // text is a sf::Text
// create and apply a view
sf::View view(sf::Vector2f(0, 0), sf::Vector2f(350, 500));
texture.setView(view);
// We're done drawing to the texture
texture.display();
// Now we start rendering to the window, clear it first
window.clear();
// Draw the texture
sf::Sprite sprite(texture.getTexture());
window.draw(sprite);
// Change the view
view.setCenter(200, 0);
texture.setView(view);
// We're done drawing to the texture again
texture.display();
// Draw the texture again
sf::Sprite sprite2(texture.getTexture());
sprite2.setPosition(sf::Vector2f(400, 0));
window.draw(sprite2);
// End the current frame and display its contents on screen
window.display();
}
Le premier sprite à gauche devrait normalement afficher le texte "AB" au centre de sa partie, tandis que le second ne devrait afficher qu'une partie du "B", tout à gauche de la sienne... Et bien comme vous pouvez le constater, les 2 affichent la même chose (ce que doit afficher le second).
Comment pourrais je faire pour y remédier? (sans utiliser 2 renderTexture bien sûr
)
Merci d'avance!