xref: /reactos/win32ss/gdi/ntgdi/intgdi.h (revision 40462c92)
1 #pragma once
2 
3 /* Convert WIN32 ROP into an ENG ROP */
4 #define WIN32_ROP3_TO_ENG_ROP4(dwRop4) ((((dwRop4) & 0x00FF0000) >> 16) | (((dwRop4) & 0x00FF0000) >> 8))
5 #define WIN32_ROP4_TO_ENG_ROP4(dwRop4) ((dwRop4) >> 16)
6 
7 #define WIN32_ROP4_USES_SOURCE(Rop)  ((((Rop) & 0xCCCC0000) >> 2) != ((Rop) & 0x33330000))
8 
9 /* The range of valid ROP2 values is 1 .. 16 */
10 #define FIXUP_ROP2(rop2) ((((rop2) - 1) & 0xF) + 1)
11 
12 /* Brush functions */
13 
14 extern HDC hSystemBM;
15 extern HSEMAPHORE hsemDriverMgmt;
16 
17 /* Line functions */
18 
19 BOOL FASTCALL
20 IntGdiLineTo(DC  *dc,
21              int XEnd,
22              int YEnd);
23 
24 BOOL FASTCALL
25 IntGdiMoveToEx(DC      *dc,
26                int     X,
27                int     Y,
28                LPPOINT Point);
29 
30 BOOL FASTCALL
31 IntGdiPolyBezier(DC      *dc,
32                  LPPOINT pt,
33                  DWORD   Count);
34 
35 BOOL FASTCALL
36 IntGdiPolyline(DC      *dc,
37                LPPOINT pt,
38                int     Count);
39 
40 BOOL FASTCALL
41 IntGdiPolyBezierTo(DC      *dc,
42                    LPPOINT pt,
43                    DWORD   Count);
44 
45 BOOL FASTCALL
46 IntGdiPolyPolyline(DC      *dc,
47                    LPPOINT pt,
48                    PULONG PolyPoints,
49                    DWORD   Count);
50 
51 BOOL FASTCALL
52 IntGdiPolylineTo(DC      *dc,
53                  LPPOINT pt,
54                  DWORD   Count);
55 
56 BOOL FASTCALL
57 GreMoveTo( HDC hdc,
58            INT x,
59            INT y,
60            LPPOINT pptOut);
61 
62 /* Shape functions */
63 
64 BOOL
65 NTAPI
66 GreGradientFill(
67     HDC hdc,
68     PTRIVERTEX pVertex,
69     ULONG nVertex,
70     PVOID pMesh,
71     ULONG nMesh,
72     ULONG ulMode);
73 
74 /* DC functions */
75 
76 HDC FASTCALL
77 IntGdiCreateDC(PUNICODE_STRING Driver,
78                PUNICODE_STRING Device,
79                PVOID pUMdhpdev,
80                CONST PDEVMODEW InitData,
81                BOOL CreateAsIC);
82 
83 /* Stock objects */
84 
85 VOID FASTCALL
86 IntSetSysColors(UINT nColors, CONST INT *Elements, CONST COLORREF *Colors);
87 
88 HGDIOBJ FASTCALL
89 IntGetSysColorBrush(INT Object);
90 
91 DWORD FASTCALL
92 IntGetSysColor(INT nIndex);
93 
94 /* Other Stuff */
95 
96 NTSTATUS
97 APIENTRY
98 NtGdiFlushUserBatch(
99     VOID);
100 
101 DWORD
102 APIENTRY
103 NtDxEngGetRedirectionBitmap(
104     DWORD Unknown0);
105 
106 HBITMAP
107 FASTCALL
108 IntCreateCompatibleBitmap(
109     _In_ PDC Dc,
110     _In_ INT Width,
111     _In_ INT Height,
112     _In_ UINT Bpp,
113     _In_ UINT Planes);
114 
115 WORD APIENTRY IntGdiSetHookFlags(HDC hDC, WORD Flags);
116 
117 UINT APIENTRY IntSetDIBColorTable(HDC hDC, UINT StartIndex, UINT Entries, CONST RGBQUAD *Colors);
118 
119 UINT APIENTRY IntGetDIBColorTable(HDC hDC, UINT StartIndex, UINT Entries, RGBQUAD *Colors);
120 
121 UINT APIENTRY
122 IntGetPaletteEntries(HPALETTE  hpal,
123                      UINT  StartIndex,
124                      UINT  Entries,
125                      LPPALETTEENTRY  pe);
126 
127 UINT APIENTRY
128 IntGetSystemPaletteEntries(HDC  hDC,
129                            UINT  StartIndex,
130                            UINT  Entries,
131                            LPPALETTEENTRY  pe);
132 
133 VOID  FASTCALL CreateStockObjects (VOID);
134 VOID  FASTCALL CreateSysColorObjects (VOID);
135 
136 PPOINT GDI_Bezier (const POINT *Points, INT count, PINT nPtsOut);
137 
138 BOOL FASTCALL IntFillArc( PDC dc, INT XLeft, INT YLeft, INT Width, INT Height, double StartArc, double EndArc, ARCTYPE arctype);
139 BOOL FASTCALL IntDrawArc( PDC dc, INT XLeft, INT YLeft, INT Width, INT Height, double StartArc, double EndArc, ARCTYPE arctype, PBRUSH pbrush);
140 
141 BOOL FASTCALL IntFillEllipse( PDC dc, INT XLeft, INT YLeft, INT Width, INT Height, PBRUSH pbrush);
142 BOOL FASTCALL IntDrawEllipse( PDC dc, INT XLeft, INT YLeft, INT Width, INT Height, PBRUSH pbrush);
143 BOOL FASTCALL IntFillRoundRect( PDC dc, INT Left, INT Top, INT Right, INT Bottom, INT Wellipse, INT Hellipse, PBRUSH pbrush);
144 BOOL FASTCALL IntDrawRoundRect( PDC dc, INT Left, INT Top, INT Right, INT Bottom, INT Wellipse, INT Hellipse, PBRUSH pbrush);
145