SDL_SetPalette.3
资源名称:NETVIDEO.rar [点击查看]
上传用户:sun1608
上传日期:2007-02-02
资源大小:6116k
文件大小:3k
源码类别:
流媒体/Mpeg4/MP4
开发平台:
Visual C++
- .TH "SDL_SetPalette" "3" "Tue 11 Sep 2001, 23:01" "SDL" "SDL API Reference"
- .SH "NAME"
- SDL_SetPalette- Sets the colors in the palette of an 8-bit surface&.
- .SH "SYNOPSIS"
- .PP
- fB#include "SDL&.h"
- .sp
- fBint fBSDL_SetPalettefPfR(fBSDL_Surface *surface, int flags, SDL_Color *colors, int firstcolor, int ncolorsfR);
- .SH "DESCRIPTION"
- .PP
- Sets a portion of the palette for the given 8-bit surface&.
- .PP
- Palettized (8-bit) screen surfaces with the fBSDL_HWPALETTEfP 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_BlitSurfacefR 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)&.
- .PP
- This function can modify either the logical or physical palette by specifing fBSDL_LOGPALfP or fBSDL_PHYSPALfPthe in the fBflagsfR parameter&.
- .PP
- When fBsurfacefR is the surface associated with the current display, the display colormap will be updated with the requested colors&. If fBSDL_HWPALETTEfP was set in fISDL_SetVideoModefR flags, fBSDL_SetPalettefP will always return fB1fR, 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&.
- .PP
- The color components of a fIfBSDL_ColorfRfR structure are 8-bits in size, giving you a total of 256^3=16777216 colors&.
- .SH "RETURN VALUE"
- .PP
- If fBsurfacefR is not a palettized surface, this function does nothing, returning fB0fR&. If all of the colors were set as passed to fBSDL_SetPalettefP, it will return fB1fR&. If not all the color entries were set exactly as given, it will return fB0fR, and you should look at the surface palette to determine the actual color palette&.
- .SH "EXAMPLE"
- .PP
- .nf
- f(CW /* 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
- ", SDL_GetError());
- exit(-1);
- }
- /* Set palette */
- SDL_SetPalette(screen, SDL_LOGPAL|SDL_PHYSPAL, colors, 0, 256);
- &.
- &.
- &.
- &.fR
- .fi
- .PP
- .SH "SEE ALSO"
- .PP
- fISDL_SetColorsfR, fISDL_SetVideoModefR, fISDL_SurfacefR, fISDL_ColorfR
- ..." created by instant / docbook-to-man, Tue 11 Sep 2001, 23:01