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