mirror of
https://github.com/joel16/SDL2.git
synced 2024-12-12 13:35:53 +00:00
028b0ae934
--HG-- extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%4056
492 lines
7.7 KiB
HTML
492 lines
7.7 KiB
HTML
<HTML
|
|
><HEAD
|
|
><TITLE
|
|
>SDL_SetAlpha</TITLE
|
|
><META
|
|
NAME="GENERATOR"
|
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.64
|
|
"><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
|
|
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"
|
|
>Prev</A
|
|
></TD
|
|
><TD
|
|
WIDTH="80%"
|
|
ALIGN="center"
|
|
VALIGN="bottom"
|
|
></TD
|
|
><TD
|
|
WIDTH="10%"
|
|
ALIGN="right"
|
|
VALIGN="bottom"
|
|
><A
|
|
HREF="sdlsetcliprect.html"
|
|
>Next</A
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><HR
|
|
ALIGN="LEFT"
|
|
WIDTH="100%"></DIV
|
|
><H1
|
|
><A
|
|
NAME="SDLSETALPHA"
|
|
>SDL_SetAlpha</A
|
|
></H1
|
|
><DIV
|
|
CLASS="REFNAMEDIV"
|
|
><A
|
|
NAME="AEN1681"
|
|
></A
|
|
><H2
|
|
>Name</H2
|
|
>SDL_SetAlpha -- Adjust the alpha properties of a surface</DIV
|
|
><DIV
|
|
CLASS="REFSYNOPSISDIV"
|
|
><A
|
|
NAME="AEN1684"
|
|
></A
|
|
><H2
|
|
>Synopsis</H2
|
|
><DIV
|
|
CLASS="FUNCSYNOPSIS"
|
|
><A
|
|
NAME="AEN1685"
|
|
></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="AEN1691"
|
|
></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="AEN1711"
|
|
></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="AEN1764"
|
|
></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="AEN1769"
|
|
></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
|
|
WIDTH="100%"
|
|
BORDER="0"
|
|
CELLPADDING="0"
|
|
CELLSPACING="0"
|
|
><TR
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="left"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="sdlsetcolorkey.html"
|
|
>Prev</A
|
|
></TD
|
|
><TD
|
|
WIDTH="34%"
|
|
ALIGN="center"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="index.html"
|
|
>Home</A
|
|
></TD
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="right"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="sdlsetcliprect.html"
|
|
>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"
|
|
>Up</A
|
|
></TD
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="right"
|
|
VALIGN="top"
|
|
>SDL_SetClipRect</TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></BODY
|
|
></HTML
|
|
> |