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

Auteur Sujet: [sf::Image]Bug très étrange  (Lu 3050 fois)

0 Membres et 1 Invité sur ce sujet

roket

  • Newbie
  • *
  • Messages: 25
    • Voir le profil
[sf::Image]Bug très étrange
« le: Novembre 06, 2012, 01:36:31 pm »
Bonjour, je suis confronté à un bug très étrange.
Le code suivant (basique) :
#include <cstdio>
#include <SFML/Graphics.hpp>
#include <SFML/System.hpp>

using namespace std;

int main()
{
  sf::RenderWindow App(sf::VideoMode(800,600), "TEST");
 
  sf::Image imgTest;
  imgTest.LoadFromFile("terrain_04.bmp");
  sf::Sprite sprTest;
  sprTest.SetImage(imgTest);
  sprTest.SetPosition(0.f,0.f);

  while(App.IsOpened())
  {
    sf::Event ev;
    while(App.GetEvent(ev))
    {
      if(ev.Type == sf::Event::Closed)
        App.Close();  
    }

    App.Clear(sf::Color::Red);
    App.Draw(sprTest);
    App.Display();
  }
}

Affiche correctement l'image choisie mais avec une ligne de 1px vide en y=0 et une colonne de 1px vide en x=0, voilà un screen en pièce jointe.

Je vous assure que le pb ne vient pas de l'image (plusieurs tests, comme un GetPixel(0,0)), et de plus si je mets comme position -1,-1 j'obtiens le résultat attendu...
Une idée ? Merci d'avance.


[attachment deleted by admin]

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : [sf::Image]Bug très étrange
« Réponse #1 le: Novembre 06, 2012, 01:49:30 pm »
Utilise plutôt SFML 2, SFML 1.6 n'est plus du tout maintenue.
Laurent Gomila - SFML developer

roket

  • Newbie
  • *
  • Messages: 25
    • Voir le profil
Re : [sf::Image]Bug très étrange
« Réponse #2 le: Novembre 06, 2012, 01:51:54 pm »
D'accord, mais c'est étrange car cela fait longtemps que je l'utilise et je n'avais jamais remarqué ce bug.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : [sf::Image]Bug très étrange
« Réponse #3 le: Novembre 06, 2012, 01:53:57 pm »
Est-ce que ça va mieux en ajoutant imgTest.SetSmooth(false) ?
Laurent Gomila - SFML developer

roket

  • Newbie
  • *
  • Messages: 25
    • Voir le profil
Re : [sf::Image]Bug très étrange
« Réponse #4 le: Novembre 06, 2012, 02:02:11 pm »
Oui ! c'est parfait, que change cette fonction ?

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : [sf::Image]Bug très étrange
« Réponse #5 le: Novembre 06, 2012, 02:04:56 pm »
Qu'en dit la doc ? :P
Laurent Gomila - SFML developer

roket

  • Newbie
  • *
  • Messages: 25
    • Voir le profil
Re : [sf::Image]Bug très étrange
« Réponse #6 le: Novembre 06, 2012, 02:08:58 pm »
Je me suis mal exprimé, qu'est ce que le smooth filter ? (et en quoi ca influe sur le positionnement)
Bon mais tu vas me dire qu'en dit google!
Merci beaucoup, je vais essayer de me mettre à la 2.0 !

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : [sf::Image]Bug très étrange
« Réponse #7 le: Novembre 06, 2012, 02:17:18 pm »
Ah oui, il est possible que la doc 1.6 soit beaucoup moins précise que la 2.0. Ne Google pas, tu risques de te perdre, c'est beaucoup trop vague comme terme.

En gros, "smooth" = "lisse". Quand c'est activé, les pixels sont moins visibles et l'image est légèrement plus floue. Ca ne se voit pas forcément sur une image affichée telle quelle, c'est utile surtout lorsque tu commences à redimensionner les sprites. Ca n'a aucune influence sur la position, en fait ton sprite est bien positionné, le seul problème c'est que les pixels du contour étaient "mélangés" avec du transparent, ce qui te donnait l'illusion que tout était décalé.
Laurent Gomila - SFML developer

roket

  • Newbie
  • *
  • Messages: 25
    • Voir le profil
Re : [sf::Image]Bug très étrange
« Réponse #8 le: Novembre 06, 2012, 02:22:25 pm »
Merci beaucoup pour cette aide rapide et pour l'explication !

 

anything