La fonction
SDL_Surface *SDL_AllocSurface (Uint32 flags, int width, int height, int depth, Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask);
crée une surface de format arbitraire en mémoire. Les paramètres " mask " permettent de spécifier le masque RGB pour le format de pixels de la surface. Par exemple, un mode 24 bits (depth = 24) pourra avoir Rmask = 0xFF0000, Gmask = 0x00FF00, Bmask = 0x0000FF. Les flags supportés sont les suivants :
* SDL_HWSURFACE : SDL_HWSURFACE : La surface sera allouée en mémoire vidéo (si possible). Chaque accès direct à la mémoire vidéo devra être entouré d'appels à SDL_LockSurface() et SDL_UnlockSurface() pour garantir un accès exclusif.
* SDL_SWSURFACE : la surface sera créée en mémoire principale
*
SDL_SRCCOLORKEY : indique que la surface sera transparente, ce qui peut amener SDL à placer la surface en mémoire vidéo de manière à bénéficier d'accélérations matérielles.
* SDL_SRCALPHA : idem pour l'alpha blending
Les surfaces allouées par SDL_AllocSurface() doivent être libérées par SDL_FreeSurface(). Il est également possible de créer une surface à partir d'un fichier BMP (SDL_LoadBMP()), voire de sauver le contenu d'une surface dans un fichier BMP (SDL_SaveBMP())
Partager