SFML community forums

Help => Graphics => Topic started by: texus on November 13, 2017, 07:26:56 pm

Title: RenderTexture texture flipped after copying
Post by: texus on November 13, 2017, 07:26:56 pm
Since commit 6b71456 (https://github.com/SFML/SFML/commit/6b71456a55c9cce3eae12ee9cdacbf96fe1c1a71), copying a texture from a render texture causes it to be flipped.

Code to reproduce:
#include <SFML/Graphics.hpp>

int main()
{
    sf::RenderWindow window(sf::VideoMode(400, 200), "SFML Window");

    sf::RectangleShape shape{{100, 100}};
    shape.setFillColor(sf::Color::Red);

    sf::RenderTexture rt;
    rt.create(200, 200);
    rt.clear(sf::Color::White);
    rt.draw(shape);
    rt.display();

    sf::Sprite s1(rt.getTexture());

    sf::Texture t = rt.getTexture(); // Copy texture before passing it to sprite
    sf::Sprite s2(t);
    s2.setPosition({200, 0});

    while (window.isOpen())
    {
        sf::Event event;
        while (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
                window.close();
        }

        window.clear();
        window.draw(s1);
        window.draw(s2);
        window.display();
    }
}

The attached images show how it looked before and after commit 6b71456 (https://github.com/SFML/SFML/commit/6b71456a55c9cce3eae12ee9cdacbf96fe1c1a71).
Title: Re: RenderTexture texture flipped after copying
Post by: Laurent on November 13, 2017, 07:52:08 pm
Looks like we need to play with Texture::m_pixelsFlipped ::)
Title: Re: RenderTexture texture flipped after copying
Post by: eXpl0it3r on November 16, 2017, 03:58:53 pm
Can you open an issue on GitHub, so we won't forget this?