[SDL] Rien n'est affiché à l'écran

Rien n'est affiché à l'écran [SDL] - Programmation

Marsh Posté le 03-01-2002 à 16:00:50    

Tout est bien initailisé, pas d'erreur sur SDL_Init, SDL_SetVideoMode et SDL_CreateRGBSurface, les messages (PushEvent,...) marchent très bien mais je n'arrive pas à dessiner à l'écran, voici un bout de mon code :
 
int rmask,gmask,bmask,amask;
 
SDL_Init(SDL_INIT_VIDEO);
 
SDL_SetVideoMode(SCR_X,SCR_Y,16,SDL_FULLSCREEN);
 
#if SDL_BYTEORDER == SDL_BIG_ENDIAN
    rmask = 0xff000000;
    gmask = 0x00ff0000;
    bmask = 0x0000ff00;
    amask = 0x000000ff;
#else
    rmask = 0x000000ff;
    gmask = 0x0000ff00;
    bmask = 0x00ff0000;
    amask = 0xff000000;
#endif
 
SDL_ShowCursor(SDL_DISABLE); //hide cursor (si on le cache pas, on le voit à l'écran)
screen = SDL_CreateRGBSurface(SDL_SWSURFACE,SCR_X,SCR_Y,16,rmask,gmask,bmask,amask);
if(screen == NULL) //error
 MessageBeep(MB_OK);
 
SDL_Rect rct;
rct.x = 50;
rct.y = 50;
rct.w = 100;
rct.h = 100;
 
if(SDL_MUSTLOCK(screen))
 SDL_LockSurface(screen);
 
SDL_FillRect(screen,&rct,SDL_MapRGB(screen->format,0xff,0xff,0));
 
//rien n'est tracé...
 
if(SDL_MUSTLOCK(screen))
 SDL_UnlockSurface(screen);
 
SDL_UpdateRect(screen,0,0,0,0);
 
//boucle des messages...
 
SDL_FreeSurface(screen);
SDL_Quit();
 
Il y a juste un truc : je suis sous VC++ et j'utilise donc WinMain et non main() mais je ne sais pas si ça change grand chose...

Reply

Marsh Posté le 03-01-2002 à 16:00:50   

Reply

Marsh Posté le 03-01-2002 à 20:09:43    

:bounce: up !

Reply

Marsh Posté le 04-01-2002 à 11:11:07    

Personne n'utilise SDL ? :bounce:

Reply

Marsh Posté le 04-01-2002 à 11:21:27    

Bon ça fait 1 moment que j'ai pas touché à ça donc je vais peut être dire 1 connerie :)
 
je rajouterais 1 SDL_Flip() après le SDL_UpdateRect(screen,0,0,0,0);

Reply

Marsh Posté le 04-01-2002 à 11:24:29    

Bon j'ai effectivement dit 1 connerie :D
 
Tu est sur que 'screen' correspond vraiment à ton écran ??
parce que normalement SDL_SetVideoMode te renvoie 1 pointeur sur 1 surface et toi tu ne l'utilise pas c curieux.

Reply

Marsh Posté le 04-01-2002 à 13:22:30    

et bien écoute, screen est un pointeur renvoyé par SDL_CreateRGBSurface(); mais si tu dis que il faut utiliser celui retourné par SetVideoMode alors je vais essayer, en tout cas merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed