home *** CD-ROM | disk | FTP | other *** search
- <HTML
- ><HEAD
- ><TITLE
- >SDL_SetPalette</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_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
- 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"
- >Prev</A
- ></TD
- ><TD
- WIDTH="80%"
- ALIGN="center"
- VALIGN="bottom"
- ></TD
- ><TD
- WIDTH="10%"
- ALIGN="right"
- VALIGN="bottom"
- ><A
- HREF="sdlsetgamma.html"
- >Next</A
- ></TD
- ></TR
- ></TABLE
- ><HR
- ALIGN="LEFT"
- WIDTH="100%"></DIV
- ><H1
- ><A
- NAME="SDLSETPALETTE"
- >SDL_SetPalette</A
- ></H1
- ><DIV
- CLASS="REFNAMEDIV"
- ><A
- NAME="AEN1135"
- ></A
- ><H2
- >Name</H2
- >SDL_SetPalette -- Sets the colors in the palette of an 8-bit surface.</DIV
- ><DIV
- CLASS="REFSYNOPSISDIV"
- ><A
- NAME="AEN1138"
- ></A
- ><H2
- >Synopsis</H2
- ><DIV
- CLASS="FUNCSYNOPSIS"
- ><A
- NAME="AEN1139"
- ></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="AEN1145"
- ></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="AEN1165"
- ></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="AEN1173"
- ></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="AEN1176"
- ></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
- WIDTH="100%"
- BORDER="0"
- CELLPADDING="0"
- CELLSPACING="0"
- ><TR
- ><TD
- WIDTH="33%"
- ALIGN="left"
- VALIGN="top"
- ><A
- HREF="sdlsetcolors.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="sdlsetgamma.html"
- >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"
- >Up</A
- ></TD
- ><TD
- WIDTH="33%"
- ALIGN="right"
- VALIGN="top"
- >SDL_SetGamma</TD
- ></TR
- ></TABLE
- ></DIV
- ></BODY
- ></HTML
- >