home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / graphics / video / palmap / dibmap.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-10-05  |  1.3 KB  |  48 lines

  1. /**************************************************************************
  2.  *
  3.  *  THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
  4.  *  KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  5.  *  IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
  6.  *  PURPOSE.
  7.  *
  8.  *  Copyright (C) 1992 - 1997 Microsoft Corporation.  All Rights Reserved.
  9.  *
  10.  **************************************************************************/
  11.  
  12. typedef DWORD * LPHISTOGRAM;
  13. // casting ensures values > 127 get zero-extended, not sign-extended
  14. #define RGB16(r,g,b) (\
  15.             ((WORD)(UINT)    (((int)(UINT)(r) >> 3) << 10)    |    \
  16.                 (((int)(UINT)(g) >> 3) << 5)    |    \
  17.                 (((int)(UINT)(b) >> 3) << 0)))
  18.  
  19. LPHISTOGRAM InitHistogram(
  20.     LPHISTOGRAM lpHistogram);
  21. void FreeHistogram(
  22.     LPHISTOGRAM lpHistogram);
  23. HPALETTE HistogramPalette(
  24.     LPHISTOGRAM lpHistogram,
  25.     LPBYTE lp16to8,
  26.     int nColors);
  27. BOOL DibHistogram(
  28.     LPBITMAPINFOHEADER lpbi,
  29.     LPBYTE lpBits,
  30.     int x,
  31.     int y,
  32.     int dx,
  33.     int dy,
  34.     LPHISTOGRAM lpHistogram);
  35. LPBITMAPINFOHEADER DibReduce(
  36.     LPBITMAPINFOHEADER lpbi,
  37.     LPBYTE lpBits,
  38.     HPALETTE hpal,
  39.     LPBYTE lp16to8);
  40. void NEAR PASCAL UseHistogram(
  41.     LPHISTOGRAM lpHistogram);
  42. DWORD near _fastcall GetHistogram(
  43.     BYTE r,
  44.     BYTE g,
  45.     BYTE b);
  46. void near _fastcall IncHistogram(
  47.     WORD rgb16);
  48.