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 */
70 W32kCreateCompatibleBitmap (
77 W32kCreateBitmapIndirect (
84 CONST BITMAPINFOHEADER
* bmih
,
87 CONST BITMAPINFO
* bmi
,
92 W32kCreateDIBSection (
94 CONST BITMAPINFO
* bmi
,
102 W32kCreateDiscardableBitmap (
133 W32kGetBitmapDimensionEx (
139 W32kGetDIBColorTable (
202 W32kSetBitmapDimensionEx (
210 W32kSetDIBColorTable (
214 CONST RGBQUAD
* Colors
224 CONST BITMAPINFO
* bmi
,
229 W32kSetDIBitsToDevice (
240 CONST BITMAPINFO
* bmi
,
287 CONST BITMAPINFO
* BitsInfo
,