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,  oth-
       erwise	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
			   improves  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 mem-
			   ory.	 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 surface 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_Lock-
       Surface,	SDL_PixelFormat, SDL_Surface SDL_SetAlpha SDL_SetColorKey

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

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | EXAMPLE | SEE ALSO

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

home | help