Mercurial > sdl-ios-xcode
diff docs/html/sdlsetpalette.html @ 0:74212992fb08
Initial revision
author | Sam Lantinga <slouken@lokigames.com> |
---|---|
date | Thu, 26 Apr 2001 16:45:43 +0000 |
parents | |
children | 55f1f1b3e27d |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docs/html/sdlsetpalette.html Thu Apr 26 16:45:43 2001 +0000 @@ -0,0 +1,344 @@ +<HTML +><HEAD +><TITLE +>SDL_SetPalette</TITLE +><META +NAME="GENERATOR" +CONTENT="Modular DocBook HTML Stylesheet Version 1.61 +"><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="AEN1060" +></A +><H2 +>Name</H2 +>SDL_SetPalette -- Sets the colors in the palette of an 8-bit surface.</DIV +><DIV +CLASS="REFSYNOPSISDIV" +><A +NAME="AEN1063" +></A +><H2 +>Synopsis</H2 +><DIV +CLASS="FUNCSYNOPSIS" +><A +NAME="AEN1064" +></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, int SDL_Color *colors, int firstcolor, int ncolors);</CODE +></P +><P +></P +></DIV +></DIV +><DIV +CLASS="REFSECT1" +><A +NAME="AEN1070" +></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="AEN1090" +></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="AEN1098" +></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="AEN1101" +></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 +> \ No newline at end of file