|
|
typedef void (FAR PASCAL CONVERTPROC)( LPVOID pd, // --> dst.
LONG dd, // offset to start at
LONG nd, // dst_next_scan.
LONG fd, // dst fill bytes
LPVOID ps, // --> source.
LONG ds, // offset to start at
LONG ns, // src_next_scan.
LONG dx, // pixel count.
LONG dy, // scan count.
LPVOID pc); // pixel convert table.
typedef CONVERTPROC *PCONVERTPROC; typedef BOOL (INITPROC)(struct SETDI *psd); typedef BOOL (FREEPROC)(struct SETDI *psd);
typedef INITPROC *PINITPROC; typedef FREEPROC *PFREEPROC;
typedef struct SETDI { LONG size; // for sanity checks.
HDC hdc; HPALETTE hpal; HBITMAP hbm; UINT DibUsage;
IBITMAP bmDst; IBITMAP bmSrc;
LPVOID color_convert; // dither/color convert table.
PCONVERTPROC convert; // convert function
PINITPROC init; PFREEPROC free; } SETDI, *PSETDI;
BOOL FAR SetBitmapBegin( PSETDI psd, HDC hdc, HBITMAP hbm, // bitmap to set into
LPBITMAPINFOHEADER lpbi, // --> BITMAPINFO of source
UINT DibUsage);
void FAR SetBitmapColorChange(PSETDI psd, HDC hdc, HPALETTE hpal); void FAR SetBitmapEnd(PSETDI psd); BOOL FAR SetBitmap(PSETDI psd, int DstX, int DstY, int DstDX, int DstDY, LPVOID lpBits, int SrcX, int SrcY, int SrcDX, int SrcDY);
BOOL GetPhysDibPaletteMap(HDC hdc, LPBITMAPINFOHEADER lpbi, UINT Usage, LPBYTE pb); BOOL GetDibPaletteMap (HDC hdc, LPBITMAPINFOHEADER lpbi, UINT Usage, LPBYTE pb);
|