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

[SDL] Podwójne buforowanie?

Ostatnio zmodyfikowano 2012-06-18 13:39
Autor Wiadomość
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:

C/C++
#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.
P-58562
Forczek
» 2012-06-17 08:45:40
A plik z grafiką jest w folderze z projektem?
P-58587
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.
P-58588
kamillo121
» 2012-06-18 13:39:26
C/C++
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.
P-58619
« 1 »
  Strona 1 z 1