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
19 SIZE size
; /* For SetBitmapDimension() */
23 /* For device-independent bitmaps: */
25 } BITMAPOBJ
, *PBITMAPOBJ
;
27 /* Internal interface */
29 #define BITMAPOBJ_AllocBitmap() \
30 ((PBITMAPOBJ) GDIOBJ_AllocObject (sizeof (BITMAPOBJ), GO_BITMAP_MAGIC))
31 #define BITMAPOBJ_FreeBitmap(hBMObj) GDIOBJ_FreeObject((HGDIOBJ) hBMObj)
32 #define BITMAPOBJ_HandleToPtr(hBMObj) \
33 ((PBITMAPOBJ) GDIOBJ_HandleToPtr ((HGDIOBJ) hBMObj, GO_BITMAP_MAGIC))
34 #define BITMAPOBJ_PtrToHandle(hBMObj) \
35 ((HBITMAP) GDIOBJ_PtrToHandle ((PGDIOBJ) hBMObj, GO_BITMAP_MAGIC))
36 #define BITMAPOBJ_LockBitmap(hBMObj) GDIOBJ_LockObject ((HGDIOBJ) hBMObj)
37 #define BITMAPOBJ_UnlockBitmap(hBMObj) GDIOBJ_UnlockObject ((HGDIOBJ) hBMObj)
39 INT
BITMAPOBJ_GetWidthBytes (INT bmWidth
, INT bpp
);
40 HBITMAP
BITMAPOBJ_CopyBitmap (HBITMAP hBitmap
);
41 int DIB_GetDIBWidthBytes (int width
, int depth
);
42 int DIB_GetDIBImageBytes (int width
, int height
, int depth
);
43 int DIB_BitmapInfoSize (const BITMAPINFO
* info
, WORD coloruse
);
45 /* User Entry Points */
46 BOOL
W32kBitBlt(HDC hDCDest
,
55 HBITMAP
W32kCreateBitmap(INT Width
,
60 HBITMAP
W32kCreateCompatibleBitmap(HDC hDC
,
63 HBITMAP
W32kCreateBitmapIndirect(CONST BITMAP
*BM
);
64 HBITMAP
W32kCreateDIBitmap(HDC hDC
,
65 CONST BITMAPINFOHEADER
*bmih
,
68 CONST BITMAPINFO
*bmi
,
70 HBITMAP
W32kCreateDIBSection(HDC hDC
,
71 CONST BITMAPINFO
*bmi
,
76 HBITMAP
W32kCreateDiscardableBitmap(HDC hDC
,
79 BOOL
W32kExtFloodFill(HDC hDC
,
84 BOOL
W32kFloodFill(HDC hDC
,
88 LONG
W32kGetBitmapBits(HBITMAP hBitmap
,
91 BOOL
W32kGetBitmapDimensionEx(HBITMAP hBitmap
,
93 UINT
W32kGetDIBColorTable(HDC hDC
,
97 INT
W32kGetDIBits(HDC hDC
,
104 COLORREF
W32kGetPixel(HDC hDC
,
107 BOOL
W32kMaskBlt(HDC hDCDest
,
119 BOOL
W32kPlgBlt(HDC hDCDest
,
129 LONG
W32kSetBitmapBits(HBITMAP hBitmap
,
132 BOOL
W32kSetBitmapDimensionEx(HBITMAP hBitmap
,
136 UINT
W32kSetDIBColorTable(HDC hDC
,
139 CONST RGBQUAD
*Colors
);
140 INT
W32kSetDIBits(HDC hDC
,
145 CONST BITMAPINFO
*bmi
,
147 INT
W32kSetDIBitsToDevice(HDC hDC
,
157 CONST BITMAPINFO
*bmi
,
159 COLORREF
W32kSetPixel(HDC hDC
,
163 BOOL
W32kSetPixelV(HDC hDC
,
167 BOOL
W32kStretchBlt(HDC hDCDest
,
178 INT
W32kStretchDIBits(HDC hDC
,
188 CONST BITMAPINFO
*BitsInfo
,