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

Auteur Sujet: utilisation d'une Entite d'Image  (Lu 1517 fois)

0 Membres et 1 Invité sur ce sujet

mazertys17

  • Full Member
  • ***
  • Messages: 123
    • Voir le profil
    • E-mail
utilisation d'une Entite d'Image
« le: Janvier 01, 2015, 07:39:42 pm »
Bonjour et Bonne Année a tout le monde !  :D

Suite à une conversation dans "Général", au sujet, entre autre, des sf::VertexArray, j'aimerais savoir, svp, si,( cette fois ci), la façon dont est crée l'image vous parait correct, saine et optimisé (ou pas ) :


sf::Texture test;
test.loadFromFile("test.bmp");

x=256;
y=256;
sf::Vertex vertex[4];
vertex[0] = sf::Vector2f(x, y);
vertex[1] = sf::Vector2f(x + 84,y + 0);
vertex[2] = sf::Vector2f(x + 84,y + 95);
vertex[3] = sf::Vector2f(x,y + 95);


vertex[0].texCoords = sf::Vector2f(0, 0);
vertex[1].texCoords = sf::Vector2f(84, 0);
vertex[2].texCoords = sf::Vector2f(84, 95);
vertex[3].texCoords = sf::Vector2f(0, 95);
EI entiteImage;//EI pour EntiteImage, et non EI pour état islamique, hein ! pas de propagande ici, post safe ;)
entiteImage.recoitTexture(&test);
entiteImage.recoitVertex(vertex);

afficheur.recoitEI(&entiteImage);

 


et ma sf::Drawable :



class EI : public sf::Drawable
{
public:

    friend struct MonFoncteur;

    void recoitTexture(sf::Texture *texture)
    {
        m_texture = texture;
    }
    void recoitVertex(sf::Vertex vertex[4])
    {
        m_tableauVertex[0] = vertex[0];
        m_tableauVertex[1] = vertex[1];
        m_tableauVertex[2] = vertex[2];
        m_tableauVertex[3] = vertex[3];
    }

private:

    virtual void draw(sf::RenderTarget& cible, sf::RenderStates states) const
    {
        cible.draw(m_tableauVertex,4, sf::Quads, m_texture);
    }

    float m_z;
    sf::Vertex m_tableauVertex[4];
    sf::Texture *m_texture;
};
 



Merci

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : utilisation d'une Entite d'Image
« Réponse #1 le: Janvier 01, 2015, 08:02:45 pm »
C'est déjà beaucoup mieux en terme d'efficacité ;)

Après, d'un point de vue un peu plus philosophique, on peut se demander pourquoi cette classe ne se contente que de recevoir des choses, et ne sait pas faire les calculs / chargements elle-même. Une bonne façon de faire est de concevoir des classes qui implémentent des services, et non juste des aggrégats de variables avec un tas d'accesseurs.
Laurent Gomila - SFML developer

mazertys17

  • Full Member
  • ***
  • Messages: 123
    • Voir le profil
    • E-mail
Re : utilisation d'une Entite d'Image
« Réponse #2 le: Janvier 01, 2015, 08:50:56 pm »
Merci ! :)

Citer
Après, d'un point de vue un peu plus philosophique, on peut se demander pourquoi cette classe ne se contente que de recevoir des choses, et ne sait pas faire les calculs / chargements elle-même. Une bonne façon de faire est de concevoir des classes qui implémentent des services, et non juste des aggrégats de variables avec un tas d'accesseurs.


Ok, je vais méditer ca pour la suite .
La route a parcourir est longue, et derrière la colline gravie se cache des montagnes aux sommets insoupçonnables, obscurcis par les nuages !  ;)

Merci pour votre aide

 

anything