Autor Wątek: [sfml]tworzy mi się obwódka do obrazków  (Przeczytany 982 razy)

Offline mar3

  • Użytkownik

# Lipiec 22, 2011, 13:37:45
Wczytuję obraz .png i nie wiem dlaczego tworzą mi się czarne kreski u góry i z lewej strony. Zrobiłem w paint.net bialy prostokat z napisem i tez sfml zrobil te kreski. Jak sobie z tym poradzic?
http://www.programy.cal.pl/obrazki.zip - obrazki o których pisałem
IDE: Microsoft Visual C++ 2010 EE
Biblioteka: SFML 1.6
Sprawdziłem na komputerze i na laptopie wszędzie jest tak samo.

Komputer:
OS: Win 7 Pro x64
Karta Graficzna(niezintegrowana): nVidia GeForce 9500 GT

Laptop:
OS: Win xp Home x32
Karta Graficzna(niezintegrowana): nVidia GeForce Go 7300

Kod:sf::Image play_img;
sf::Sprite play;
if(!play_img.LoadFromFile("Data/nowa_gra.png"))
{
MessageBox(NULL, (LPCWSTR)L"Błąd. Brak pliku obrazka!", (LPCWSTR)L"Brak pliku", MB_ICONERROR | IDOK);
oknoAplikacji->Close();
return false;
}
play.SetImage(play_img);
//...
oknoAplikacji->Draw( play );
« Ostatnia zmiana: Lipiec 22, 2011, 14:08:50 wysłana przez mar3 »

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline DamorK

  • Użytkownik

# Lipiec 22, 2011, 14:14:20
A spróbuj zrobić taki myk:
play_img.Bind();
#define GL_CLAMP_TO_EDGE    0x812F
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
play.SetImage(play_img);
//...

Oczywiście trzeba dołączyć też nagłówek opengla. Możesz też skompilować sobie SFML2 i w nim robić, bo jeśli dobrze pamiętam to on używa już GL_CLAMP_TO_EDGE. Powinno pomóc

Offline mar3

  • Użytkownik

# Lipiec 22, 2011, 14:32:01
Dzięki za pomoc już sobie poradziłem wystarczyło wyłączyć antyaliasing.