bionic (3) SDL_CreateRGBSurface.3.gz

Provided by: libsdl1.2-dev_1.2.15+dfsg2-0.1ubuntu0.2_amd64 bug

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 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  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 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_LockSurface,    SDL_PixelFormat,
       SDL_Surface SDL_SetAlpha SDL_SetColorKey