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