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