1 #ifndef WIN32K_NTGDI_BAD_INCLUDED 2 #define WIN32K_NTGDI_BAD_INCLUDED 3 4 /* 5 * 6 * If you want to help, please read this: 7 * 8 * This file contains NtGdi APIs which are specific to ROS, including 9 * a short comment describing the solution on how to use the actual NtGdi 10 * call documented in ntgdi.h. Here are the main cases and information on 11 * how to remove them from this header. 12 * 13 * - Simple rename. This deals with an API simply having a different name, 14 * with absolutely no other changes needed. 15 * - Rename and new parameters. This deals with a case similar to the one 16 * above, except that new parameters have now 17 * been added. This is also usually extremly 18 * simple to fix. Either pass the right params 19 * or pass null/0 values that you ignore. 20 * - Rename and new structure. This is similar to the above, except that the 21 * information is now passed in a differently 22 * named and organized structure. Ask Alex for 23 * the structure you need and he will add it to 24 * ntgdityp.h 25 * - Rename and different semantics. Similar to the previous examples, except 26 * that parameters have usually been removed 27 * or need to be converted in user-mode in 28 * one form of another. 29 * - Does not exist: user-mode. This means that the API can be fully done in 30 * user mode. In 80% of cases, our API was already 31 * returning NOT_IMPLEMENTED in kernel-mode, so 32 * the work to be done is minimal. A good example 33 * are the ICM and Metafile APIs, which can simply 34 * be removed and added into gdi32. 35 * - Does not exist: GDI Shared Objects. This is by far the hardest case. This 36 * class cannot be fixed until ReactOS 37 * has a working Shared GDI Object table 38 * and a DC_ATTR structure in which the 39 * attributes, selection and deletion of 40 * objects can be quickly done from user- 41 * mode without requiring a kernel mode 42 * call. 43 */ 44 /* Should be using ENUMFONTDATAW */ 45 typedef struct tagFONTFAMILYINFO 46 { 47 ENUMLOGFONTEXW EnumLogFontEx; 48 NEWTEXTMETRICEXW NewTextMetricEx; 49 DWORD FontType; 50 } FONTFAMILYINFO, *PFONTFAMILYINFO; 51 52 /* Should be using NtGdiEnumFontChunk */ 53 LONG 54 NTAPI 55 NtGdiGetFontFamilyInfo( 56 HDC Dc, 57 const LOGFONTW *LogFont, 58 PFONTFAMILYINFO Info, 59 LPLONG UnsafeInfoCount); 60 61 /* Use NtGdiGetDCPoint with GdiGetViewPortExt */ 62 BOOL APIENTRY NtGdiGetViewportExtEx(HDC hDC, LPSIZE viewportExt); 63 64 /* Needs to be done in user-mode. */ 65 BOOL APIENTRY NtGdiGetViewportOrgEx(HDC hDC, LPPOINT viewportOrg); 66 67 /* Needs to be done in user-mode. */ 68 BOOL APIENTRY NtGdiGetWindowExtEx(HDC hDC, LPSIZE windowExt); 69 70 /* Needs to be done in user-mode. */ 71 BOOL APIENTRY NtGdiGetWindowOrgEx(HDC hDC, LPPOINT windowOrg); 72 73 /* Needs to be done in user-mode. */ 74 BOOL 75 APIENTRY 76 NtGdiOffsetViewportOrgEx ( 77 HDC hDC, 78 int XOffset, 79 int YOffset, 80 LPPOINT Point 81 ); 82 83 /* Needs to be done in user-mode. */ 84 BOOL 85 APIENTRY 86 NtGdiOffsetWindowOrgEx ( 87 HDC hDC, 88 int XOffset, 89 int YOffset, 90 LPPOINT Point 91 ); 92 93 /* Needs to be done in user-mode. */ 94 BOOL 95 APIENTRY 96 NtGdiSetViewportOrgEx ( 97 HDC hDC, 98 int X, 99 int Y, 100 LPPOINT Point 101 ); 102 103 /* Needs to be done in user-mode. */ 104 BOOL 105 APIENTRY 106 NtGdiSetWindowOrgEx ( 107 HDC hDC, 108 int X, 109 int Y, 110 LPPOINT Point 111 ); 112 113 #endif /* WIN32K_NTGDI_BAD_INCLUDED */ 114 115 116 /* Follow thing need be rewriten 117 * 118 * Opengl icd are complete hacked in reactos and are using own way, this need be rewriten and be setup with the correct syscall 119 * and the opengl32 shall using correct syscall to optain then driver interface or using the correct version in gdi32. 120 * it mean whole icd are hacked in frist place and need be rewtiten from scrash. and it need enum the opengl correct way and 121 * export the driver correct 122 * 123 * DirectX aka ReactX alot api that have been implement in reactos win32k for ReactX shall move to a file call dxg.sys 124 * there from it will really doing the stuff. And we should setup loading of dxg.sys 125 * 126 * The Init of Gdi subsystem shall move into NtGdiInit() 127 * 128 * The Init of spooler are done in NtGdiInitSpool() 129 * 130 * The Init of the User subsystem shall move into NtUserInit() 131 */ 132