[WIN32SS] Rewrite font selection code. Patch by Katayama Hirofumi MZ. CORE-6621
[reactos.git] / reactos / win32ss / gdi / eng / engobjects.h
index e907ae3..584ebe7 100644 (file)
@@ -20,7 +20,7 @@
  * COPYRIGHT:         See COPYING in the top level directory
  * PROJECT:           ReactOS kernel
  * PURPOSE:           GDI Internal Objects
- * FILE:              subsystem/win32/win32k/eng/objects.h
+ * FILE:              win32ss/gdi/eng/engobjects.h
  * PROGRAMER:         Jason Filby
  * REVISION HISTORY:
  *                 21/8/1999: Created
 ---------------------------------------------------------------------------*/
 
 /* EXtended CLip and Window Region Object */
+#ifdef __cplusplus
+typedef struct _XCLIPOBJ : _WNDOBJ
+{
+#else
 typedef struct _XCLIPOBJ
 {
   WNDOBJ;
+#endif
   PVOID   pClipRgn;    /* prgnRao_ or (prgnVis_ if (prgnRao_ == z)) */
   RECTL   rclClipRgn;
   PVOID   pscanClipRgn; /* Ptr to regions rect buffer based on iDirection. */
@@ -102,22 +107,31 @@ typedef struct _FLOATGDI {
   ULONG Dummy;
 } FLOATGDI;
 
+typedef struct _SHARED_FACE {
+  FT_Face     Face;
+  LONG        RefCount;
+} SHARED_FACE, *PSHARED_FACE;
+
 typedef struct _FONTGDI {
-  FONTOBJ     FontObj;
-  ULONG       iUnique;
-  FLONG       flType;
-  union{
-  DHPDEV      dhpdev;
-  FT_Face     face;
-  };
-
-  LONG        lMaxNegA;
-  LONG        lMaxNegC;
-  LONG        lMinWidthD;
-
-  LPWSTR      Filename;
-  BYTE        Underline;
-  BYTE        StrikeOut;
+  FONTOBJ       FontObj;
+  ULONG         iUnique;
+  FLONG         flType;
+
+  DHPDEV        dhpdev;
+  PSHARED_FACE  SharedFace;
+
+  LONG          lMaxNegA;
+  LONG          lMaxNegC;
+  LONG          lMinWidthD;
+
+  LPWSTR        Filename;
+  BYTE          RequestUnderline;
+  BYTE          RequestStrikeOut;
+  BYTE          RequestItalic;
+  LONG          RequestWeight;
+  BYTE          OriginalItalic;
+  LONG          OriginalWeight;
+  BYTE          CharSet;
 } FONTGDI, *PFONTGDI;
 
 typedef struct _PATHGDI {