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), GO_BITMAP_MAGIC))
32 #define BITMAPOBJ_FreeBitmap(hBMObj) \
33 GDIOBJ_FreeObj((HGDIOBJ) hBMObj, GO_BITMAP_MAGIC, GDIOBJFLAG_DEFAULT)
34 #define BITMAPOBJ_HandleToPtr(hBMObj) \
35 ((PBITMAPOBJ) GDIOBJ_LockObj ((HGDIOBJ) hBMObj, GO_BITMAP_MAGIC))
36 #define BITMAPOBJ_ReleasePtr(hBMObj) \
37 GDIOBJ_UnlockObj ((HGDIOBJ) hBMObj, GO_BITMAP_MAGIC)
39 /*#define BITMAPOBJ_PtrToHandle(hBMObj) \
40 ((HBITMAP) GDIOBJ_PtrToHandle ((PGDIOBJ) hBMObj, GO_BITMAP_MAGIC))*/
41 #define BITMAPOBJ_LockBitmap(hBMObj) GDIOBJ_LockObject ((HGDIOBJ) hBMObj)
42 #define BITMAPOBJ_UnlockBitmap(hBMObj) GDIOBJ_UnlockObject ((HGDIOBJ) hBMObj)
44 INT BITMAPOBJ_GetWidthBytes (INT bmWidth, INT bpp);
45 HBITMAP BITMAPOBJ_CopyBitmap (HBITMAP hBitmap);
46 int DIB_GetDIBWidthBytes (int width, int depth);
47 int DIB_GetDIBImageBytes (int width, int height, int depth);
48 int DIB_BitmapInfoSize (const BITMAPINFO * info, WORD coloruse);
49 INT BITMAP_GetObject(BITMAPOBJ * bmp, INT count, LPVOID buffer);
50 BOOL Bitmap_InternalDelete( PBITMAPOBJ pBmp );
51 HBITMAP BitmapToSurf(PBITMAPOBJ BitmapObj);
53 /* User Entry Points */
78 W32kCreateCompatibleBitmap (
85 W32kCreateBitmapIndirect (
92 CONST BITMAPINFOHEADER * bmih,
95 CONST BITMAPINFO * bmi,
100 W32kCreateDIBSection (
102 CONST BITMAPINFO * bmi,
110 W32kCreateDiscardableBitmap (
141 W32kGetBitmapDimensionEx (
147 W32kGetDIBColorTable (
210 W32kSetBitmapDimensionEx (
218 W32kSetDIBColorTable (
222 CONST RGBQUAD * Colors
232 CONST BITMAPINFO * bmi,
237 W32kSetDIBitsToDevice (
248 CONST BITMAPINFO * bmi,
295 CONST BITMAPINFO * BitsInfo,