forked from KolibriOS/kolibrios
3cf7852e03
git-svn-id: svn://kolibrios.org@5131 a494cfbc-eb01-0410-851d-a64ba20cac60
344 lines
5.4 KiB
HTML
344 lines
5.4 KiB
HTML
<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="AEN1102"
|
|
></A
|
|
><H2
|
|
>Name</H2
|
|
>SDL_SetPalette -- Sets the colors in the palette of an 8-bit surface.</DIV
|
|
><DIV
|
|
CLASS="REFSYNOPSISDIV"
|
|
><A
|
|
NAME="AEN1105"
|
|
></A
|
|
><H2
|
|
>Synopsis</H2
|
|
><DIV
|
|
CLASS="FUNCSYNOPSIS"
|
|
><A
|
|
NAME="AEN1106"
|
|
></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="AEN1112"
|
|
></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="AEN1132"
|
|
></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="AEN1140"
|
|
></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="AEN1143"
|
|
></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
|
|
> |