Forum de la communauté SFML

Aide => Graphique => Discussion démarrée par: Canadadry le Décembre 06, 2012, 11:53:56 pm

Titre: [sfml2] Utilisation vertexArray
Posté par: Canadadry le Décembre 06, 2012, 11:53:56 pm
bonjour,

J’essaie d'utiliser la nouvelle architecture graphique. Mais je n'arrive pas a afficher une image à la main avec la class vertexArray. Voila mon code :
#include <iostream>
#include <SFML/Graphics.hpp>

int main(int argc, char** argv)
{
    sf::RenderWindow window(sf::VideoMode(800, 600), "My window");

    sf::Texture tileset;
    tileset.loadFromFile("tmw_desert_spacing.png");
    sf::Sprite  sprite(tileset);
    sprite.setOrigin(tileset.getSize().x,0);
    sprite.setPosition(800,0);

    sf::VertexArray m_vertex_array(sf::Quads,4);
        m_vertex_array[0].position = sf::Vector2f(0,0);
        m_vertex_array[1].position = sf::Vector2f(0,100);
        m_vertex_array[2].position = sf::Vector2f(100,100);
        m_vertex_array[3].position = sf::Vector2f(100,0);

    m_vertex_array[0].texCoords = sf::Vector2f(0, 0);
    m_vertex_array[1].texCoords = sf::Vector2f(0, 1);
    m_vertex_array[2].texCoords = sf::Vector2f(1, 1);
    m_vertex_array[3].texCoords = sf::Vector2f(1, 0);

    sf::RenderStates renderStates;
    renderStates.texture = &tileset;


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

        window.clear(sf::Color::Green);
        window.draw(sprite);
        window.draw(m_vertex_array, renderStates);
        window.display();

    }

    return 0;
}
 

La sprite s'affiche bien mais le vertexarray affiche un beau carré noir. Qu'est-ce que j'ai loupé ?
Merci  :)
Titre: Re : [sfml2] Utilisation vertexArray
Posté par: Laurent le Décembre 07, 2012, 12:01:10 am
Les coordonnées de texture sont en pixels, elles ne sont pas normalisées.
Titre: Re : [sfml2] Utilisation vertexArray
Posté par: Canadadry le Décembre 07, 2012, 12:11:45 am
super  :D ça marche.

du coup j'ai une question, t'as fait un truc spécial pour avoir ça ? C'est pas le comportement par défaut d'opengl ça ?

Merci encore.  :)
Titre: Re : [sfml2] Utilisation vertexArray
Posté par: Laurent le Décembre 07, 2012, 07:55:53 am
Oui, j'ai mis une matrice de texture qui divise toutes les coordonnées par la taille de la texture.