| <HTML |
| ><HEAD |
| ><TITLE |
| >SDL_SetAlpha</TITLE |
| ><META |
| NAME="GENERATOR" |
| CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+ |
| "><LINK |
| REL="HOME" |
| TITLE="SDL Library Documentation" |
| HREF="index.html"><LINK |
| REL="UP" |
| TITLE="Video" |
| HREF="video.html"><LINK |
| REL="PREVIOUS" |
| TITLE="SDL_SetColorKey" |
| HREF="sdlsetcolorkey.html"><LINK |
| REL="NEXT" |
| TITLE="SDL_SetClipRect" |
| HREF="sdlsetcliprect.html"></HEAD |
| ><BODY |
| CLASS="REFENTRY" |
| BGCOLOR="#FFF8DC" |
| TEXT="#000000" |
| LINK="#0000ee" |
| VLINK="#551a8b" |
| ALINK="#ff0000" |
| ><DIV |
| CLASS="NAVHEADER" |
| ><TABLE |
| SUMMARY="Header navigation table" |
| WIDTH="100%" |
| BORDER="0" |
| CELLPADDING="0" |
| CELLSPACING="0" |
| ><TR |
| ><TH |
| COLSPAN="3" |
| ALIGN="center" |
| >SDL Library Documentation</TH |
| ></TR |
| ><TR |
| ><TD |
| WIDTH="10%" |
| ALIGN="left" |
| VALIGN="bottom" |
| ><A |
| HREF="sdlsetcolorkey.html" |
| ACCESSKEY="P" |
| >Prev</A |
| ></TD |
| ><TD |
| WIDTH="80%" |
| ALIGN="center" |
| VALIGN="bottom" |
| ></TD |
| ><TD |
| WIDTH="10%" |
| ALIGN="right" |
| VALIGN="bottom" |
| ><A |
| HREF="sdlsetcliprect.html" |
| ACCESSKEY="N" |
| >Next</A |
| ></TD |
| ></TR |
| ></TABLE |
| ><HR |
| ALIGN="LEFT" |
| WIDTH="100%"></DIV |
| ><H1 |
| ><A |
| NAME="SDLSETALPHA" |
| ></A |
| >SDL_SetAlpha</H1 |
| ><DIV |
| CLASS="REFNAMEDIV" |
| ><A |
| NAME="AEN2096" |
| ></A |
| ><H2 |
| >Name</H2 |
| >SDL_SetAlpha -- Adjust the alpha properties of a surface</DIV |
| ><DIV |
| CLASS="REFSYNOPSISDIV" |
| ><A |
| NAME="AEN2099" |
| ></A |
| ><H2 |
| >Synopsis</H2 |
| ><DIV |
| CLASS="FUNCSYNOPSIS" |
| ><A |
| NAME="AEN2100" |
| ></A |
| ><P |
| ></P |
| ><PRE |
| CLASS="FUNCSYNOPSISINFO" |
| >#include "SDL.h"</PRE |
| ><P |
| ><CODE |
| ><CODE |
| CLASS="FUNCDEF" |
| >int <B |
| CLASS="FSFUNC" |
| >SDL_SetAlpha</B |
| ></CODE |
| >(SDL_Surface *surface, Uint32 flag, Uint8 alpha);</CODE |
| ></P |
| ><P |
| ></P |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="REFSECT1" |
| ><A |
| NAME="AEN2106" |
| ></A |
| ><H2 |
| >Description</H2 |
| ><DIV |
| CLASS="NOTE" |
| ><BLOCKQUOTE |
| CLASS="NOTE" |
| ><P |
| ><B |
| >Note: </B |
| >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 (<TT |
| CLASS="LITERAL" |
| >SDL_ALPHA_TRANSPARENT</TT |
| >) is now considered transparent and 255 (<TT |
| CLASS="LITERAL" |
| >SDL_ALPHA_OPAQUE</TT |
| >) is now considered opaque.</P |
| ></BLOCKQUOTE |
| ></DIV |
| ><P |
| ><TT |
| CLASS="FUNCTION" |
| >SDL_SetAlpha</TT |
| > is used for setting the per-surface alpha |
| value and/or enabling and disabling alpha blending.</P |
| ><P |
| >The<TT |
| CLASS="PARAMETER" |
| ><I |
| >surface</I |
| ></TT |
| > parameter specifies which surface whose alpha |
| attributes you wish to adjust. <TT |
| CLASS="PARAMETER" |
| ><I |
| >flags</I |
| ></TT |
| > is used to specify |
| whether alpha blending should be used (<TT |
| CLASS="LITERAL" |
| >SDL_SRCALPHA</TT |
| >) and |
| whether the surface should use RLE acceleration for blitting |
| (<TT |
| CLASS="LITERAL" |
| >SDL_RLEACCEL</TT |
| >). <TT |
| CLASS="PARAMETER" |
| ><I |
| >flags</I |
| ></TT |
| > can be an OR'd |
| combination of these two options, one of these options or 0. If |
| <TT |
| CLASS="LITERAL" |
| >SDL_SRCALPHA</TT |
| > is not passed as a flag then all alpha |
| information is ignored when blitting the surface. The |
| <TT |
| CLASS="PARAMETER" |
| ><I |
| >alpha</I |
| ></TT |
| > 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 <TT |
| CLASS="LITERAL" |
| >SDL_RLEACCEL</TT |
| >.</P |
| ><DIV |
| CLASS="NOTE" |
| ><BLOCKQUOTE |
| CLASS="NOTE" |
| ><P |
| ><B |
| >Note: </B |
| >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.</P |
| ></BLOCKQUOTE |
| ></DIV |
| ><P |
| >Alpha effects surface blitting in the following ways:</P |
| ><DIV |
| CLASS="INFORMALTABLE" |
| ><A |
| NAME="AEN2126" |
| ></A |
| ><P |
| ></P |
| ><TABLE |
| BORDER="0" |
| CLASS="CALSTABLE" |
| ><TBODY |
| ><TR |
| ><TD |
| ALIGN="LEFT" |
| VALIGN="TOP" |
| >RGBA->RGB with <TT |
| CLASS="LITERAL" |
| >SDL_SRCALPHA</TT |
| ></TD |
| ><TD |
| ALIGN="LEFT" |
| VALIGN="TOP" |
| ><P |
| >The source is alpha-blended with the destination, using the alpha channel. <TT |
| CLASS="LITERAL" |
| >SDL_SRCCOLORKEY</TT |
| > and the per-surface alpha are ignored.</P |
| ></TD |
| ></TR |
| ><TR |
| ><TD |
| ALIGN="LEFT" |
| VALIGN="TOP" |
| >RGBA->RGB without <TT |
| CLASS="LITERAL" |
| >SDL_SRCALPHA</TT |
| ></TD |
| ><TD |
| ALIGN="LEFT" |
| VALIGN="TOP" |
| ><P |
| >The RGB data is copied from the source. The source alpha channel and the per-surface alpha value are ignored.</P |
| ></TD |
| ></TR |
| ><TR |
| ><TD |
| ALIGN="LEFT" |
| VALIGN="TOP" |
| >RGB->RGBA with <TT |
| CLASS="LITERAL" |
| >SDL_SRCALPHA</TT |
| ></TD |
| ><TD |
| ALIGN="LEFT" |
| VALIGN="TOP" |
| ><P |
| >The source is alpha-blended with the destination using the per-surface alpha |
| value. If <TT |
| CLASS="LITERAL" |
| >SDL_SRCCOLORKEY</TT |
| > is set, only the pixels not |
| matching the colorkey value are copied. The alpha channel of the copied pixels |
| is set to opaque.</P |
| ></TD |
| ></TR |
| ><TR |
| ><TD |
| ALIGN="LEFT" |
| VALIGN="TOP" |
| >RGB->RGBA without <TT |
| CLASS="LITERAL" |
| >SDL_SRCALPHA</TT |
| ></TD |
| ><TD |
| ALIGN="LEFT" |
| VALIGN="TOP" |
| ><P |
| >The RGB data is copied from the source and the alpha value of the copied pixels |
| is set to opaque. If <TT |
| CLASS="LITERAL" |
| >SDL_SRCCOLORKEY</TT |
| > is set, only the pixels |
| not matching the colorkey value are copied. </P |
| ></TD |
| ></TR |
| ><TR |
| ><TD |
| ALIGN="LEFT" |
| VALIGN="TOP" |
| >RGBA->RGBA with <TT |
| CLASS="LITERAL" |
| >SDL_SRCALPHA</TT |
| ></TD |
| ><TD |
| ALIGN="LEFT" |
| VALIGN="TOP" |
| ><P |
| >The source is alpha-blended with the destination using the source alpha |
| channel. The alpha channel in the destination surface is left untouched. |
| <TT |
| CLASS="LITERAL" |
| >SDL_SRCCOLORKEY</TT |
| > is ignored.</P |
| ></TD |
| ></TR |
| ><TR |
| ><TD |
| ALIGN="LEFT" |
| VALIGN="TOP" |
| >RGBA->RGBA without <TT |
| CLASS="LITERAL" |
| >SDL_SRCALPHA</TT |
| ></TD |
| ><TD |
| ALIGN="LEFT" |
| VALIGN="TOP" |
| ><P |
| >The RGBA data is copied to the destination surface. If <TT |
| CLASS="LITERAL" |
| >SDL_SRCCOLORKEY</TT |
| > is set, only the pixels not matching the colorkey value are copied.</P |
| ></TD |
| ></TR |
| ><TR |
| ><TD |
| ALIGN="LEFT" |
| VALIGN="TOP" |
| >RGB->RGB with <TT |
| CLASS="LITERAL" |
| >SDL_SRCALPHA</TT |
| ></TD |
| ><TD |
| ALIGN="LEFT" |
| VALIGN="TOP" |
| ><P |
| >The source is alpha-blended with the destination using the per-surface alpha value. If <TT |
| CLASS="LITERAL" |
| >SDL_SRCCOLORKEY</TT |
| > is set, only the pixels not matching the colorkey value are copied.</P |
| ></TD |
| ></TR |
| ><TR |
| ><TD |
| ALIGN="LEFT" |
| VALIGN="TOP" |
| >RGB->RGB without <TT |
| CLASS="LITERAL" |
| >SDL_SRCALPHA</TT |
| ></TD |
| ><TD |
| ALIGN="LEFT" |
| VALIGN="TOP" |
| ><P |
| >The RGB data is copied from the source. If <TT |
| CLASS="LITERAL" |
| >SDL_SRCCOLORKEY</TT |
| > is set, only the pixels not matching the colorkey value are copied.</P |
| ></TD |
| ></TR |
| ></TBODY |
| ></TABLE |
| ><P |
| ></P |
| ></DIV |
| ><DIV |
| CLASS="NOTE" |
| ><BLOCKQUOTE |
| CLASS="NOTE" |
| ><P |
| ><B |
| >Note: </B |
| > 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.</P |
| ><P |
| >Also note that per-pixel and per-surface alpha cannot be combined; |
| the per-pixel alpha is always used if available</P |
| ></BLOCKQUOTE |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="REFSECT1" |
| ><A |
| NAME="AEN2179" |
| ></A |
| ><H2 |
| >Return Value</H2 |
| ><P |
| >This function returns <SPAN |
| CLASS="RETURNVALUE" |
| >0</SPAN |
| >, or |
| <SPAN |
| CLASS="RETURNVALUE" |
| >-1</SPAN |
| > if there was an error.</P |
| ></DIV |
| ><DIV |
| CLASS="REFSECT1" |
| ><A |
| NAME="AEN2184" |
| ></A |
| ><H2 |
| >See Also</H2 |
| ><P |
| ><A |
| HREF="sdlmaprgba.html" |
| ><TT |
| CLASS="FUNCTION" |
| >SDL_MapRGBA</TT |
| ></A |
| >, |
| <A |
| HREF="sdlgetrgba.html" |
| ><TT |
| CLASS="FUNCTION" |
| >SDL_GetRGBA</TT |
| ></A |
| >, |
| <A |
| HREF="sdldisplayformatalpha.html" |
| ><TT |
| CLASS="FUNCTION" |
| >SDL_DisplayFormatAlpha</TT |
| ></A |
| >, |
| <A |
| HREF="sdlblitsurface.html" |
| ><TT |
| CLASS="FUNCTION" |
| >SDL_BlitSurface</TT |
| ></A |
| ></P |
| ></DIV |
| ><DIV |
| CLASS="NAVFOOTER" |
| ><HR |
| ALIGN="LEFT" |
| WIDTH="100%"><TABLE |
| SUMMARY="Footer navigation table" |
| WIDTH="100%" |
| BORDER="0" |
| CELLPADDING="0" |
| CELLSPACING="0" |
| ><TR |
| ><TD |
| WIDTH="33%" |
| ALIGN="left" |
| VALIGN="top" |
| ><A |
| HREF="sdlsetcolorkey.html" |
| ACCESSKEY="P" |
| >Prev</A |
| ></TD |
| ><TD |
| WIDTH="34%" |
| ALIGN="center" |
| VALIGN="top" |
| ><A |
| HREF="index.html" |
| ACCESSKEY="H" |
| >Home</A |
| ></TD |
| ><TD |
| WIDTH="33%" |
| ALIGN="right" |
| VALIGN="top" |
| ><A |
| HREF="sdlsetcliprect.html" |
| ACCESSKEY="N" |
| >Next</A |
| ></TD |
| ></TR |
| ><TR |
| ><TD |
| WIDTH="33%" |
| ALIGN="left" |
| VALIGN="top" |
| >SDL_SetColorKey</TD |
| ><TD |
| WIDTH="34%" |
| ALIGN="center" |
| VALIGN="top" |
| ><A |
| HREF="video.html" |
| ACCESSKEY="U" |
| >Up</A |
| ></TD |
| ><TD |
| WIDTH="33%" |
| ALIGN="right" |
| VALIGN="top" |
| >SDL_SetClipRect</TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ></BODY |
| ></HTML |
| > |