| <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 | 
 | > |