cdf6c380d0965271e415e8b3d9c5c46ebd3f9e67
[reactos.git] / reactos / include / win32k / bitmaps.h
1
2 #ifndef __WIN32K_BITMAPS_H
3 #define __WIN32K_BITMAPS_H
4
5 #include <win32k/dc.h>
6 #include <win32k/gdiobj.h>
7
8 typedef struct _DDBITMAP
9 {
10 const PDRIVER_FUNCTIONS pDriverFunctions;
11 // DHPDEV PDev;
12 // HSURF Surface;
13 } DDBITMAP;
14
15 /* GDI logical bitmap object */
16 typedef struct _BITMAPOBJ
17 {
18 GDIOBJHDR header;
19 BITMAP bitmap;
20 SIZE size; /* For SetBitmapDimension() */
21
22 DDBITMAP *DDBitmap;
23
24 /* For device-independent bitmaps: */
25 DIBSECTION *dib;
26 } BITMAPOBJ, *PBITMAPOBJ;
27
28 /* Internal interface */
29
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)
39
40 INT BITMAP_GetWidthBytes (INT bmWidth, INT bpp);
41
42 /* User Entry Points */
43 BOOL W32kBitBlt(HDC hDCDest,
44 INT XDest,
45 INT YDest,
46 INT Width,
47 INT Height,
48 HDC hDCSrc,
49 INT XSrc,
50 INT YSrc,
51 DWORD ROP);
52 HBITMAP W32kCreateBitmap(INT Width,
53 INT Height,
54 UINT Planes,
55 UINT BitsPerPel,
56 CONST VOID *Bits);
57 HBITMAP W32kCreateCompatibleBitmap(HDC hDC,
58 INT Width,
59 INT Height);
60 HBITMAP W32kCreateBitmapIndirect(CONST BITMAP *BM);
61 HBITMAP W32kCreateDIBitmap(HDC hDC,
62 CONST BITMAPINFOHEADER *bmih,
63 DWORD Init,
64 CONST VOID *bInit,
65 CONST BITMAPINFO *bmi,
66 UINT Usage);
67 HBITMAP W32kCreateDIBSection(HDC hDC,
68 CONST BITMAPINFO *bmi,
69 UINT Usage,
70 VOID *Bits,
71 HANDLE hSection,
72 DWORD dwOffset);
73 HBITMAP W32kCreateDiscardableBitmap(HDC hDC,
74 INT Width,
75 INT Height);
76 BOOL W32kExtFloodFill(HDC hDC,
77 INT XStart,
78 INT YStart,
79 COLORREF Color,
80 UINT FillType);
81 BOOL W32kFloodFill(HDC hDC,
82 INT XStart,
83 INT YStart,
84 COLORREF Fill);
85 LONG W32kGetBitmapBits(HBITMAP hBitmap,
86 LONG Buffer,
87 LPVOID Bits);
88 BOOL W32kGetBitmapDimensionEx(HBITMAP hBitmap,
89 LPSIZE Dimension);
90 UINT W32kGetDIBColorTable(HDC hDC,
91 UINT StartIndex,
92 UINT Entries,
93 RGBQUAD *Colors);
94 INT W32kGetDIBits(HDC hDC,
95 HBITMAP hBitmap,
96 UINT StartScan,
97 UINT ScanLines,
98 LPVOID Bits,
99 LPBITMAPINFO bi,
100 UINT Usage);
101 COLORREF W32kGetPixel(HDC hDC,
102 INT XPos,
103 INT YPos);
104 BOOL W32kMaskBlt(HDC hDCDest,
105 INT XDest,
106 INT YDest,
107 INT Width,
108 INT Height,
109 HDC hDCSrc,
110 INT XSrc,
111 INT YSrc,
112 HBITMAP hMaskBitmap,
113 INT xMask,
114 INT yMask,
115 DWORD ROP);
116 BOOL W32kPlgBlt(HDC hDCDest,
117 CONST POINT *Point,
118 HDC hDCSrc,
119 INT XSrc,
120 INT YSrc,
121 INT Width,
122 INT Height,
123 HBITMAP hMaskBitmap,
124 INT xMask,
125 INT yMask);
126 LONG W32kSetBitmapBits(HBITMAP hBitmap,
127 DWORD Bytes,
128 CONST VOID *Bits);
129 BOOL W32kSetBitmapDimensionEx(HBITMAP hBitmap,
130 INT Width,
131 INT Height,
132 LPSIZE Size);
133 UINT W32kSetDIBColorTable(HDC hDC,
134 UINT StartIndex,
135 UINT Entries,
136 CONST RGBQUAD *Colors);
137 INT W32kSetDIBits(HDC hDC,
138 HBITMAP hBitmap,
139 UINT StartScan,
140 UINT ScanLines,
141 CONST VOID *Bits,
142 CONST BITMAPINFO *bmi,
143 UINT ColorUse);
144 INT W32kSetDIBitsToDevice(HDC hDC,
145 INT XDest,
146 INT YDest,
147 DWORD Width,
148 DWORD Height,
149 INT XSrc,
150 INT YSrc,
151 UINT StartScan,
152 UINT ScanLines,
153 CONST VOID *Bits,
154 CONST BITMAPINFO *bmi,
155 UINT ColorUse);
156 COLORREF W32kSetPixel(HDC hDC,
157 INT X,
158 INT Y,
159 COLORREF Color);
160 BOOL W32kSetPixelV(HDC hDC,
161 INT X,
162 INT Y,
163 COLORREF Color);
164 BOOL W32kStretchBlt(HDC hDCDest,
165 INT XOriginDest,
166 INT YOriginDest,
167 INT WidthDest,
168 INT HeightDest,
169 HDC hDCSrc,
170 INT XOriginSrc,
171 INT YOriginSrc,
172 INT WidthSrc,
173 INT HeightSrc,
174 DWORD ROP);
175 INT W32kStretchDIBits(HDC hDC,
176 INT XDest,
177 INT YDest,
178 INT DestWidth,
179 INT DestHeight,
180 INT XSrc,
181 INT YSrc,
182 INT SrcWidth,
183 INT SrcHeight,
184 CONST VOID *Bits,
185 CONST BITMAPINFO *BitsInfo,
186 UINT Usage,
187 DWORD ROP);
188
189
190 #endif
191