WIN32K code cleanup.
[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 BITMAP bitmap;
19 SIZE size; /* For SetBitmapDimension() */
20
21 DDBITMAP *DDBitmap;
22
23 /* For device-independent bitmaps: */
24 DIBSECTION *dib;
25 RGBQUAD *ColorMap;
26 } BITMAPOBJ, *PBITMAPOBJ;
27
28 /* Internal interface */
29
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)
38
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)
43
44 INT FASTCALL BITMAPOBJ_GetWidthBytes (INT bmWidth, INT bpp);
45 HBITMAP FASTCALL BITMAPOBJ_CopyBitmap (HBITMAP hBitmap);
46 INT FASTCALL DIB_GetDIBWidthBytes (INT width, INT depth);
47 int STDCALL DIB_GetDIBImageBytes (INT width, INT height, INT depth);
48 int FASTCALL DIB_BitmapInfoSize (const BITMAPINFO * info, WORD coloruse);
49 INT STDCALL BITMAP_GetObject(BITMAPOBJ * bmp, INT count, LPVOID buffer);
50 BOOL FASTCALL Bitmap_InternalDelete( PBITMAPOBJ pBmp );
51 HBITMAP FASTCALL BitmapToSurf(PBITMAPOBJ BitmapObj);
52
53 /* User Entry Points */
54 BOOL
55 STDCALL
56 W32kBitBlt (
57 HDC hDCDest,
58 INT XDest,
59 INT YDest,
60 INT Width,
61 INT Height,
62 HDC hDCSrc,
63 INT XSrc,
64 INT YSrc,
65 DWORD ROP
66 );
67 HBITMAP
68 STDCALL
69 W32kCreateBitmap (
70 INT Width,
71 INT Height,
72 UINT Planes,
73 UINT BitsPerPel,
74 CONST VOID * Bits
75 );
76 HBITMAP
77 STDCALL
78 W32kCreateCompatibleBitmap (
79 HDC hDC,
80 INT Width,
81 INT Height
82 );
83 HBITMAP
84 STDCALL
85 W32kCreateBitmapIndirect (
86 CONST BITMAP * BM
87 );
88 HBITMAP
89 STDCALL
90 W32kCreateDIBitmap (
91 HDC hDC,
92 CONST BITMAPINFOHEADER * bmih,
93 DWORD Init,
94 CONST VOID * bInit,
95 CONST BITMAPINFO * bmi,
96 UINT Usage
97 );
98 HBITMAP
99 STDCALL
100 W32kCreateDIBSection (
101 HDC hDC,
102 CONST BITMAPINFO * bmi,
103 UINT Usage,
104 VOID * Bits,
105 HANDLE hSection,
106 DWORD dwOffset
107 );
108 HBITMAP
109 STDCALL
110 W32kCreateDiscardableBitmap (
111 HDC hDC,
112 INT Width,
113 INT Height
114 );
115 BOOL
116 STDCALL
117 W32kExtFloodFill (
118 HDC hDC,
119 INT XStart,
120 INT YStart,
121 COLORREF Color,
122 UINT FillType
123 );
124 BOOL
125 STDCALL
126 W32kFloodFill (
127 HDC hDC,
128 INT XStart,
129 INT YStart,
130 COLORREF Fill
131 );
132 LONG
133 STDCALL
134 W32kGetBitmapBits (
135 HBITMAP hBitmap,
136 LONG Buffer,
137 LPVOID Bits
138 );
139 BOOL
140 STDCALL
141 W32kGetBitmapDimensionEx (
142 HBITMAP hBitmap,
143 LPSIZE Dimension
144 );
145 UINT
146 STDCALL
147 W32kGetDIBColorTable (
148 HDC hDC,
149 UINT StartIndex,
150 UINT Entries,
151 RGBQUAD * Colors
152 );
153 INT
154 STDCALL
155 W32kGetDIBits (
156 HDC hDC,
157 HBITMAP hBitmap,
158 UINT StartScan,
159 UINT ScanLines,
160 LPVOID Bits,
161 LPBITMAPINFO bi,
162 UINT Usage
163 );
164 COLORREF
165 STDCALL
166 W32kGetPixel (
167 HDC hDC,
168 INT XPos,
169 INT YPos
170 );
171 BOOL
172 STDCALL
173 W32kMaskBlt (
174 HDC hDCDest,
175 INT XDest,
176 INT YDest,
177 INT Width,
178 INT Height,
179 HDC hDCSrc,
180 INT XSrc,
181 INT YSrc,
182 HBITMAP hMaskBitmap,
183 INT xMask,
184 INT yMask,
185 DWORD ROP
186 );
187 BOOL
188 STDCALL
189 W32kPlgBlt (
190 HDC hDCDest,
191 CONST POINT * Point,
192 HDC hDCSrc,
193 INT XSrc,
194 INT YSrc,
195 INT Width,
196 INT Height,
197 HBITMAP hMaskBitmap,
198 INT xMask,
199 INT yMask
200 );
201 LONG
202 STDCALL
203 W32kSetBitmapBits (
204 HBITMAP hBitmap,
205 DWORD Bytes,
206 CONST VOID * Bits
207 );
208 BOOL
209 STDCALL
210 W32kSetBitmapDimensionEx (
211 HBITMAP hBitmap,
212 INT Width,
213 INT Height,
214 LPSIZE Size
215 );
216 UINT
217 STDCALL
218 W32kSetDIBColorTable (
219 HDC hDC,
220 UINT StartIndex,
221 UINT Entries,
222 CONST RGBQUAD * Colors
223 );
224 INT
225 STDCALL
226 W32kSetDIBits (
227 HDC hDC,
228 HBITMAP hBitmap,
229 UINT StartScan,
230 UINT ScanLines,
231 CONST VOID * Bits,
232 CONST BITMAPINFO * bmi,
233 UINT ColorUse
234 );
235 INT
236 STDCALL
237 W32kSetDIBitsToDevice (
238 HDC hDC,
239 INT XDest,
240 INT YDest,
241 DWORD Width,
242 DWORD Height,
243 INT XSrc,
244 INT YSrc,
245 UINT StartScan,
246 UINT ScanLines,
247 CONST VOID * Bits,
248 CONST BITMAPINFO * bmi,
249 UINT ColorUse
250 );
251 COLORREF
252 STDCALL
253 W32kSetPixel (
254 HDC hDC,
255 INT X,
256 INT Y,
257 COLORREF Color
258 );
259 BOOL
260 STDCALL
261 W32kSetPixelV (
262 HDC hDC,
263 INT X,
264 INT Y,
265 COLORREF Color
266 );
267 BOOL
268 STDCALL
269 W32kStretchBlt (
270 HDC hDCDest,
271 INT XOriginDest,
272 INT YOriginDest,
273 INT WidthDest,
274 INT HeightDest,
275 HDC hDCSrc,
276 INT XOriginSrc,
277 INT YOriginSrc,
278 INT WidthSrc,
279 INT HeightSrc,
280 DWORD ROP
281 );
282 INT
283 STDCALL
284 W32kStretchDIBits (
285 HDC hDC,
286 INT XDest,
287 INT YDest,
288 INT DestWidth,
289 INT DestHeight,
290 INT XSrc,
291 INT YSrc,
292 INT SrcWidth,
293 INT SrcHeight,
294 CONST VOID * Bits,
295 CONST BITMAPINFO * BitsInfo,
296 UINT Usage,
297 DWORD ROP
298 );
299 #endif
300