focal (3) SDL_SetAlpha.3.gz

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

NAME

       SDL_SetAlpha - Adjust the alpha properties of a surface

SYNOPSIS

       #include "SDL.h"

       int SDL_SetAlpha(SDL_Surface *surface, Uint32 flag, Uint8 alpha);

DESCRIPTION

              Note:

              This  function  and the semantics of SDL alpha blending have changed since version 1.1.4. Up until
              version 1.1.5, an alpha value of 0 was considered  opaque  and  a  value  of  255  was  considered
              transparent.  This  has now been inverted: 0 (SDL_ALPHA_TRANSPARENT) is now considered transparent
              and 255 (SDL_ALPHA_OPAQUE) is now considered opaque.

       SDL_SetAlpha is used for setting  the  per-surface  alpha  value  and/or  enabling  and  disabling  alpha
       blending.

       Thesurface  parameter specifies which surface whose alpha attributes you wish to adjust. flags is used to
       specify whether alpha blending should be used (SDL_SRCALPHA) and  whether  the  surface  should  use  RLE
       acceleration  for  blitting (SDL_RLEACCEL). flags can be an OR'd combination of these two options, one of
       these options or 0. If SDL_SRCALPHA is not passed as a flag then all alpha information  is  ignored  when
       blitting  the  surface.  The  alpha  parameter is the per-surface alpha value; a surface need not have an
       alpha channel to use per-surface alpha and blitting can still be accelerated with SDL_RLEACCEL.

              Note:

              The per-surface alpha value of 128 is considered a special case and is  optimised,  so  it's  much
              faster than other per-surface values.

       Alpha effects surface blitting in the following ways:

       RGBA->RGB with SDL_SRCALPHA
                           The   source  is  alpha-blended  with  the  destination,  using  the  alpha  channel.
                           SDL_SRCCOLORKEY and the per-surface alpha are ignored.

       RGBA->RGB without SDL_SRCALPHA
                           The RGB data is copied from the source. The source alpha channel and the  per-surface
                           alpha value are ignored.

       RGB->RGBA with SDL_SRCALPHA
                           The  source  is alpha-blended with the destination using the per-surface alpha value.
                           If SDL_SRCCOLORKEY is set, only the  pixels  not  matching  the  colorkey  value  are
                           copied. The alpha channel of the copied pixels is set to opaque.

       RGB->RGBA without SDL_SRCALPHA
                           The  RGB  data  is copied from the source and the alpha value of the copied pixels is
                           set to opaque. If SDL_SRCCOLORKEY is set, only the pixels not matching  the  colorkey
                           value are copied.

       RGBA->RGBA with SDL_SRCALPHA
                           The  source is alpha-blended with the destination using the source alpha channel. The
                           alpha channel in the  destination  surface  is  left  untouched.  SDL_SRCCOLORKEY  is
                           ignored.

       RGBA->RGBA without SDL_SRCALPHA
                           The  RGBA  data is copied to the destination surface. If SDL_SRCCOLORKEY is set, only
                           the pixels not matching the colorkey value are copied.

       RGB->RGB with SDL_SRCALPHA
                           The source is alpha-blended with the destination using the per-surface  alpha  value.
                           If  SDL_SRCCOLORKEY  is  set,  only  the  pixels  not matching the colorkey value are
                           copied.

       RGB->RGB without SDL_SRCALPHA
                           The RGB data is copied from the source. If SDL_SRCCOLORKEY is set,  only  the  pixels
                           not matching the colorkey value are copied.

              Note:

               Note  that  RGBA->RGBA  blits  (with SDL_SRCALPHA set) keep the alpha of the destination surface.
              This means that you cannot compose two arbitrary RGBA surfaces this way and  get  the  result  you
              would expect from "overlaying" them; the destination alpha will work as a mask.

              Also  note  that per-pixel and per-surface alpha cannot be combined; the per-pixel alpha is always
              used if available

RETURN VALUE

       This function returns 0, or -1 if there was an error.

SEE ALSO

       SDL_MapRGBA, SDL_GetRGBA, SDL_DisplayFormatAlpha, SDL_BlitSurface