51 lines
1.8 KiB
C
51 lines
1.8 KiB
C
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);
|