[SDL] Podwójne buforowanie?
Ostatnio zmodyfikowano 2012-06-18 13:39
PanMaciej Temat założony przez niniejszego użytkownika |
[SDL] Podwójne buforowanie? » 2012-06-16 15:11:12 Witam, wiem że temat był już poruszany kilka razy, ale niestety po przeczytaniu tamtych tematów nadal tego nie rozumiem. Napisałem coś takiego: #include <SDL.h> SDL_Surface * screen = NULL; SDL_Surface * bitmap = NULL; SDL_Surface * bufor = NULL; SDL_Event event; SDL_Rect rect; Uint8 * keystate = SDL_GetKeyState( NULL ); float x; int main( int argc, char * args[] ) { screen = SDL_SetVideoMode( 640, 480, 32, SDL_SWSURFACE | SDL_DOUBLEBUF ); bitmap = SDL_LoadBMP( "cb.bmp" ); while( 1 ) { SDL_PollEvent( & event ); if( keystate[ SDLK_RIGHT ] ) { x += 50; } rect.x = x; SDL_BlitSurface( bitmap, NULL, bufor, & rect ); SDL_BlitSurface( bufor, NULL, screen, NULL ); SDL_Flip( screen ); } SDL_FreeSurface( bitmap ); SDL_Quit(); return 0; }
Lecz niestety nie wyświetla się żadna bitmapa. Co robię źle? Z góry dziękuje za zainteresowanie się tematem. Dodam jeszcze, że nigdy nie miałem do czynienia z bibliotekami tego typu. |
|
Forczek |
» 2012-06-17 08:45:40 A plik z grafiką jest w folderze z projektem? |
|
C0d3r |
» 2012-06-17 09:34:13 Plik grafiki "cb.bmp" musi znajdować się w miejscu gdzie jest projekt, tym samym gdzie pojawia się plik wynikowy projektu. Jeżeli robisz to na pulpicie w folderze "gra", to właśnie w Nim musi znajdować się plik grafiki oraz plik wynikowy. |
|
kamillo121 |
» 2012-06-18 13:39:26 SDL_BlitSurface( bitmap, NULL, bufor, & rect );
W twoim kodzie bufor jest pustym wskaźnikiem a próba przerysowania bitmap na pusty wskaźnik zakończy się niepowodzeniem. |
|
« 1 » |