DrawDib.cpp
上传用户:royluo
上传日期:2007-01-05
资源大小:1584k
文件大小:5k
源码类别:

游戏

开发平台:

Visual C++

  1. /*****************************************************************************
  2. *                                                                             
  3. *   DrawDib.cpp                                                            
  4. *                                                                             
  5. *   Electrical Engineering Faculty - Software Lab                             
  6. *   Spring semester 1998                                                      
  7. *                                                                             
  8. *   Tanks game                                                                
  9. *                                                                             
  10. *   Module description: A C++ wrapper for the DIB functionality.
  11. *                       
  12. *                                                                             
  13. *   Authors: Eran Yariv - 28484475                                           
  14. *            Moshe Zur  - 24070856                                           
  15. *                                                                            
  16. *                                                                            
  17. *   Date: 23/09/98                                                           
  18. *                                                                            
  19. ******************************************************************************/
  20. //////////////////////////////////////////////////////////////////////
  21. //
  22. //  Creator : El Barto (ef00@luc.ac.be)
  23. //  Location : http://www.luc.ac.be/~ef00/ebgfx
  24. //  Date : 09-04-98
  25. //
  26. //////////////////////////////////////////////////////////////////////
  27. #include "stdafx.h"
  28. #include "DrawDib.h"
  29. #ifdef _DEBUG
  30. #undef THIS_FILE
  31. static char THIS_FILE[]=__FILE__;
  32. #define new DEBUG_NEW
  33. #endif
  34. //////////////////////////////////////////////////////////////////////
  35. // Construction/Destruction
  36. //////////////////////////////////////////////////////////////////////
  37. CDrawDib::CDrawDib ()
  38. {
  39.     m_hDrawDib=NULL;
  40. }
  41. CDrawDib::~CDrawDib ()
  42. {
  43.     if ( m_hDrawDib )
  44.         DrawDibClose ( m_hDrawDib );
  45. }
  46. HDRAWDIB CDrawDib::Open ()
  47. {
  48.     return m_hDrawDib=DrawDibOpen(); 
  49. }
  50. BOOL CDrawDib::Close ()
  51. {
  52.     return DrawDibClose ( m_hDrawDib );
  53. }
  54.     
  55. BOOL CDrawDib::Begin ( HDC hdc, int dxDest, int dyDest,
  56.     LPBITMAPINFOHEADER lpbi, int dxSrc, int dySrc, UINT wFlags )
  57. {
  58.     return DrawDibBegin ( m_hDrawDib, hdc, dxDest, dyDest, lpbi, 
  59.         dxSrc, dySrc, wFlags );
  60. }
  61. BOOL CDrawDib::End ()
  62. {
  63.     return DrawDibEnd ( m_hDrawDib );
  64. }
  65. BOOL CDrawDib::Draw ( HDC hdc, int xDst, int yDst,
  66.     int dxDst, int dyDst, LPBITMAPINFOHEADER lpbi, LPVOID lpBits,
  67.     int xSrc, int ySrc, int dxSrc, int dySrc, UINT wFlags )
  68. {
  69.     return DrawDibDraw ( m_hDrawDib, hdc, xDst, yDst, dxDst, dyDst, 
  70.         lpbi, lpBits, xSrc, ySrc, dxSrc, dySrc, wFlags );
  71. }
  72. BOOL CDrawDib::DrawDib ( CDIB *Dib, HDC hdc, 
  73.                          int xDst, int yDst,
  74.                          int dxDst, int dyDst, 
  75.                          int xSrc, int ySrc,
  76.                          int dxSrc, int dySrc,
  77.                          UINT wFlags )
  78. {
  79.     return DrawDibDraw ( m_hDrawDib, hdc, xDst, yDst, dxDst, dyDst, 
  80.         &(Dib->m_pBMI->bmiHeader), Dib->m_pBits, xSrc, ySrc, dxSrc,
  81.         dySrc, wFlags );
  82. }
  83. BOOL CDrawDib::DrawDib ( CDIB *Dib, HDC hdc, int xDst, int yDst,
  84.     int dxDst, int dyDst, UINT wFlags )
  85. {
  86.     return DrawDibDraw ( m_hDrawDib, hdc, xDst, yDst, dxDst, dyDst, 
  87.         &(Dib->m_pBMI->bmiHeader), Dib->m_pBits, 0, 0, Dib->Width(),
  88.         Dib->Height(), wFlags );
  89. }
  90.     
  91. LPVOID CDrawDib::GetBuffer ( LPBITMAPINFOHEADER lpbi,
  92.     DWORD dwSize, DWORD dwFlags )
  93. {
  94.     return DrawDibGetBuffer ( m_hDrawDib, lpbi, dwSize, dwFlags );
  95. }
  96.     
  97. BOOL CDrawDib::ProfileDisplay ( LPBITMAPINFOHEADER lpbi )
  98. {
  99.     return DrawDibProfileDisplay ( lpbi );
  100. }
  101. HPALETTE CDrawDib::GetPalette ()
  102. {
  103.     return DrawDibGetPalette ( m_hDrawDib );
  104. }
  105. BOOL CDrawDib::SetPalette ( HPALETTE hpal )
  106. {
  107.     return DrawDibSetPalette ( m_hDrawDib, hpal );
  108. }
  109. BOOL CDrawDib::ChangePalette (int iStart, int iLen, LPPALETTEENTRY lppe )
  110. {
  111.     return DrawDibChangePalette ( m_hDrawDib, iStart, iLen, lppe );
  112. }
  113. UINT CDrawDib::Realize ( HDC hdc, BOOL fBackground )
  114. {
  115.     return DrawDibRealize ( m_hDrawDib,  hdc,  fBackground );
  116. }
  117.     
  118. BOOL CDrawDib::Start ( LONG rate )
  119. {
  120.     return DrawDibStart ( m_hDrawDib, rate );
  121. }
  122. BOOL CDrawDib::Stop ()
  123. {
  124.     return DrawDibStop ( m_hDrawDib );
  125. }
  126. BOOL CDrawDib::Time ( LPDRAWDIBTIME lpddtime )
  127. {
  128.     return DrawDibTime ( m_hDrawDib, lpddtime );
  129. }