0,0 → 1,350 |
<HTML |
><HEAD |
><TITLE |
>SDL_SetColors</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_Flip" |
HREF="sdlflip.html"><LINK |
REL="NEXT" |
TITLE="SDL_SetPalette" |
HREF="sdlsetpalette.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="sdlflip.html" |
>Prev</A |
></TD |
><TD |
WIDTH="80%" |
ALIGN="center" |
VALIGN="bottom" |
></TD |
><TD |
WIDTH="10%" |
ALIGN="right" |
VALIGN="bottom" |
><A |
HREF="sdlsetpalette.html" |
>Next</A |
></TD |
></TR |
></TABLE |
><HR |
ALIGN="LEFT" |
WIDTH="100%"></DIV |
><H1 |
><A |
NAME="SDLSETCOLORS" |
>SDL_SetColors</A |
></H1 |
><DIV |
CLASS="REFNAMEDIV" |
><A |
NAME="AEN1047" |
></A |
><H2 |
>Name</H2 |
>SDL_SetColors -- Sets a portion of the colormap for the given 8-bit surface.</DIV |
><DIV |
CLASS="REFSYNOPSISDIV" |
><A |
NAME="AEN1050" |
></A |
><H2 |
>Synopsis</H2 |
><DIV |
CLASS="FUNCSYNOPSIS" |
><A |
NAME="AEN1051" |
></A |
><P |
></P |
><PRE |
CLASS="FUNCSYNOPSISINFO" |
>#include "SDL.h"</PRE |
><P |
><CODE |
><CODE |
CLASS="FUNCDEF" |
>int <B |
CLASS="FSFUNC" |
>SDL_SetColors</B |
></CODE |
>(SDL_Surface *surface, SDL_Color *colors, int firstcolor, int ncolors);</CODE |
></P |
><P |
></P |
></DIV |
></DIV |
><DIV |
CLASS="REFSECT1" |
><A |
NAME="AEN1057" |
></A |
><H2 |
>Description</H2 |
><P |
>Sets a portion of the colormap for the given 8-bit surface.</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_SetColors</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 |
><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). <TT |
CLASS="FUNCTION" |
>SDL_SetColors</TT |
> |
modifies both palettes (if present), and is equivalent to calling |
<A |
HREF="sdlsetpalette.html" |
>SDL_SetPalette</A |
> with the |
<TT |
CLASS="PARAMETER" |
><I |
>flags</I |
></TT |
> set to |
<TT |
CLASS="LITERAL" |
>(SDL_LOGPAL | SDL_PHYSPAL)</TT |
>.</P |
></DIV |
><DIV |
CLASS="REFSECT1" |
><A |
NAME="AEN1076" |
></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_SetColors</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="AEN1084" |
></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_SetColors(screen, colors, 0, 256); |
. |
. |
. |
.</PRE |
></DIV |
><DIV |
CLASS="REFSECT1" |
><A |
NAME="AEN1087" |
></A |
><H2 |
>See Also</H2 |
><P |
><A |
HREF="sdlcolor.html" |
><SPAN |
CLASS="STRUCTNAME" |
>SDL_Color</SPAN |
></A |
> |
<A |
HREF="sdlsurface.html" |
><SPAN |
CLASS="STRUCTNAME" |
>SDL_Surface</SPAN |
></A |
>, |
<A |
HREF="sdlsetpalette.html" |
><TT |
CLASS="FUNCTION" |
>SDL_SetPalette</TT |
></A |
>, |
<A |
HREF="sdlsetvideomode.html" |
><TT |
CLASS="FUNCTION" |
>SDL_SetVideoMode</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="sdlflip.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="sdlsetpalette.html" |
>Next</A |
></TD |
></TR |
><TR |
><TD |
WIDTH="33%" |
ALIGN="left" |
VALIGN="top" |
>SDL_Flip</TD |
><TD |
WIDTH="34%" |
ALIGN="center" |
VALIGN="top" |
><A |
HREF="video.html" |
>Up</A |
></TD |
><TD |
WIDTH="33%" |
ALIGN="right" |
VALIGN="top" |
>SDL_SetPalette</TD |
></TR |
></TABLE |
></DIV |
></BODY |
></HTML |
> |