SDL API Reference SDL_SetAlpha(3)
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 nowbeen inverted: 0 (SDL_ALPHA_TRANSPARENT) is now con-
sidered 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 specifywhether 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 ignoredwhen blitting the surface. The alpha parameter is the per-
surface alpha value; a surface need not have an alpha chan-
nel 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 spe-
cial case and is optimised, so it's much faster thanother 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-
SDL Last change: Tue 11 Sep 2001, 23:01 1SDL API Reference SDL_SetAlpha(3)
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 pixelsis 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 chan-
nel. The alpha channel in the destina-
tion surface is left untouched.SDL_SRCCOLORKEY is ignored.
RGBA->RGBA without SDL_SRCALPHA
The RGBA data is copied to the destina-
tion surface. If SDL_SRCCOLORKEY is set,
only the pixels not matching the color-
key 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 pix-
els 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. SDL Last change: Tue 11 Sep 2001, 23:01 2SDL API Reference SDL_SetAlpha(3)
Also note that per-pixel and per-surface alpha cannot
be combined; the per-pixel alpha is always used if
available RETURN VALUEThis function returns 0, or -1 if there was an error.
SEE ALSO
SDL_MapRGBA, SDL_GetRGBA, SDL_DisplayFormatAlpha,
SDL_BlitSurface
SDL Last change: Tue 11 Sep 2001, 23:01 3