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: */
26 } BITMAPOBJ, *PBITMAPOBJ;
28 /* Internal interface */
30 #define BITMAPOBJ_AllocBitmap() \
31 ((HBITMAP) GDIOBJ_AllocObj (sizeof (BITMAPOBJ), GDI_OBJECT_TYPE_BITMAP, (GDICLEANUPPROC) Bitmap_InternalDelete))
32 #define BITMAPOBJ_FreeBitmap(hBMObj) \
33 GDIOBJ_FreeObj((HGDIOBJ) hBMObj, GDI_OBJECT_TYPE_BITMAP, GDIOBJFLAG_DEFAULT)
34 #define BITMAPOBJ_LockBitmap(hBMObj) GDIOBJ_LockObj((HGDIOBJ) hBMObj, GDI_OBJECT_TYPE_BITMAP)
35 #define BITMAPOBJ_UnlockBitmap(hBMObj) GDIOBJ_UnlockObj((HGDIOBJ) hBMObj, GDI_OBJECT_TYPE_BITMAP)
37 INT FASTCALL BITMAPOBJ_GetWidthBytes (INT bmWidth, INT bpp);
38 HBITMAP FASTCALL BITMAPOBJ_CopyBitmap (HBITMAP hBitmap);
39 INT FASTCALL DIB_GetDIBWidthBytes (INT width, INT depth);
40 int STDCALL DIB_GetDIBImageBytes (INT width, INT height, INT depth);
41 INT FASTCALL DIB_BitmapInfoSize (const BITMAPINFO * info, WORD coloruse);
42 INT STDCALL BITMAP_GetObject(BITMAPOBJ * bmp, INT count, LPVOID buffer);
43 BOOL FASTCALL Bitmap_InternalDelete( PBITMAPOBJ pBmp );
44 HBITMAP FASTCALL BitmapToSurf(PBITMAPOBJ BitmapObj);
46 /* User Entry Points */
71 NtGdiCreateCompatibleBitmap (
78 NtGdiCreateBitmapIndirect (
85 CONST BITMAPINFOHEADER * bmih,
88 CONST BITMAPINFO * bmi,
93 NtGdiCreateDIBSection (
95 CONST BITMAPINFO * bmi,
103 NtGdiCreateDiscardableBitmap (
134 NtGdiGetBitmapDimensionEx (
140 NtGdiGetDIBColorTable (
203 NtGdiSetBitmapDimensionEx (
211 NtGdiSetDIBColorTable (
215 CONST RGBQUAD * Colors
225 CONST BITMAPINFO * bmi,
230 NtGdiSetDIBitsToDevice (
241 CONST BITMAPINFO * bmi,
288 CONST BITMAPINFO * BitsInfo,