DDPalette.h
上传用户:wymy58
上传日期:2007-01-07
资源大小:2086k
文件大小:2k
源码类别:

DirextX编程

开发平台:

Visual C++

  1. // Copyright (C) 1998-1999 DXGuide.  All Rights Reserved.
  2. // File: DDPalette.h
  3. #ifndef _DDPALETTE__H
  4. #define _DDPALETTE__H
  5. #if _MSC_VER >= 1000
  6. #pragma once
  7. #endif // _MSC_VER >= 1000
  8. #include "DDSurface.h"
  9. class CPackFileManager;
  10. class CDDPalette
  11. {
  12. friend class CDDSurface;
  13. public:
  14. CDDPalette(void);
  15. virtual ~CDDPalette();
  16. public:
  17. bool Create(CDDDevice*  pDDDevice, CPalette*  pPalette);
  18. // Initialize the palette from an array of palette entries.
  19. bool Create(CDDDevice*  pDDDevice, DWORD  dwCount,
  20. LPPALETTEENTRY  lpEntries, bool  bAlpha = false);
  21. // Initialize the palette from a bitmap (resource or file).
  22. bool Create(CDDDevice*  pDDDevice, LPCTSTR  pszBitmap,
  23. CPackFileManager*  pPackFileManager = NULL);
  24. protected:
  25. // Create the underlying interface
  26. bool Create(void);
  27. public:
  28. //The palette interface:
  29. HRESULT GetCaps(DWORD&  caps) const;
  30. HRESULT GetEntries(DWORD  dwBase, DWORD  dwEntries,
  31. LPPALETTEENTRY  lpEntries) const;
  32. HRESULT SetEntries(DWORD  dwStartingEntry,
  33. DWORD  dwCount, LPPALETTEENTRY  lpEntries);
  34. HRESULT SetEntry(int  nIndex, BYTE  byteR,
  35. BYTE  byteG, BYTE  byteB);
  36. HRESULT GetEntry(int  nIndex, BYTE&  byteR,
  37. BYTE&  byteG, BYTE&  byteB);
  38. HRESULT FillPalette(BYTE  byteR, BYTE  byteG, BYTE  byteB);
  39. HRESULT GreyScale(void);
  40. HRESULT SpectrumRGBPalette(float  fS, float  fV, int  nSpectLen = 0);
  41. public:
  42. void FadeIn(int  nDelay, LPPALETTEENTRY  lpPE);
  43. void FadeOut(int  nDelay);
  44. void FadeTo(BYTE  byteR, BYTE  byteG, BYTE  byteB, int  nDelay);
  45. #ifdef _DEBUG
  46. void Dump(void);
  47. #endif // _DEBUG
  48. protected:
  49. LPDIRECTDRAWPALETTE m_lpDDPalette;
  50. // Pointer to the default palette entries.
  51. PALETTEENTRY* m_pDefaultEntries;
  52. // The number of entries.
  53. int m_nEntries;
  54. bool m_bAlpha;
  55. CDDDevice* m_pDDDevice;
  56. public:
  57. #ifdef _DEBUG
  58. static ULONG m_ulDDPaletteCounter;
  59. #endif // _DEBUG
  60. };
  61. #endif // _DDPALETTE__H