2 #ifndef __WIN32K_BITMAPS_H
3 #define __WIN32K_BITMAPS_H
6 #include <win32k/gdiobj.h>
8 typedef struct _DDBITMAP
10 const PDRIVER_FUNCTIONS pDriverFunctions
;
15 /* GDI logical bitmap object */
16 typedef struct _BITMAPOBJ
20 SIZE size
; /* For SetBitmapDimension() */
24 /* For device-independent bitmaps: */
26 } BITMAPOBJ
, *PBITMAPOBJ
;
28 /* Internal interface */
30 #define BITMAPOBJ_AllocBitmap() \
31 ((PBITMAPOBJ) GDIOBJ_AllocObject(sizeof(BITMAPOBJ), GO_BITMAP_MAGIC))
32 #define BITMAPOBJ_FreeBitmap(hBMObj) GDIOBJ_FreeObject((HGDIOBJ)hBMObj)
33 #define BITMAPOBJ_HandleToPtr(hBMObj) \
34 ((PBITMAPOBJ) GDIOBJ_HandleToPtr((HGDIOBJ)hBMObj, GO_BITMAP_MAGIC))
35 #define BITMAPOBJ_PtrToHandle(hBMObj) \
36 ((HBITMAP) GDIOBJ_HandleToPtr((PGDIOBJ)hBMObj, GO_BITMAP_MAGIC))
37 #define BITMAPOBJ_LockBitmap(hBMObj) GDIOBJ_LockObject((HGDIOBJ)hBMObj)
38 #define BITMAPOBJ_UnlockBitmap(hBMObj) GDIOBJ_UnlockObject((HGDIOBJ)hBMObj)
40 INT
BITMAP_GetWidthBytes (INT bmWidth
, INT bpp
);
42 /* User Entry Points */
43 BOOL
W32kBitBlt(HDC hDCDest
,
52 HBITMAP
W32kCreateBitmap(INT Width
,
57 HBITMAP
W32kCreateCompatibleBitmap(HDC hDC
,
60 HBITMAP
W32kCreateBitmapIndirect(CONST BITMAP
*BM
);
61 HBITMAP
W32kCreateDIBitmap(HDC hDC
,
62 CONST BITMAPINFOHEADER
*bmih
,
65 CONST BITMAPINFO
*bmi
,
67 HBITMAP
W32kCreateDIBSection(HDC hDC
,
68 CONST BITMAPINFO
*bmi
,
73 HBITMAP
W32kCreateDiscardableBitmap(HDC hDC
,
76 BOOL
W32kExtFloodFill(HDC hDC
,
81 BOOL
W32kFloodFill(HDC hDC
,
85 LONG
W32kGetBitmapBits(HBITMAP hBitmap
,
88 BOOL
W32kGetBitmapDimensionEx(HBITMAP hBitmap
,
90 UINT
W32kGetDIBColorTable(HDC hDC
,
94 INT
W32kGetDIBits(HDC hDC
,
101 COLORREF
W32kGetPixel(HDC hDC
,
104 BOOL
W32kMaskBlt(HDC hDCDest
,
116 BOOL
W32kPlgBlt(HDC hDCDest
,
126 LONG
W32kSetBitmapBits(HBITMAP hBitmap
,
129 BOOL
W32kSetBitmapDimensionEx(HBITMAP hBitmap
,
133 UINT
W32kSetDIBColorTable(HDC hDC
,
136 CONST RGBQUAD
*Colors
);
137 INT
W32kSetDIBits(HDC hDC
,
142 CONST BITMAPINFO
*bmi
,
144 INT
W32kSetDIBitsToDevice(HDC hDC
,
154 CONST BITMAPINFO
*bmi
,
156 COLORREF
W32kSetPixel(HDC hDC
,
160 BOOL
W32kSetPixelV(HDC hDC
,
164 BOOL
W32kStretchBlt(HDC hDCDest
,
175 INT
W32kStretchDIBits(HDC hDC
,
185 CONST BITMAPINFO
*BitsInfo
,