Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: [sfml2] Utilisation vertexArray  (Lu 1887 fois)

0 Membres et 1 Invité sur ce sujet

Canadadry

  • Hero Member
  • *****
  • Messages: 1081
    • Voir le profil
[sfml2] Utilisation vertexArray
« 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  :)

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : [sfml2] Utilisation vertexArray
« Réponse #1 le: Décembre 07, 2012, 12:01:10 am »
Les coordonnées de texture sont en pixels, elles ne sont pas normalisées.
Laurent Gomila - SFML developer

Canadadry

  • Hero Member
  • *****
  • Messages: 1081
    • Voir le profil
Re : [sfml2] Utilisation vertexArray
« Réponse #2 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.  :)

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : [sfml2] Utilisation vertexArray
« Réponse #3 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.
Laurent Gomila - SFML developer