ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

ntgdibad.h
Go to the documentation of this file.
00001 #ifndef WIN32K_NTGDI_BAD_INCLUDED
00002 #define WIN32K_NTGDI_BAD_INCLUDED
00003 
00004 /*
00005  *
00006  * If you want to help, please read this:
00007  *
00008  * This file contains NtGdi APIs which are specific to ROS, including
00009  * a short comment describing the solution on how to use the actual NtGdi
00010  * call documented in ntgdi.h. Here are the main cases and information on
00011  * how to remove them from this header.
00012  *
00013  * - Simple rename. This deals with an API simply having a different name,
00014  *                  with absolutely no other changes needed.
00015  * - Rename and new parameters. This deals with a case similar to the one
00016  *                              above, except that new parameters have now
00017  *                              been added. This is also usually extremly
00018  *                              simple to fix. Either pass the right params
00019  *                              or pass null/0 values that you ignore.
00020  * - Rename and new structure. This is similar to the above, except that the
00021  *                             information is now passed in a differently
00022  *                             named and organized structure. Ask Alex for
00023  *                             the structure you need and he will add it to
00024  *                             ntgdityp.h
00025  * - Rename and different semantics. Similar to the previous examples, except
00026  *                                   that parameters have usually been removed
00027  *                                   or need to be converted in user-mode in
00028  *                                   one form of another.
00029  * - Does not exist: user-mode. This means that the API can be fully done in
00030  *                              user mode. In 80% of cases, our API was already
00031  *                              returning NOT_IMPLEMENTED in kernel-mode, so
00032  *                              the work to be done is minimal. A good example
00033  *                              are the ICM and Metafile APIs, which can simply
00034  *                              be removed and added into gdi32.
00035  * - Does not exist: GDI Shared Objects. This is by far the hardest case. This
00036  *                                       class cannot be fixed until ReactOS
00037  *                                       has a working Shared GDI Object table
00038  *                                       and a DC_ATTR structure in which the
00039  *                                       attributes, selection and deletion of
00040  *                                       objects can be quickly done from user-
00041  *                                       mode without requiring a kernel mode
00042  *                                       call.
00043  */
00044 /* Should be using ENUMFONTDATAW */
00045 typedef struct tagFONTFAMILYINFO
00046 {
00047   ENUMLOGFONTEXW EnumLogFontEx;
00048   NEWTEXTMETRICEXW NewTextMetricEx;
00049   DWORD FontType;
00050 } FONTFAMILYINFO, *PFONTFAMILYINFO;
00051 
00052 /* Should be using NtGdiEnumFontChunk */
00053 INT
00054 NTAPI
00055 NtGdiGetFontFamilyInfo(
00056     HDC Dc,
00057     LPLOGFONTW LogFont,
00058     PFONTFAMILYINFO Info,
00059     DWORD Size
00060 );
00061 
00062 /* Use NtGdiGetDCPoint with GdiGetViewPortExt */
00063 BOOL APIENTRY  NtGdiGetViewportExtEx(HDC  hDC, LPSIZE viewportExt);
00064 
00065 /* Needs to be done in user-mode. */
00066 BOOL APIENTRY  NtGdiGetViewportOrgEx(HDC  hDC, LPPOINT viewportOrg);
00067 
00068 /* Needs to be done in user-mode. */
00069 BOOL APIENTRY  NtGdiGetWindowExtEx(HDC  hDC, LPSIZE windowExt);
00070 
00071 /* Needs to be done in user-mode. */
00072 BOOL APIENTRY  NtGdiGetWindowOrgEx(HDC  hDC, LPPOINT windowOrg);
00073 
00074 /* Needs to be done in user-mode. */
00075 BOOL
00076 APIENTRY
00077 NtGdiOffsetViewportOrgEx (
00078     HDC hDC,
00079     int XOffset,
00080     int YOffset,
00081     LPPOINT Point
00082     );
00083 
00084 /* Needs to be done in user-mode. */
00085 BOOL
00086 APIENTRY
00087 NtGdiOffsetWindowOrgEx (
00088     HDC hDC,
00089     int XOffset,
00090     int YOffset,
00091     LPPOINT Point
00092     );
00093 
00094 /* Needs to be done in user-mode. */
00095 BOOL
00096 APIENTRY
00097 NtGdiSetViewportOrgEx (
00098     HDC hDC,
00099     int X,
00100     int Y,
00101     LPPOINT Point
00102     );
00103 
00104 /* Needs to be done in user-mode. */
00105 BOOL
00106 APIENTRY
00107 NtGdiSetWindowOrgEx (
00108     HDC hDC,
00109     int X,
00110     int Y,
00111     LPPOINT Point
00112     );
00113 
00114 #endif /* WIN32K_NTGDI_BAD_INCLUDED */
00115 
00116 
00117 /* Follow thing need be rewriten
00118  *
00119  * Opengl icd are complete hacked in reactos and are using own way, this need be rewriten and be setup with the correct syscall
00120  * and the opengl32 shall using correct syscall to optain then driver interface or using the correct version in gdi32.
00121  * it mean whole icd are hacked in frist place and need be rewtiten from scrash. and it need enum the opengl correct way and
00122  * export the driver correct
00123  *
00124  * DirectX aka ReactX alot api that have been implement in reactos win32k for ReactX shall move to a file call dxg.sys
00125  * there from it will really doing the stuff. And we should setup loading of dxg.sys
00126  *
00127  *  The Init of Gdi subsystem shall move into NtGdiInit()
00128  *
00129  *  The Init of spooler are done in NtGdiInitSpool()
00130  *
00131  *  The Init of the User subsystem shall move into NtUserInit()
00132  */

Generated on Sun May 27 2012 04:38:27 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.