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