Mercurial > sdl-ios-xcode
comparison docs/man3/SDL_SetPalette.3 @ 0:74212992fb08
Initial revision
author | Sam Lantinga <slouken@lokigames.com> |
---|---|
date | Thu, 26 Apr 2001 16:45:43 +0000 |
parents | |
children | 55f1f1b3e27d |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:74212992fb08 |
---|---|
1 .TH "SDL_SetPalette" "3" "Mon 12 Mar 2001, 01:04" "SDL" "SDL API Reference" | |
2 .SH "NAME" | |
3 SDL_SetPalette\- Sets the colors in the palette of an 8-bit surface\&. | |
4 .SH "SYNOPSIS" | |
5 .PP | |
6 \fB#include "SDL\&.h" | |
7 .sp | |
8 \fBint \fBSDL_SetPalette\fP\fR(\fBSDL_Surface *surface, int flags, int SDL_Color *colors, int firstcolor, int ncolors\fR); | |
9 .SH "DESCRIPTION" | |
10 .PP | |
11 Sets a portion of the palette for the given 8-bit surface\&. | |
12 .PP | |
13 Palettized (8-bit) screen surfaces with the \fBSDL_HWPALETTE\fP 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)\&. \fISDL_BlitSurface\fR 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)\&. | |
14 .PP | |
15 This function can modify either the logical or physical palette by specifing \fBSDL_LOGPAL\fP or \fBSDL_PHYSPAL\fPthe in the \fBflags\fR parameter\&. | |
16 .PP | |
17 When \fBsurface\fR is the surface associated with the current display, the display colormap will be updated with the requested colors\&. If \fBSDL_HWPALETTE\fP was set in \fISDL_SetVideoMode\fR flags, \fBSDL_SetPalette\fP will always return \fB1\fR, 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\&. | |
18 .PP | |
19 The color components of a \fI\fBSDL_Color\fR\fR structure are 8-bits in size, giving you a total of 256^3=16777216 colors\&. | |
20 .SH "RETURN VALUE" | |
21 .PP | |
22 If \fBsurface\fR is not a palettized surface, this function does nothing, returning \fB0\fR\&. If all of the colors were set as passed to \fBSDL_SetPalette\fP, it will return \fB1\fR\&. If not all the color entries were set exactly as given, it will return \fB0\fR, and you should look at the surface palette to determine the actual color palette\&. | |
23 .SH "EXAMPLE" | |
24 .PP | |
25 .nf | |
26 \f(CW /* Create a display surface with a grayscale palette */ | |
27 SDL_Surface *screen; | |
28 SDL_Color colors[256]; | |
29 int i; | |
30 \&. | |
31 \&. | |
32 \&. | |
33 /* Fill colors with color information */ | |
34 for(i=0;i<256;i++){ | |
35 colors[i]\&.r=i; | |
36 colors[i]\&.g=i; | |
37 colors[i]\&.b=i; | |
38 } | |
39 | |
40 /* Create display */ | |
41 screen=SDL_SetVideoMode(640, 480, 8, SDL_HWPALETTE); | |
42 if(!screen){ | |
43 printf("Couldn\&'t set video mode: %s | |
44 ", SDL_GetError()); | |
45 exit(-1); | |
46 } | |
47 | |
48 /* Set palette */ | |
49 SDL_SetPalette(screen, SDL_LOGPAL|SDL_PHYSPAL, colors, 0, 256); | |
50 \&. | |
51 \&. | |
52 \&. | |
53 \&.\fR | |
54 .fi | |
55 .PP | |
56 .SH "SEE ALSO" | |
57 .PP | |
58 \fISDL_SetColors\fR, \fISDL_SetVideoMode\fR, \fISDL_Surface\fR, \fISDL_Color\fR | |
59 ...\" created by instant / docbook-to-man, Mon 12 Mar 2001, 01:04 |