Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
SDL_CreateRGBSurface(3) 	SDL API Reference	 SDL_CreateRGBSurface(3)

NAME
     SDL_CreateRGBSurface - Create an empty SDL_Surface

SYNOPSIS
     #include "SDL.h"

     SDL_Surface  *SDL_CreateRGBSurface(Uint32 flags, int width, int height, int
     depth, Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask);

DESCRIPTION
     Allocate an empty surface (must be called after SDL_SetVideoMode)

     If depth is 8 bits an empty palette is allocated for the surface, otherwise
     a 'packed-pixel' SDL_PixelFormat is created using the [RGBA]mask's provided
     (see SDL_PixelFormat). The flags specifies the type of surface that  should
     be created, it is an OR'd combination of the following possible values.

     SDL_SWSURFACE	 SDL  will create the surface in system memory. This im-
			 proves the performance of pixel level	access,  however
			 you  may not be able to take advantage of some types of
			 hardware blitting.

     SDL_HWSURFACE	 SDL will attempt to create the surface in video memory.
			 This will allow SDL to take advantage	of  Video->Video
			 blits (which are often accelerated).

     SDL_SRCCOLORKEY	 This  flag  turns  on	colourkeying for blits from this
			 surface.  If  SDL_HWSURFACE  is  also	 specified   and
			 colourkeyed  blits  are  hardware-accelerated, then SDL
			 will attempt to place the surface in video memory.  Use
			 SDL_SetColorKey to set or clear this flag after surface
			 creation.

     SDL_SRCALPHA	 This  flag  turns on alpha-blending for blits from this
			 surface. If SDL_HWSURFACE is also specified and  alpha-
			 blending  blits are hardware-accelerated, then the sur-
			 face will be placed in video memory  if  possible.  Use
			 SDL_SetAlpha  to  set	or clear this flag after surface
			 creation.

	    Note:

	    If an alpha-channel is specified (that is,	if  Amask  is  nonzero),
	    then the SDL_SRCALPHA flag is automatically set. You may remove this
	    flag by calling SDL_SetAlpha after surface creation.

RETURN VALUE
     Returns the created surface, or NULL upon error.

EXAMPLE
	 /* Create a 32-bit surface with the bytes of each pixel in R,G,B,A order,
	    as expected by OpenGL for textures */
	 SDL_Surface *surface;
	 Uint32 rmask, gmask, bmask, amask;

	 /* SDL interprets each pixel as a 32-bit number, so our masks must depend
	    on the endianness (byte order) of the machine */
     #if SDL_BYTEORDER == SDL_BIG_ENDIAN
	 rmask = 0xff000000;
	 gmask = 0x00ff0000;
	 bmask = 0x0000ff00;
	 amask = 0x000000ff;
     #else
	 rmask = 0x000000ff;
	 gmask = 0x0000ff00;
	 bmask = 0x00ff0000;
	 amask = 0xff000000;
     #endif

	 surface = SDL_CreateRGBSurface(SDL_SWSURFACE, width, height, 32,
					rmask, gmask, bmask, amask);
	 if(surface == NULL) {
	     fprintf(stderr, "CreateRGBSurface failed: %s
     ", SDL_GetError());
	     exit(1);
	 }

SEE ALSO
     SDL_CreateRGBSurfaceFrom,	SDL_FreeSurface,  SDL_SetVideoMode, SDL_LockSur-
     face, SDL_PixelFormat, SDL_Surface SDL_SetAlpha SDL_SetColorKey

SDL			     Tue 11 Sep 2001, 23:01	 SDL_CreateRGBSurface(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=SDL_CreateRGBSurface&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help