You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
500 lines
7.9 KiB
500 lines
7.9 KiB
<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 |
|
> |