Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[GTK+, SFML] Rozmazane sprajty

Ostatnio zmodyfikowano 2013-07-12 12:54
Autor Wiadomość
MrPoxipol
Temat założony przez niniejszego użytkownika
» 2013-07-11 00:24:24
Dlatego stworzyłem odpowiednią klasę MapView, unikam dzięki temu takich byków. Gdy uzyje tej klasy w normalnym oknie sfml, wszystko jest OK.
P-87481
DejaVu
» 2013-07-11 00:29:49
AAaaaaaaa! :D Przecież nie tworzysz okna za pomocą API SFML-a więc pewnie zamiast mieć zakres wartości 0..800 x 0..600 masz zakres wartości 0..1 x 0..1 i... rysuje Ci lewy górny piksel pierwszego sprajta :)
P-87482
MrPoxipol
Temat założony przez niniejszego użytkownika
» 2013-07-11 08:00:25
Hm..No to jak to zmienić? ;)
P-87489
DejaVu
» 2013-07-11 10:30:19
Hm... chyba się wzorowałeś na tym:
http://en.sfml-dev.org/forums​/index.php?topic=8267.0

W powyższym przykładzie wywołania nieco inaczej wyglądają:
C/C++
gtk_widget_realize( area->gobj() );

Spróbuj przekopiować cały przykład z powyższej strony i sprawdź czy wyświetli Ci jakąkolwiek teksturę poprawnie.

C/C++
Win.create( sf::WindowHandle( GDK_WINDOW_HWND( area->window ) ) ); // Windows-only solution
Ja bym drążył tą linijkę. Może HWND podajesz złe, a może nie ustawiłeś dla podanego HWND poprawnego rozmiaru okna (bo np. robisz to w sposób zły). Spróbuj również zaraz za wspomnianą wyżej linijką wypisać na konsoli
Win.getSize()
 lub coś podobnego, aby sprawdzić jakim rozmiarem okna SFML został zainicjowany.
P-87497
MrPoxipol
Temat założony przez niniejszego użytkownika
» 2013-07-11 11:42:07
Wzorowałem się na innym tutorial'u, ale to mniej ważne. Standardowo okno ma rozmiar 1x1(sprawdziłem przez getSize(), ale nawet jak ustawie rozmiar ręcznie to dalej dzieje się tak samo. Przykładu z tej strony co dałeś nie sprawdzę, bo używam GTK+, a tam używają gtkmm. Z tego przykładu Tu będzie link jak znajde ten tut., na którym się opierałem była linijka z tworzeniem okna z uchwytu gdk, lecz
Win.create( GDK_WINDOW_HWND( area->window ) )
 powoduje błąd przy kompilacji:
main.cpp: In function 'int main(int, char**)':
main.cpp:64:45: error: invalid conversion from 'HGDIOBJ {aka void*}' to 'sf::WindowHandle {aka HWND__*}' [-fpermissive]
In file included from D:\C++\lib\SFML-2.0\include/SFML/Window.hpp:40:0,
                 from D:\C++\lib\SFML-2.0\include/SFML/Graphics.hpp:32,
                 from main.cpp:2:
D:\C++\lib\SFML-2.0\include/SFML/Window/Window.hpp:141:10: error:   initializing argument 1 of 'void sf::Window::create(sf::WindowHandle, const sf::ContextSettings&)' [-fpermissive]
więc rzutuje na sf::WindowHandle.
P-87512
DejaVu
» 2013-07-11 12:15:55
No to wiesz już w czym problem - okno prezentuje Ci kontekst openGL-a w rozmiarze 1x1 :) Jak to naprawisz to będzie działało.
P-87516
m4tx
» 2013-07-11 12:32:33
nie sprawdzę, bo używam GTK+, a tam używają gtkmm
Cóż to za problem "przetłumaczyć" kod gtkmm na kod GTK+? Przecież gtkmm to tylko binding na GTK+... :)
P-87519
MrPoxipol
Temat założony przez niniejszego użytkownika
» 2013-07-11 13:33:51
Hm, a więc jak mam zmienić rozmiar tego kontekstu? Szukam, trudno coś znaleźć, a ekspertem OGL'a nie jestem ;)

Co do sprawdzania na gtkmm, to musiałbym tylko do testu instalować kolejne biblioteki i konfigurować, a na Windows'ie nie jest tak wygodnie jak na Linuxie :P
P-87529
1 « 2 » 3 4
Poprzednia strona Strona 2 z 4 Następna strona