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.
352 lines
5.5 KiB
352 lines
5.5 KiB
<HTML |
|
><HEAD |
|
><TITLE |
|
>SDL_SetPalette</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_SetColors" |
|
HREF="sdlsetcolors.html"><LINK |
|
REL="NEXT" |
|
TITLE="SDL_SetGamma" |
|
HREF="sdlsetgamma.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="sdlsetcolors.html" |
|
ACCESSKEY="P" |
|
>Prev</A |
|
></TD |
|
><TD |
|
WIDTH="80%" |
|
ALIGN="center" |
|
VALIGN="bottom" |
|
></TD |
|
><TD |
|
WIDTH="10%" |
|
ALIGN="right" |
|
VALIGN="bottom" |
|
><A |
|
HREF="sdlsetgamma.html" |
|
ACCESSKEY="N" |
|
>Next</A |
|
></TD |
|
></TR |
|
></TABLE |
|
><HR |
|
ALIGN="LEFT" |
|
WIDTH="100%"></DIV |
|
><H1 |
|
><A |
|
NAME="SDLSETPALETTE" |
|
></A |
|
>SDL_SetPalette</H1 |
|
><DIV |
|
CLASS="REFNAMEDIV" |
|
><A |
|
NAME="AEN1517" |
|
></A |
|
><H2 |
|
>Name</H2 |
|
>SDL_SetPalette -- Sets the colors in the palette of an 8-bit surface.</DIV |
|
><DIV |
|
CLASS="REFSYNOPSISDIV" |
|
><A |
|
NAME="AEN1520" |
|
></A |
|
><H2 |
|
>Synopsis</H2 |
|
><DIV |
|
CLASS="FUNCSYNOPSIS" |
|
><A |
|
NAME="AEN1521" |
|
></A |
|
><P |
|
></P |
|
><PRE |
|
CLASS="FUNCSYNOPSISINFO" |
|
>#include "SDL.h"</PRE |
|
><P |
|
><CODE |
|
><CODE |
|
CLASS="FUNCDEF" |
|
>int <B |
|
CLASS="FSFUNC" |
|
>SDL_SetPalette</B |
|
></CODE |
|
>(SDL_Surface *surface, int flags, SDL_Color *colors, int firstcolor, int ncolors);</CODE |
|
></P |
|
><P |
|
></P |
|
></DIV |
|
></DIV |
|
><DIV |
|
CLASS="REFSECT1" |
|
><A |
|
NAME="AEN1527" |
|
></A |
|
><H2 |
|
>Description</H2 |
|
><P |
|
>Sets a portion of the palette for the given 8-bit surface.</P |
|
><P |
|
>Palettized (8-bit) screen surfaces with the |
|
<TT |
|
CLASS="LITERAL" |
|
>SDL_HWPALETTE</TT |
|
> flag have two palettes, a logical |
|
palette that is used for mapping blits to/from the surface and a |
|
physical palette (that determines how the hardware will map the colors |
|
to the display). <A |
|
HREF="sdlblitsurface.html" |
|
>SDL_BlitSurface</A |
|
> |
|
always uses the logical palette when blitting surfaces (if it has to |
|
convert between surface pixel formats). Because of this, it is often |
|
useful to modify only one or the other palette to achieve various |
|
special color effects (e.g., screen fading, color flashes, screen dimming).</P |
|
><P |
|
>This function can modify either the logical or physical palette by |
|
specifing <TT |
|
CLASS="LITERAL" |
|
>SDL_LOGPAL</TT |
|
> or |
|
<TT |
|
CLASS="LITERAL" |
|
>SDL_PHYSPAL</TT |
|
>the in the <TT |
|
CLASS="PARAMETER" |
|
><I |
|
>flags</I |
|
></TT |
|
> |
|
parameter.</P |
|
><P |
|
>When <TT |
|
CLASS="PARAMETER" |
|
><I |
|
>surface</I |
|
></TT |
|
> is the surface associated with the current |
|
display, the display colormap will be updated with the requested colors. If |
|
<TT |
|
CLASS="LITERAL" |
|
>SDL_HWPALETTE</TT |
|
> was set in <A |
|
HREF="sdlsetvideomode.html" |
|
>SDL_SetVideoMode</A |
|
> flags, |
|
<TT |
|
CLASS="FUNCTION" |
|
>SDL_SetPalette</TT |
|
> will always return <SPAN |
|
CLASS="RETURNVALUE" |
|
>1</SPAN |
|
>, |
|
and the palette is guaranteed to be set the way you desire, even if the window |
|
colormap has to be warped or run under emulation.</P |
|
><P |
|
>The color components of a |
|
<A |
|
HREF="sdlcolor.html" |
|
><SPAN |
|
CLASS="STRUCTNAME" |
|
>SDL_Color</SPAN |
|
></A |
|
> structure |
|
are 8-bits in size, giving you a total of |
|
256<SUP |
|
>3</SUP |
|
>=16777216 colors.</P |
|
></DIV |
|
><DIV |
|
CLASS="REFSECT1" |
|
><A |
|
NAME="AEN1547" |
|
></A |
|
><H2 |
|
>Return Value</H2 |
|
><P |
|
>If <TT |
|
CLASS="PARAMETER" |
|
><I |
|
>surface</I |
|
></TT |
|
> is not a palettized surface, this function |
|
does nothing, returning <SPAN |
|
CLASS="RETURNVALUE" |
|
>0</SPAN |
|
>. If all of the colors were set |
|
as passed to <TT |
|
CLASS="FUNCTION" |
|
>SDL_SetPalette</TT |
|
>, it will return |
|
<SPAN |
|
CLASS="RETURNVALUE" |
|
>1</SPAN |
|
>. If not all the color entries were set exactly as |
|
given, it will return <SPAN |
|
CLASS="RETURNVALUE" |
|
>0</SPAN |
|
>, and you should look at the |
|
surface palette to determine the actual color palette.</P |
|
></DIV |
|
><DIV |
|
CLASS="REFSECT1" |
|
><A |
|
NAME="AEN1555" |
|
></A |
|
><H2 |
|
>Example</H2 |
|
><PRE |
|
CLASS="PROGRAMLISTING" |
|
> /* Create a display surface with a grayscale palette */ |
|
SDL_Surface *screen; |
|
SDL_Color colors[256]; |
|
int i; |
|
. |
|
. |
|
. |
|
/* Fill colors with color information */ |
|
for(i=0;i<256;i++){ |
|
colors[i].r=i; |
|
colors[i].g=i; |
|
colors[i].b=i; |
|
} |
|
|
|
/* Create display */ |
|
screen=SDL_SetVideoMode(640, 480, 8, SDL_HWPALETTE); |
|
if(!screen){ |
|
printf("Couldn't set video mode: %s\n", SDL_GetError()); |
|
exit(-1); |
|
} |
|
|
|
/* Set palette */ |
|
SDL_SetPalette(screen, SDL_LOGPAL|SDL_PHYSPAL, colors, 0, 256); |
|
. |
|
. |
|
. |
|
.</PRE |
|
></DIV |
|
><DIV |
|
CLASS="REFSECT1" |
|
><A |
|
NAME="AEN1558" |
|
></A |
|
><H2 |
|
>See Also</H2 |
|
><P |
|
><A |
|
HREF="sdlsetcolors.html" |
|
>SDL_SetColors</A |
|
>, |
|
<A |
|
HREF="sdlsetvideomode.html" |
|
>SDL_SetVideoMode</A |
|
>, |
|
<A |
|
HREF="sdlsurface.html" |
|
>SDL_Surface</A |
|
>, |
|
<A |
|
HREF="sdlcolor.html" |
|
>SDL_Color</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="sdlsetcolors.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="sdlsetgamma.html" |
|
ACCESSKEY="N" |
|
>Next</A |
|
></TD |
|
></TR |
|
><TR |
|
><TD |
|
WIDTH="33%" |
|
ALIGN="left" |
|
VALIGN="top" |
|
>SDL_SetColors</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_SetGamma</TD |
|
></TR |
|
></TABLE |
|
></DIV |
|
></BODY |
|
></HTML |
|
> |