358 lines
5.5 KiB
HTML
358 lines
5.5 KiB
HTML
|
<HTML
|
||
|
><HEAD
|
||
|
><TITLE
|
||
|
>SDL_SetColors</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_Flip"
|
||
|
HREF="sdlflip.html"><LINK
|
||
|
REL="NEXT"
|
||
|
TITLE="SDL_SetPalette"
|
||
|
HREF="sdlsetpalette.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="sdlflip.html"
|
||
|
ACCESSKEY="P"
|
||
|
>Prev</A
|
||
|
></TD
|
||
|
><TD
|
||
|
WIDTH="80%"
|
||
|
ALIGN="center"
|
||
|
VALIGN="bottom"
|
||
|
></TD
|
||
|
><TD
|
||
|
WIDTH="10%"
|
||
|
ALIGN="right"
|
||
|
VALIGN="bottom"
|
||
|
><A
|
||
|
HREF="sdlsetpalette.html"
|
||
|
ACCESSKEY="N"
|
||
|
>Next</A
|
||
|
></TD
|
||
|
></TR
|
||
|
></TABLE
|
||
|
><HR
|
||
|
ALIGN="LEFT"
|
||
|
WIDTH="100%"></DIV
|
||
|
><H1
|
||
|
><A
|
||
|
NAME="SDLSETCOLORS"
|
||
|
></A
|
||
|
>SDL_SetColors</H1
|
||
|
><DIV
|
||
|
CLASS="REFNAMEDIV"
|
||
|
><A
|
||
|
NAME="AEN1462"
|
||
|
></A
|
||
|
><H2
|
||
|
>Name</H2
|
||
|
>SDL_SetColors -- Sets a portion of the colormap for the given 8-bit surface.</DIV
|
||
|
><DIV
|
||
|
CLASS="REFSYNOPSISDIV"
|
||
|
><A
|
||
|
NAME="AEN1465"
|
||
|
></A
|
||
|
><H2
|
||
|
>Synopsis</H2
|
||
|
><DIV
|
||
|
CLASS="FUNCSYNOPSIS"
|
||
|
><A
|
||
|
NAME="AEN1466"
|
||
|
></A
|
||
|
><P
|
||
|
></P
|
||
|
><PRE
|
||
|
CLASS="FUNCSYNOPSISINFO"
|
||
|
>#include "SDL.h"</PRE
|
||
|
><P
|
||
|
><CODE
|
||
|
><CODE
|
||
|
CLASS="FUNCDEF"
|
||
|
>int <B
|
||
|
CLASS="FSFUNC"
|
||
|
>SDL_SetColors</B
|
||
|
></CODE
|
||
|
>(SDL_Surface *surface, SDL_Color *colors, int firstcolor, int ncolors);</CODE
|
||
|
></P
|
||
|
><P
|
||
|
></P
|
||
|
></DIV
|
||
|
></DIV
|
||
|
><DIV
|
||
|
CLASS="REFSECT1"
|
||
|
><A
|
||
|
NAME="AEN1472"
|
||
|
></A
|
||
|
><H2
|
||
|
>Description</H2
|
||
|
><P
|
||
|
>Sets a portion of the colormap for the given 8-bit surface.</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_SetColors</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
|
||
|
><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). <TT
|
||
|
CLASS="FUNCTION"
|
||
|
>SDL_SetColors</TT
|
||
|
>
|
||
|
modifies both palettes (if present), and is equivalent to calling
|
||
|
<A
|
||
|
HREF="sdlsetpalette.html"
|
||
|
>SDL_SetPalette</A
|
||
|
> with the
|
||
|
<TT
|
||
|
CLASS="PARAMETER"
|
||
|
><I
|
||
|
>flags</I
|
||
|
></TT
|
||
|
> set to
|
||
|
<TT
|
||
|
CLASS="LITERAL"
|
||
|
>(SDL_LOGPAL | SDL_PHYSPAL)</TT
|
||
|
>.</P
|
||
|
></DIV
|
||
|
><DIV
|
||
|
CLASS="REFSECT1"
|
||
|
><A
|
||
|
NAME="AEN1491"
|
||
|
></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_SetColors</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="AEN1499"
|
||
|
></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_SetColors(screen, colors, 0, 256);
|
||
|
.
|
||
|
.
|
||
|
.
|
||
|
.</PRE
|
||
|
></DIV
|
||
|
><DIV
|
||
|
CLASS="REFSECT1"
|
||
|
><A
|
||
|
NAME="AEN1502"
|
||
|
></A
|
||
|
><H2
|
||
|
>See Also</H2
|
||
|
><P
|
||
|
><A
|
||
|
HREF="sdlcolor.html"
|
||
|
><SPAN
|
||
|
CLASS="STRUCTNAME"
|
||
|
>SDL_Color</SPAN
|
||
|
></A
|
||
|
>
|
||
|
<A
|
||
|
HREF="sdlsurface.html"
|
||
|
><SPAN
|
||
|
CLASS="STRUCTNAME"
|
||
|
>SDL_Surface</SPAN
|
||
|
></A
|
||
|
>,
|
||
|
<A
|
||
|
HREF="sdlsetpalette.html"
|
||
|
><TT
|
||
|
CLASS="FUNCTION"
|
||
|
>SDL_SetPalette</TT
|
||
|
></A
|
||
|
>,
|
||
|
<A
|
||
|
HREF="sdlsetvideomode.html"
|
||
|
><TT
|
||
|
CLASS="FUNCTION"
|
||
|
>SDL_SetVideoMode</TT
|
||
|
></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="sdlflip.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="sdlsetpalette.html"
|
||
|
ACCESSKEY="N"
|
||
|
>Next</A
|
||
|
></TD
|
||
|
></TR
|
||
|
><TR
|
||
|
><TD
|
||
|
WIDTH="33%"
|
||
|
ALIGN="left"
|
||
|
VALIGN="top"
|
||
|
>SDL_Flip</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_SetPalette</TD
|
||
|
></TR
|
||
|
></TABLE
|
||
|
></DIV
|
||
|
></BODY
|
||
|
></HTML
|
||
|
>
|