colormap.h
上传用户:dangjiwu
上传日期:2013-07-19
资源大小:42019k
文件大小:8k
源码类别:

Symbian

开发平台:

Visual C++

  1. /* ***** BEGIN LICENSE BLOCK *****
  2.  * Source last modified: $Id: colormap.h,v 1.1.1.1.50.1 2004/07/09 01:59:52 hubbe Exp $
  3.  * 
  4.  * Portions Copyright (c) 1995-2004 RealNetworks, Inc. All Rights Reserved.
  5.  * 
  6.  * The contents of this file, and the files included with this file,
  7.  * are subject to the current version of the RealNetworks Public
  8.  * Source License (the "RPSL") available at
  9.  * http://www.helixcommunity.org/content/rpsl unless you have licensed
  10.  * the file under the current version of the RealNetworks Community
  11.  * Source License (the "RCSL") available at
  12.  * http://www.helixcommunity.org/content/rcsl, in which case the RCSL
  13.  * will apply. You may also obtain the license terms directly from
  14.  * RealNetworks.  You may not use this file except in compliance with
  15.  * the RPSL or, if you have a valid RCSL with RealNetworks applicable
  16.  * to this file, the RCSL.  Please see the applicable RPSL or RCSL for
  17.  * the rights, obligations and limitations governing use of the
  18.  * contents of the file.
  19.  * 
  20.  * Alternatively, the contents of this file may be used under the
  21.  * terms of the GNU General Public License Version 2 or later (the
  22.  * "GPL") in which case the provisions of the GPL are applicable
  23.  * instead of those above. If you wish to allow use of your version of
  24.  * this file only under the terms of the GPL, and not to allow others
  25.  * to use your version of this file under the terms of either the RPSL
  26.  * or RCSL, indicate your decision by deleting the provisions above
  27.  * and replace them with the notice and other provisions required by
  28.  * the GPL. If you do not delete the provisions above, a recipient may
  29.  * use your version of this file under the terms of any one of the
  30.  * RPSL, the RCSL or the GPL.
  31.  * 
  32.  * This file is part of the Helix DNA Technology. RealNetworks is the
  33.  * developer of the Original Code and owns the copyrights in the
  34.  * portions it created.
  35.  * 
  36.  * This file, and the files included with this file, is distributed
  37.  * and made available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY
  38.  * KIND, EITHER EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS
  39.  * ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES
  40.  * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET
  41.  * ENJOYMENT OR NON-INFRINGEMENT.
  42.  * 
  43.  * Technology Compatibility Kit Test Suite(s) Location:
  44.  *    http://www.helixcommunity.org/content/tck
  45.  * 
  46.  * Contributor(s):
  47.  * 
  48.  * ***** END LICENSE BLOCK ***** */
  49. #ifndef __COLORMAP_H__
  50. #define __COLORMAP_H__   1
  51. #ifdef __cplusplus
  52. extern "C" {
  53. #endif
  54.     
  55. #include "ciddefs.h"
  56. // this is needed here primarily for UNIX where mmioFOURCC is not present
  57. // this is also defined in /src/comlib/win/ddraw.h - which is also not
  58. // used with UNIXes
  59. #ifndef MAKEFOURCC
  60. #define MAKEFOURCC(ch0, ch1, ch2, ch3)                              
  61.                 ((ULONG32)(BYTE)(ch0) | ((ULONG32)(BYTE)(ch1) << 8) |   
  62.                 ((ULONG32)(BYTE)(ch2) << 16) | ((ULONG32)(BYTE)(ch3) << 24 ))
  63. #endif //defined(MAKEFOURCC)
  64. /*
  65.  * Some useful format-classification macros:
  66.  */
  67. #define IsGDI(cid)          ((cid) >= CID_RGB32 && (cid) <= CID_RGB8)
  68. #define IsPalettized(cid)   ((cid) == CID_RGB8)
  69. #define IsRGB(cid)          (((cid) >= CID_RGB32 && (cid) <= CID_RGB8) || ((cid) >= CID_BGR32 && (cid) <= CID_RGB444) || ((cid)==CID_ARGB32) )
  70. #define IsYUV(cid)          ((cid)==CID_YUVA || (cid) == CID_XING || (cid) == CID_DVPF || ((cid) >= CID_I420 && (cid) <= CID_UYVY))
  71. #define IsYUVPlanar(cid)    ( (cid)==CID_YUVA || (cid)==CID_XING || ((cid) >= CID_I420 && (cid) <= CID_YVU9))
  72. #define IsYUVPacked(cid)    ((cid) >= CID_YUY2 && (cid) <= CID_UYVY)
  73. #define IsMotionComp(cid)   ((cid) >= CID_MC12 && (cid) <= CID_IGOR)
  74. #define IsHWPostfilter(cid) ((cid) == CID_DVPF)
  75. #define IsStructured(cid)   ((cid) >= CID_MC12 && (cid) <= CID_DVPF)
  76. /*
  77.  * Get color format ID.
  78.  * Use:
  79.  *  int GetBitmapColor (LPBITMAPINFO lpbi);
  80.  *  int GetDirectDrawColor (LPDDPIXELFORMAT lpddpf);
  81.  * Input:
  82.  *  lpbi - pointer to BITMAPINFO structure containing image format
  83.  *  lpddpf - pointer to a DirectDraw DDPIXELFORMAT structure
  84.  * Returns:
  85.  *  ID of the specified format, if found;
  86.  *  CID_UNKNOWN, if not supported.
  87.  */
  88. #ifdef _WIN32
  89.     int GetBitmapColor (LPBITMAPINFO lpbi);
  90. #if !defined(WIN32_PLATFORM_PSPC)
  91.     int GetDirectDrawColor (LPDDPIXELFORMAT lpddpf);
  92. #endif /* !defined(WIN32_PLATFORM_PSPC) */
  93. #else
  94.     int GetBitmapColor (HXBitmapInfo* lpbi);
  95. #endif
  96. /*
  97.  * Set color format.
  98.  * Use:
  99.  *  int SetBitmapColor (LPBITMAPINFO lpbi, int cid);
  100.  *  int SetDirectDrawColor (LPDDPIXELFORMAT lpddpf, int cid);
  101.  * Input:
  102.  *  lpbi - pointer to BITMAPINFO structure containing image format
  103.  *  lpddpf - pointer to a DirectDraw DDPIXELFORMAT structure
  104.  *  cid - color format to set
  105.  * Returns:
  106.  *  0, if success,
  107.  *  !0 if wrong color format ID passed
  108.  */
  109. #ifdef _WIN32
  110. int SetBitmapColor (LPBITMAPINFO lpbi, int cid);
  111. #if !defined(WIN32_PLATFORM_PSPC)
  112. int SetDirectDrawColor (LPDDPIXELFORMAT lpddpf, int cid);
  113. #endif /* !defined(WIN32_PLATFORM_PSPC) */
  114. #else
  115. int SetBitmapColor (HXBitmapInfo* lpbi, int cid);
  116. #endif
  117. /*
  118.  * Get pitch of the bitmap image.
  119.  * Use:
  120.  *  int GetBitmapPitch (LPBITMAPINFO lpbi);
  121.  * Input:
  122.  *  lpbi - pointer to BITMAPINFO structure containing image format
  123.  * Returns:
  124.  *  !0 -- pitch of the bitmap image; <0 if bottom-up bitmap
  125.  *  0 - unrecognized bitmap format
  126.  */
  127. #ifdef _WIN32    
  128. int GetBitmapPitch (LPBITMAPINFO lpbi);
  129. #else    
  130. int GetBitmapPitch (HXBitmapInfo* lpbi);
  131. #endif
  132.     
  133. /*
  134.  * Get size of the bitmap image.
  135.  * Use:
  136.  *  int GetBitmapImageSize (LPBITMAPINFO lpbi);
  137.  * Input:
  138.  *  lpbi - pointer to BITMAPINFO structure containing image format
  139.  * Returns:
  140.  *  !0 -- size of the bitmap image
  141.  *  0 - unrecognized bitmap format
  142.  */
  143. #ifdef _WIN32    
  144. int GetBitmapImageSize (LPBITMAPINFO lpbi);
  145. #else    
  146. int GetBitmapImageSize (HXBitmapInfo* lpbi);
  147. #endif
  148. #ifdef _WIN32   
  149. int MakeBitmap (LPBITMAPINFO lpbi, int nBISize,
  150.     int cid, ULONG32 dwWidth, ULONG32 dwHeight, LPPALETTEENTRY lppe, int nColors);
  151. #else
  152. int MakeBitmap( HXBitmapInfo* lpbi, int nBISize, int cid,
  153.                 ULONG32 dwWidth, ULONG32 dwHeight, void* lppe, int nColors);
  154. #endif   
  155. /*
  156.  * Maps a FourCC to CID don't use this for RGB values.
  157.  * Use:
  158.  *  int MapFourCCtoCID (ULONG32 dwFourCC);
  159.  * Input:
  160.  *  dwFourCC - teh fourCC you want to map to a CID
  161.  * Returns:
  162.  *  teh CID, if found
  163.  */
  164. int MapFourCCtoCID(ULONG32 dwFourCC);
  165. /*
  166.  * Maps a CID to a FourCC
  167.  * Use:
  168.  *  int MapCIDtoFourCC (ULONG32 CID);
  169.  * Returns:
  170.  *  the FourCC, if found
  171.  *  else 0.
  172.  */
  173. int MapCIDtoFourCC(ULONG32 CID);
  174. #ifdef _WIN32
  175. /*
  176.  * Get bitmap palette.
  177.  * Use:
  178.  *  int GetBitmapPalette (LPBITMAPINFO lpbi, LPPALETTEENTRY lppe);
  179.  * Input:
  180.  *  lpbi - pointer to BITMAPINFO structure
  181.  *  lppe - pointer to a buffer to contain palette entries
  182.  * Returns:
  183.  *  the number of colors in palette
  184.  *  0, if bitmap does not use palette.
  185.  */
  186. int GetBitmapPalette (LPBITMAPINFO lpbi, LPPALETTEENTRY lppe);
  187. /*
  188.  * Set bitmap palette.
  189.  * Use:
  190.  *  int SetBitmapPalette (LPBITMAPINFO lpbi, LPPALETTEENTRY lppe, int n);
  191.  * Input:
  192.  *  lpbi - pointer to BITMAPINFO structure
  193.  *  lppe - pointer to a buffer containing palette entries
  194.  *  n    - the total number of colors in palette
  195.  * Returns:
  196.  *  the number of colors set
  197.  *  0, if bitmap does not use palette.
  198.  */
  199. int SetBitmapPalette (LPBITMAPINFO lpbi, LPPALETTEENTRY lppe, int n);
  200. /*
  201.  * Check the validity of a bitmap structure.
  202.  * Use:
  203.  *  int CheckBitmap (LPBITMAPINFO lpbi);
  204.  * Input:
  205.  *  lpbi - pointer to BITMAPINFO structure to check
  206.  * Returns:
  207.  *  !0 - bitmap parameters are correct
  208.  *  0 - otherwise
  209.  */
  210. int CheckBitmap (LPBITMAPINFO lpbi);
  211. #endif // _WIN32
  212. #ifdef __cplusplus
  213. }
  214. #endif
  215. #endif /* __COLORMAP_H__ */