home *** CD-ROM | disk | FTP | other *** search
- <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="AEN1080"
- ></A
- ><H2
- >Name</H2
- >SDL_SetColors -- Sets a portion of the colormap for the given 8-bit surface.</DIV
- ><DIV
- CLASS="REFSYNOPSISDIV"
- ><A
- NAME="AEN1083"
- ></A
- ><H2
- >Synopsis</H2
- ><DIV
- CLASS="FUNCSYNOPSIS"
- ><A
- NAME="AEN1084"
- ></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="AEN1090"
- ></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="AEN1109"
- ></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="AEN1117"
- ></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="AEN1120"
- ></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
- >