00001 #ifndef WINGDC_IMPLEMENTATION_FILE
00002 #define WINGDC_IMPLEMENTATION_FILE
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #include "wingdc.h"
00018
00019 #ifdef __WIN32__
00020 WinGDC::WinGDC() { m_hDC = CreateCompatibleDC(GetDC(NIL)); }
00021
00022 WinGDC::~WinGDC() { ::DeleteDC(m_hDC); }
00023
00024 HBITMAP WinGDC::WinGCreateBitmap(BITMAPINFO far *pHeader, void far *far *ppBits)
00025 { return CreateDIBSection(m_hDC, pHeader, DIB_RGB_COLORS, ppBits, NIL, 0); }
00026
00027 u_int WinGDC::WinGGetDIBColorTable(u_int nStartIndex, u_int nNumberOfEntries,
00028 RGBQUAD far *pBuffer)
00029 { return ::GetDIBColorTable(m_hDC, nStartIndex, nNumberOfEntries, pBuffer); }
00030
00031 u_int WinGDC::WinGSetDIBColorTable(u_int nStartIndex, u_int nNumberOfEntries,
00032 RGBQUAD far *pBuffer)
00033 { return ::SetDIBColorTable(m_hDC, nStartIndex, nNumberOfEntries, pBuffer); }
00034
00035 bool WinGDC::WinGBitBlt(HDC hdcDest, int nXOriginDest, int nYOriginDest,
00036 int nWidthDest, int nHeightDest, int nXOriginSrc, int nYOriginSrc)
00037 {
00038 return ::BitBlt(hdcDest, nXOriginDest, nYOriginDest, nWidthDest,
00039 nHeightDest, m_hDC, nXOriginSrc, nYOriginSrc, SRCCOPY);
00040 }
00041
00042 bool WinGDC::WinGStretchBlt(HDC hdcDest, int nXOriginDest, int nYOriginDest,
00043 int nWidthDest, int nHeightDest, int nXOriginSrc, int nYOriginSrc,
00044 int nWidthSrc, int nHeightSrc)
00045 {
00046 return ::StretchBlt(hdcDest, nXOriginDest, nYOriginDest, nWidthDest,
00047 nHeightDest, (HDC)m_hDC, nXOriginSrc, nYOriginSrc, nWidthSrc, nHeightSrc,
00048 SRCCOPY);
00049 }
00050
00051 bool WinGDC::WinGRecommendDIBFormat(BITMAPINFO far *pHeader)
00052 {
00053 pHeader->bmiHeader.biHeight = 1;
00054 pHeader->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
00055 pHeader->bmiHeader.biPlanes = 1;
00056 pHeader->bmiHeader.biBitCount = 8;
00057 pHeader->bmiHeader.biCompression = BI_RGB;
00058 pHeader->bmiHeader.biSizeImage = 0;
00059 pHeader->bmiHeader.biClrUsed = 0;
00060 pHeader->bmiHeader.biClrImportant = 0;
00061 return true;
00062 }
00063 #else
00064
00065 #endif
00066
00067
00068 #endif //WINGDC_IMPLEMENTATION_FILE
00069