SDL_SetPalette.3
上传用户:sun1608
上传日期:2007-02-02
资源大小:6116k
文件大小:3k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

Visual C++

  1. .TH "SDL_SetPalette" "3" "Tue 11 Sep 2001, 23:01" "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_SetPalettefPfR(fBSDL_Surface *surface, int flags, SDL_Color *colors, int firstcolor, int ncolorsfR);
  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_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)&.
  14. .PP
  15. This function can modify either the logical or physical palette by specifing fBSDL_LOGPALfP or fBSDL_PHYSPALfPthe in the fBflagsfR parameter&.
  16. .PP
  17. 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&.
  18. .PP
  19. The color components of a fIfBSDL_ColorfRfR structure are 8-bits in size, giving you a total of 256^3=16777216 colors&.
  20. .SH "RETURN VALUE"
  21. .PP
  22. 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&.
  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.         /* Create display */
  40.         screen=SDL_SetVideoMode(640, 480, 8, SDL_HWPALETTE);
  41.         if(!screen){
  42.           printf("Couldn&'t set video mode: %s
  43. ", SDL_GetError());
  44.           exit(-1);
  45.         }
  46.         /* Set palette */
  47.         SDL_SetPalette(screen, SDL_LOGPAL|SDL_PHYSPAL, colors, 0, 256);
  48.         &.
  49.         &.
  50.         &.
  51.         &.fR
  52. .fi
  53. .PP
  54. .SH "SEE ALSO"
  55. .PP
  56. fISDL_SetColorsfR, fISDL_SetVideoModefR, fISDL_SurfacefR, fISDL_ColorfR
  57. ..." created by instant / docbook-to-man, Tue 11 Sep 2001, 23:01