Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3926 connectés 

 


Dernière réponse
Sujet : [SDL] Rien n'est affiché à l'écran
antsite 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

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
antsite 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
bobdupont 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.
bobdupont 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);
antsite Personne n'utilise SDL ? :bounce:
antsite :bounce: up !
antsite 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...

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)