[ros-diffs] [jimtabor] 28183: Moved most of the old Win struct to Dc_Attr structure. Tested it with qemu.

jimtabor at svn.reactos.org jimtabor at svn.reactos.org
Mon Aug 6 04:48:10 CEST 2007


Author: jimtabor
Date: Mon Aug  6 06:48:09 2007
New Revision: 28183

URL: http://svn.reactos.org/svn/reactos?rev=28183&view=rev
Log:
Moved most of the old Win struct to Dc_Attr structure. Tested it with qemu.

Modified:
    trunk/reactos/subsystems/win32/win32k/include/dc.h
    trunk/reactos/subsystems/win32/win32k/objects/bitmaps.c
    trunk/reactos/subsystems/win32/win32k/objects/brush.c
    trunk/reactos/subsystems/win32/win32k/objects/coord.c
    trunk/reactos/subsystems/win32/win32k/objects/dc.c
    trunk/reactos/subsystems/win32/win32k/objects/fillshap.c
    trunk/reactos/subsystems/win32/win32k/objects/line.c
    trunk/reactos/subsystems/win32/win32k/objects/path.c
    trunk/reactos/subsystems/win32/win32k/objects/polyfill.c
    trunk/reactos/subsystems/win32/win32k/objects/region.c
    trunk/reactos/subsystems/win32/win32k/objects/text.c

Modified: trunk/reactos/subsystems/win32/win32k/include/dc.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/include/dc.h?rev=28183&r1=28182&r2=28183&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/include/dc.h (original)
+++ trunk/reactos/subsystems/win32/win32k/include/dc.h Mon Aug  6 06:48:09 2007
@@ -26,9 +26,6 @@
   HRGN  hClipRgn;     /* Clip region (may be 0) */
   HRGN  hVisRgn;      /* Visible region (must never be 0) */
   HRGN  hGCClipRgn;   /* GC clip region (ClipRgn AND VisRgn) */
-  HPEN  hPen;
-  HBRUSH  hBrush;
-  HFONT  hFont;
   HBITMAP  hBitmap;
   HBITMAP  hFirstBitmap; /* Bitmap selected at creation of the DC */
 
@@ -39,19 +36,9 @@
     GdiPath       path;
 /* #endif */
 
-  WORD  ROPmode;
-  WORD  polyFillMode;
-  WORD  stretchBltMode;
-  WORD  relAbsMode;
-  WORD  backgroundMode;
-  COLORREF  backgroundColor;
-  COLORREF  textColor;
-
   short  brushOrgX;
   short  brushOrgY;
 
-  WORD  textAlign;         /* Text alignment from SetTextAlign() */
-  short  charExtra;         /* Spacing from SetTextCharacterExtra() */
   short  breakTotalExtra;   /* Total extra space for justification */
   short  breakCount;        /* Break char. count */
   short  breakExtra;        /* breakTotalExtra / breakCount */
@@ -60,8 +47,6 @@
   RECT   totalExtent;
   BYTE   bitsPerPixel;
 
-  INT  MapMode;
-  INT  GraphicsMode;      /* Graphics mode */
   INT  DCOrgX;            /* DC origin */
   INT  DCOrgY;
 
@@ -92,6 +77,8 @@
   HDC  hSelf;
   HDC  hNext;
   PDC_ATTR pDc_Attr;
+  INT  DC_Type;
+  INT  DC_Flags;
   DHPDEV  PDev;
   HSURF  FillPatternSurfaces[HS_DDI_MAX];
   PGDIINFO  GDIInfo;

Modified: trunk/reactos/subsystems/win32/win32k/objects/bitmaps.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/objects/bitmaps.c?rev=28183&r1=28182&r2=28183&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/objects/bitmaps.c (original)
+++ trunk/reactos/subsystems/win32/win32k/objects/bitmaps.c Mon Aug  6 06:48:09 2007
@@ -140,7 +140,7 @@
 
 	if (UsesPattern)
 	{
-		BrushObj = BRUSHOBJ_LockBrush(DCDest->w.hBrush);
+		BrushObj = BRUSHOBJ_LockBrush(DCDest->Dc_Attr.hbrush);
 		if (NULL == BrushObj)
 		{
 			if (UsesSource && hDCSrc != hDCDest)
@@ -185,11 +185,11 @@
 		{
 			if (DCDest->w.bitsPerPixel == 1)
 			{
-				XlateObj = IntEngCreateMonoXlate(0, DestPalette, SourcePalette, DCSrc->w.backgroundColor);
+				XlateObj = IntEngCreateMonoXlate(0, DestPalette, SourcePalette, DCSrc->Dc_Attr.crBackgroundClr);
 			}
 			else if (DCSrc->w.bitsPerPixel == 1)
 			{
-				XlateObj = IntEngCreateSrcMonoXlate(DestPalette, DCSrc->w.backgroundColor, DCSrc->w.textColor);
+				XlateObj = IntEngCreateSrcMonoXlate(DestPalette, DCSrc->Dc_Attr.crBackgroundClr, DCSrc->Dc_Attr.crForegroundClr);
 			}
 			else
 			{
@@ -1315,7 +1315,7 @@
 
 	if (UsesPattern)
 	{
-		BrushObj = BRUSHOBJ_LockBrush(DCDest->w.hBrush);
+		BrushObj = BRUSHOBJ_LockBrush(DCDest->Dc_Attr.hbrush);
 		if (NULL == BrushObj)
 		{
 			if (UsesSource && hDCSrc != hDCDest)
@@ -1481,11 +1481,11 @@
 	{
 		if (DCDest->w.bitsPerPixel == 1)
 		{
-			XlateObj = IntEngCreateMonoXlate(0, DestPalette, SourcePalette, DCSrc->w.backgroundColor);
+			XlateObj = IntEngCreateMonoXlate(0, DestPalette, SourcePalette, DCSrc->Dc_Attr.crBackgroundClr);
 		}
 		else if (DCSrc->w.bitsPerPixel == 1)
 		{
-			XlateObj = IntEngCreateSrcMonoXlate(DestPalette, DCSrc->w.backgroundColor, DCSrc->w.textColor);
+			XlateObj = IntEngCreateSrcMonoXlate(DestPalette, DCSrc->Dc_Attr.crBackgroundClr, DCSrc->Dc_Attr.crForegroundClr);
 		}
 		else
 		{

Modified: trunk/reactos/subsystems/win32/win32k/objects/brush.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/objects/brush.c?rev=28183&r1=28182&r2=28183&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/objects/brush.c (original)
+++ trunk/reactos/subsystems/win32/win32k/objects/brush.c Mon Aug  6 06:48:09 2007
@@ -134,7 +134,7 @@
       if (Pattern->SurfObj.iBitmapFormat == BMF_1BPP)
       {
          if (Dc->w.bitsPerPixel != 1)
-            Result = IntEngCreateSrcMonoXlate(Dc->w.hPalette, Dc->w.textColor, Dc->w.backgroundColor);
+            Result = IntEngCreateSrcMonoXlate(Dc->w.hPalette, Dc->Dc_Attr.crForegroundClr, Dc->Dc_Attr.crBackgroundClr);
       }
       else if (BrushObj->flAttrs & GDIBRUSH_IS_DIB)
       {
@@ -823,7 +823,7 @@
       return TRUE;
    }
 
-   BrushObj = BRUSHOBJ_LockBrush(dc->w.hBrush);
+   BrushObj = BRUSHOBJ_LockBrush(dc->Dc_Attr.hbrush);
    if (BrushObj == NULL)
    {
       SetLastWin32Error(ERROR_INVALID_HANDLE);

Modified: trunk/reactos/subsystems/win32/win32k/objects/coord.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/objects/coord.c?rev=28183&r1=28182&r2=28183&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/objects/coord.c (original)
+++ trunk/reactos/subsystems/win32/win32k/objects/coord.c Mon Aug  6 06:48:09 2007
@@ -255,7 +255,7 @@
 IntGetGraphicsMode ( PDC dc )
 {
   ASSERT ( dc );
-  return dc->w.GraphicsMode;
+  return dc->Dc_Attr.iGraphicsMode;
 }
 
 BOOL
@@ -309,7 +309,7 @@
     return 0;
   }
 
-  GraphicsMode = dc->w.GraphicsMode;
+  GraphicsMode = dc->Dc_Attr.iGraphicsMode;
 
   DC_UnlockDc(dc);
   return GraphicsMode;
@@ -680,8 +680,8 @@
       return 0;
     }
 
-  ret = dc->w.GraphicsMode;
-  dc->w.GraphicsMode = Mode;
+  ret = dc->Dc_Attr.iGraphicsMode;
+  dc->Dc_Attr.iGraphicsMode = Mode;
   DC_UnlockDc(dc);
   return  ret;
 }
@@ -701,11 +701,11 @@
     return 0;
   }
 
-  PrevMapMode = dc->w.MapMode;
-
-  if (MapMode != dc->w.MapMode || (MapMode != MM_ISOTROPIC && MapMode != MM_ANISOTROPIC))
-  {
-    dc->w.MapMode = MapMode;
+  PrevMapMode = dc->Dc_Attr.iMapMode;
+
+  if (MapMode != dc->Dc_Attr.iMapMode || (MapMode != MM_ISOTROPIC && MapMode != MM_ANISOTROPIC))
+  {
+    dc->Dc_Attr.iMapMode = MapMode;
 
     switch (MapMode)
     {
@@ -780,7 +780,7 @@
     return FALSE;
   }
 
-  switch (dc->w.MapMode)
+  switch (dc->Dc_Attr.iMapMode)
     {
       case MM_HIENGLISH:
       case MM_HIMETRIC:
@@ -812,7 +812,7 @@
 		 dc->vportExtX = XExtent;
          dc->vportExtY = YExtent;
 
-         if (dc->w.MapMode == MM_ISOTROPIC)
+         if (dc->Dc_Attr.iMapMode == MM_ISOTROPIC)
              IntFixIsotropicMapping(dc);
       }
       _SEH_HANDLE
@@ -903,7 +903,7 @@
       return FALSE;
     }
 
-  switch (dc->w.MapMode)
+  switch (dc->Dc_Attr.iMapMode)
     {
       case MM_HIENGLISH:
       case MM_HIMETRIC:
@@ -1024,7 +1024,7 @@
   }
 
   /* Check that graphics mode is GM_ADVANCED */
-  if ( dc->w.GraphicsMode != GM_ADVANCED )
+  if ( dc->Dc_Attr.iGraphicsMode != GM_ADVANCED )
   {
     DC_UnlockDc(dc);
     return  FALSE;

Modified: trunk/reactos/subsystems/win32/win32k/objects/dc.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/objects/dc.c?rev=28183&r1=28182&r2=28183&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/objects/dc.c (original)
+++ trunk/reactos/subsystems/win32/win32k/objects/dc.c Mon Aug  6 06:48:09 2007
@@ -244,11 +244,11 @@
 
   NewDC->PalIndexed = OrigDC->PalIndexed;
   NewDC->w.hPalette = OrigDC->w.hPalette;
-  NewDC->w.textColor = OrigDC->w.textColor;
-  NewDC->w.textAlign = OrigDC->w.textAlign;
-  NewDC->w.backgroundColor = OrigDC->w.backgroundColor;
-  NewDC->w.backgroundMode = OrigDC->w.backgroundMode;
-  NewDC->w.ROPmode = OrigDC->w.ROPmode;
+  NewDC->Dc_Attr.crForegroundClr = OrigDC->Dc_Attr.crForegroundClr;
+  NewDC->Dc_Attr.lTextAlign = OrigDC->Dc_Attr.lTextAlign;
+  NewDC->Dc_Attr.crBackgroundClr = OrigDC->Dc_Attr.crBackgroundClr;
+  NewDC->Dc_Attr.jBkMode = OrigDC->Dc_Attr.jBkMode;
+  NewDC->Dc_Attr.jROP2 = OrigDC->Dc_Attr.jROP2;
   DC_UnlockDc(NewDC);
   DC_UnlockDc(OrigDC);
   if (NULL != DisplayDC)
@@ -908,7 +908,7 @@
   {
     NewDC->PalIndexed = NtGdiGetStockObject(DEFAULT_PALETTE);
     NewDC->w.hPalette = NewDC->DevInfo->hpalDefault;
-    NewDC->w.ROPmode = R2_COPYPEN;
+    NewDC->Dc_Attr.jROP2 = R2_COPYPEN;
 
     DC_UnlockDc( NewDC );
 
@@ -1098,8 +1098,8 @@
   return 0;
 }
 
-DC_GET_VAL( COLORREF, NtGdiGetBkColor, w.backgroundColor )
-DC_GET_VAL( INT, NtGdiGetBkMode, w.backgroundMode )
+DC_GET_VAL( COLORREF, NtGdiGetBkColor, Dc_Attr.crBackgroundClr )
+DC_GET_VAL( INT, NtGdiGetBkMode, Dc_Attr.jBkMode )
 DC_GET_VAL_EX( GetBrushOrgEx, w.brushOrgX, w.brushOrgY, POINT, x, y )
 DC_GET_VAL( HRGN, NtGdiGetClipRgn, w.hClipRgn )
 
@@ -1122,16 +1122,16 @@
   {
     case OBJ_PEN:
     case OBJ_EXTPEN:
-      SelObject = dc->w.hPen;
+      SelObject = dc->Dc_Attr.hpen;
       break;
     case OBJ_BRUSH:
-      SelObject = dc->w.hBrush;
+      SelObject = dc->Dc_Attr.hbrush;
       break;
     case OBJ_PAL:
       SelObject = dc->w.hPalette;
       break;
     case OBJ_FONT:
-      SelObject = dc->w.hFont;
+      SelObject = dc->Dc_Attr.hlfntNew;
       break;
     case OBJ_BITMAP:
       SelObject = dc->w.hBitmap;
@@ -1221,9 +1221,9 @@
     return CLR_INVALID;
   }
 
-  oldColor = dc->w.backgroundColor;
-  dc->w.backgroundColor = color;
-  hBrush = dc->w.hBrush;
+  oldColor = dc->Dc_Attr.crBackgroundClr;
+  dc->Dc_Attr.crBackgroundClr = color;
+  hBrush = dc->Dc_Attr.hbrush;
   DC_UnlockDc(dc);
   NtGdiSelectObject(hDC, hBrush);
   return oldColor;
@@ -1253,9 +1253,9 @@
   ASSERT( newdc );
 
   newdc->w.flags            = dc->w.flags | DC_SAVED;
-  newdc->w.hPen             = dc->w.hPen;
-  newdc->w.hBrush           = dc->w.hBrush;
-  newdc->w.hFont            = dc->w.hFont;
+  newdc->Dc_Attr.hpen             = dc->Dc_Attr.hpen;
+  newdc->Dc_Attr.hbrush           = dc->Dc_Attr.hbrush;
+  newdc->Dc_Attr.hlfntNew            = dc->Dc_Attr.hlfntNew;
   newdc->w.hBitmap          = dc->w.hBitmap;
   newdc->w.hFirstBitmap     = dc->w.hFirstBitmap;
 #if 0
@@ -1265,23 +1265,23 @@
   newdc->w.hPalette         = dc->w.hPalette;
   newdc->w.totalExtent      = dc->w.totalExtent;
   newdc->w.bitsPerPixel     = dc->w.bitsPerPixel;
-  newdc->w.ROPmode          = dc->w.ROPmode;
-  newdc->w.polyFillMode     = dc->w.polyFillMode;
-  newdc->w.stretchBltMode   = dc->w.stretchBltMode;
-  newdc->w.relAbsMode       = dc->w.relAbsMode;
-  newdc->w.backgroundMode   = dc->w.backgroundMode;
-  newdc->w.backgroundColor  = dc->w.backgroundColor;
-  newdc->w.textColor        = dc->w.textColor;
+  newdc->Dc_Attr.jROP2          = dc->Dc_Attr.jROP2;
+  newdc->Dc_Attr.jFillMode     = dc->Dc_Attr.jFillMode;
+  newdc->Dc_Attr.jStretchBltMode   = dc->Dc_Attr.jStretchBltMode;
+  newdc->Dc_Attr.lRelAbs       = dc->Dc_Attr.lRelAbs;
+  newdc->Dc_Attr.jBkMode   = dc->Dc_Attr.jBkMode;
+  newdc->Dc_Attr.crBackgroundClr  = dc->Dc_Attr.crBackgroundClr;
+  newdc->Dc_Attr.crForegroundClr        = dc->Dc_Attr.crForegroundClr;
   newdc->w.brushOrgX        = dc->w.brushOrgX;
   newdc->w.brushOrgY        = dc->w.brushOrgY;
-  newdc->w.textAlign        = dc->w.textAlign;
-  newdc->w.charExtra        = dc->w.charExtra;
+  newdc->Dc_Attr.lTextAlign        = dc->Dc_Attr.lTextAlign;
+  newdc->Dc_Attr.lTextExtra        = dc->Dc_Attr.lTextExtra;
   newdc->w.breakTotalExtra  = dc->w.breakTotalExtra;
   newdc->w.breakCount       = dc->w.breakCount;
   newdc->w.breakExtra       = dc->w.breakExtra;
   newdc->w.breakRem         = dc->w.breakRem;
-  newdc->w.MapMode          = dc->w.MapMode;
-  newdc->w.GraphicsMode     = dc->w.GraphicsMode;
+  newdc->Dc_Attr.iMapMode          = dc->Dc_Attr.iMapMode;
+  newdc->Dc_Attr.iGraphicsMode     = dc->Dc_Attr.iGraphicsMode;
 #if 0
   /* Apparently, the DC origin is not changed by [GS]etDCState */
   newdc->w.DCOrgX           = dc->w.DCOrgX;
@@ -1348,23 +1348,23 @@
 #endif
 
         dc->w.totalExtent      = dcs->w.totalExtent;
-        dc->w.ROPmode          = dcs->w.ROPmode;
-        dc->w.polyFillMode     = dcs->w.polyFillMode;
-        dc->w.stretchBltMode   = dcs->w.stretchBltMode;
-        dc->w.relAbsMode       = dcs->w.relAbsMode;
-        dc->w.backgroundMode   = dcs->w.backgroundMode;
-        dc->w.backgroundColor  = dcs->w.backgroundColor;
-        dc->w.textColor        = dcs->w.textColor;
+        dc->Dc_Attr.jROP2          = dcs->Dc_Attr.jROP2;
+        dc->Dc_Attr.jFillMode     = dcs->Dc_Attr.jFillMode;
+        dc->Dc_Attr.jStretchBltMode   = dcs->Dc_Attr.jStretchBltMode;
+        dc->Dc_Attr.lRelAbs       = dcs->Dc_Attr.lRelAbs;
+        dc->Dc_Attr.jBkMode   = dcs->Dc_Attr.jBkMode;
+        dc->Dc_Attr.crBackgroundClr  = dcs->Dc_Attr.crBackgroundClr;
+        dc->Dc_Attr.crForegroundClr        = dcs->Dc_Attr.crForegroundClr;
         dc->w.brushOrgX        = dcs->w.brushOrgX;
         dc->w.brushOrgY        = dcs->w.brushOrgY;
-        dc->w.textAlign        = dcs->w.textAlign;
-        dc->w.charExtra        = dcs->w.charExtra;
+        dc->Dc_Attr.lTextAlign        = dcs->Dc_Attr.lTextAlign;
+        dc->Dc_Attr.lTextExtra        = dcs->Dc_Attr.lTextExtra;
         dc->w.breakTotalExtra  = dcs->w.breakTotalExtra;
         dc->w.breakCount       = dcs->w.breakCount;
         dc->w.breakExtra       = dcs->w.breakExtra;
         dc->w.breakRem         = dcs->w.breakRem;
-        dc->w.MapMode          = dcs->w.MapMode;
-        dc->w.GraphicsMode     = dcs->w.GraphicsMode;
+        dc->Dc_Attr.iMapMode          = dcs->Dc_Attr.iMapMode;
+        dc->Dc_Attr.iGraphicsMode     = dcs->Dc_Attr.iGraphicsMode;
 #if 0
         /* Apparently, the DC origin is not changed by [GS]etDCState */
         dc->w.DCOrgX           = dcs->w.DCOrgX;
@@ -1424,11 +1424,11 @@
 #endif
 
         NtGdiSelectObject( hDC, dcs->w.hBitmap );
-        NtGdiSelectObject( hDC, dcs->w.hBrush );
-        NtGdiSelectObject( hDC, dcs->w.hFont );
-        NtGdiSelectObject( hDC, dcs->w.hPen );
-        NtGdiSetBkColor( hDC, dcs->w.backgroundColor);
-        NtGdiSetTextColor( hDC, dcs->w.textColor);
+        NtGdiSelectObject( hDC, dcs->Dc_Attr.hbrush );
+        NtGdiSelectObject( hDC, dcs->Dc_Attr.hlfntNew );
+        NtGdiSelectObject( hDC, dcs->Dc_Attr.hpen );
+        NtGdiSetBkColor( hDC, dcs->Dc_Attr.crBackgroundClr);
+        NtGdiSetTextColor( hDC, dcs->Dc_Attr.crForegroundClr);
 
         NtGdiSelectPalette( hDC, dcs->w.hPalette, FALSE );
 
@@ -1665,8 +1665,8 @@
   return ret;
 }
 
-DC_GET_VAL( INT, NtGdiGetMapMode, w.MapMode )
-DC_GET_VAL( INT, NtGdiGetPolyFillMode, w.polyFillMode )
+DC_GET_VAL( INT, NtGdiGetMapMode, Dc_Attr.iMapMode )
+DC_GET_VAL( INT, NtGdiGetPolyFillMode, Dc_Attr.jFillMode )
 
 INT
 FASTCALL
@@ -1773,11 +1773,11 @@
     return iRetCount;
 }
 
-DC_GET_VAL( INT, NtGdiGetRelAbs, w.relAbsMode )
-DC_GET_VAL( INT, NtGdiGetROP2, w.ROPmode )
-DC_GET_VAL( INT, NtGdiGetStretchBltMode, w.stretchBltMode )
-DC_GET_VAL( UINT, NtGdiGetTextAlign, w.textAlign )
-DC_GET_VAL( COLORREF, NtGdiGetTextColor, w.textColor )
+DC_GET_VAL( INT, NtGdiGetRelAbs, Dc_Attr.lRelAbs )
+DC_GET_VAL( INT, NtGdiGetROP2, Dc_Attr.jROP2 )
+DC_GET_VAL( INT, NtGdiGetStretchBltMode, Dc_Attr.jStretchBltMode )
+DC_GET_VAL( UINT, NtGdiGetTextAlign, Dc_Attr.lTextAlign )
+DC_GET_VAL( COLORREF, NtGdiGetTextColor, Dc_Attr.crForegroundClr )
 DC_GET_VAL_EX( GetViewportExtEx, vportExtX, vportExtY, SIZE, cx, cy )
 DC_GET_VAL_EX( GetViewportOrgEx, vportOrgX, vportOrgY, POINT, x, y )
 DC_GET_VAL_EX( GetWindowExtEx, wndExtX, wndExtY, SIZE, cx, cy )
@@ -1968,8 +1968,8 @@
         break;
       }
 
-      objOrg = (HGDIOBJ)dc->w.hPen;
-      dc->w.hPen = hGDIObj;
+      objOrg = (HGDIOBJ)dc->Dc_Attr.hpen;
+      dc->Dc_Attr.hpen = hGDIObj;
       if (dc->XlatePen != NULL)
         EngDeleteXlate(dc->XlatePen);
       dc->XlatePen = XlateObj;
@@ -1991,8 +1991,8 @@
         break;
       }
 
-      objOrg = (HGDIOBJ)dc->w.hBrush;
-      dc->w.hBrush = hGDIObj;
+      objOrg = (HGDIOBJ)dc->Dc_Attr.hbrush;
+      dc->Dc_Attr.hbrush = hGDIObj;
       if (dc->XlateBrush != NULL)
         EngDeleteXlate(dc->XlateBrush);
       dc->XlateBrush = XlateObj;
@@ -2001,8 +2001,8 @@
     case GDI_OBJECT_TYPE_FONT:
       if(NT_SUCCESS(TextIntRealizeFont((HFONT)hGDIObj)))
       {
-        objOrg = (HGDIOBJ)dc->w.hFont;
-        dc->w.hFont = (HFONT) hGDIObj;
+        objOrg = (HGDIOBJ)dc->Dc_Attr.hlfntNew;
+        dc->Dc_Attr.hlfntNew = (HFONT) hGDIObj;
       }
       break;
 
@@ -2038,8 +2038,8 @@
       }
 
       /* Reselect brush and pen to regenerate the XLATEOBJs. */
-      NtGdiSelectObject ( hDC, dc->w.hBrush );
-      NtGdiSelectObject ( hDC, dc->w.hPen );
+      NtGdiSelectObject ( hDC, dc->Dc_Attr.hbrush );
+      NtGdiSelectObject ( hDC, dc->Dc_Attr.hpen );
 
       DC_UnlockDc ( dc );
       hVisRgn = NtGdiCreateRectRgn ( 0, 0, pb->SurfObj.sizlBitmap.cx, pb->SurfObj.sizlBitmap.cy );
@@ -2099,11 +2099,11 @@
   return wRet;
 }
 
-DC_SET_MODE( NtGdiSetBkMode, w.backgroundMode, TRANSPARENT, OPAQUE )
-DC_SET_MODE( NtGdiSetPolyFillMode, w.polyFillMode, ALTERNATE, WINDING )
-// DC_SET_MODE( NtGdiSetRelAbs, w.relAbsMode, ABSOLUTE, RELATIVE )
-DC_SET_MODE( NtGdiSetROP2, w.ROPmode, R2_BLACK, R2_WHITE )
-DC_SET_MODE( NtGdiSetStretchBltMode, w.stretchBltMode, BLACKONWHITE, HALFTONE )
+DC_SET_MODE( NtGdiSetBkMode, Dc_Attr.jBkMode, TRANSPARENT, OPAQUE )
+DC_SET_MODE( NtGdiSetPolyFillMode, Dc_Attr.jFillMode, ALTERNATE, WINDING )
+// DC_SET_MODE( NtGdiSetRelAbs, Dc_Attr.lRelAbs, ABSOLUTE, RELATIVE )
+DC_SET_MODE( NtGdiSetROP2, Dc_Attr.jROP2, R2_BLACK, R2_WHITE )
+DC_SET_MODE( NtGdiSetStretchBltMode, Dc_Attr.jStretchBltMode, BLACKONWHITE, HALFTONE )
 
 //  ----------------------------------------------------  Private Interface
 
@@ -2202,7 +2202,7 @@
   NewDC->w.vport2WorldValid = TRUE;
 //  DC_Attr->flXform = DEVICE_TO_PAGE_INVALID; // More research.
 
-  NewDC->w.MapMode = MM_TEXT;
+  NewDC->Dc_Attr.iMapMode = MM_TEXT;
 //  DC_Attr->iMapMode = MM_TEXT;
 
   NewDC->wndExtX = 1.0f;
@@ -2210,16 +2210,16 @@
   NewDC->vportExtX = 1.0f;
   NewDC->vportExtY = 1.0f;
 
-  NewDC->w.textColor = 0;
+  NewDC->Dc_Attr.crForegroundClr = 0;
 //  NewDC->pDc_Attr->ulForegroundClr = 0; // Already Zero
 //  NewDC->pDc_Attr->crForegroundClr = 0;
 
-  NewDC->w.backgroundColor = 0xffffff;
+  NewDC->Dc_Attr.crBackgroundClr = 0xffffff;
 //  DC_Attr->ulBackgroundClr = 0xffffff;
 //  DC_Attr->crBackgroundClr = 0xffffff;
 
-  NewDC->w.hFont = NtGdiGetStockObject(SYSTEM_FONT);
-  TextIntRealizeFont(NewDC->w.hFont);
+  NewDC->Dc_Attr.hlfntNew = NtGdiGetStockObject(SYSTEM_FONT);
+  TextIntRealizeFont(NewDC->Dc_Attr.hlfntNew);
 //  DC_Attr->hlfntNew = NtGdiGetStockObject(SYSTEM_FONT);
   
   NewDC->w.hPalette = NtGdiGetStockObject(DEFAULT_PALETTE);

Modified: trunk/reactos/subsystems/win32/win32k/objects/fillshap.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/objects/fillshap.c?rev=28183&r1=28182&r2=28183&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/objects/fillshap.c (original)
+++ trunk/reactos/subsystems/win32/win32k/objects/fillshap.c Mon Aug  6 06:48:09 2007
@@ -31,7 +31,7 @@
        &BrushInst.BrushObject,                   \
        x, y, (x)+1, y,                           \
        &RectBounds,                              \
-       ROP2_TO_MIX(dc->w.ROPmode));
+       ROP2_TO_MIX(dc->Dc_Attr.jROP2));
 
 #define PUTLINE(x1,y1,x2,y2,BrushInst) \
   ret = ret && IntEngLineTo(&BitmapObj->SurfObj, \
@@ -39,7 +39,7 @@
        &BrushInst.BrushObject,                   \
        x1, y1, x2, y2,                           \
        &RectBounds,                              \
-       ROP2_TO_MIX(dc->w.ROPmode));
+       ROP2_TO_MIX(dc->Dc_Attr.jROP2));
 
 BOOL FASTCALL
 IntGdiPolygon(PDC    dc,
@@ -91,16 +91,16 @@
 	}
 
 	/* Now fill the polygon with the current brush. */
-	FillBrushObj = BRUSHOBJ_LockBrush(dc->w.hBrush);
+	FillBrushObj = BRUSHOBJ_LockBrush(dc->Dc_Attr.hbrush);
 	if (FillBrushObj && !(FillBrushObj->flAttrs & GDIBRUSH_IS_NULL))
 	{
           IntGdiInitBrushInstance(&FillBrushInst, FillBrushObj, dc->XlateBrush);
-          ret = FillPolygon ( dc, BitmapObj, &FillBrushInst.BrushObject, ROP2_TO_MIX(dc->w.ROPmode), UnsafePoints, Count, DestRect );  
+          ret = FillPolygon ( dc, BitmapObj, &FillBrushInst.BrushObject, ROP2_TO_MIX(dc->Dc_Attr.jROP2), UnsafePoints, Count, DestRect );  
 	}
 	BRUSHOBJ_UnlockBrush(FillBrushObj);
 
 	/* get BRUSHOBJ from current pen. */
-	PenBrushObj = PENOBJ_LockPen(dc->w.hPen);
+	PenBrushObj = PENOBJ_LockPen(dc->Dc_Attr.hpen);
 	// Draw the Polygon Edges with the current pen ( if not a NULL pen )
 	if (PenBrushObj && !(PenBrushObj->flAttrs & GDIBRUSH_IS_NULL))
 	{
@@ -121,7 +121,7 @@
 			       UnsafePoints[1].x,          /* To */
 			       UnsafePoints[1].y,
 			       &DestRect,
-			       ROP2_TO_MIX(dc->w.ROPmode)); /* MIX */
+			       ROP2_TO_MIX(dc->Dc_Attr.jROP2)); /* MIX */
              if(!ret) break;
              UnsafePoints++;
 	  }
@@ -213,7 +213,7 @@
       return TRUE;
    }
 
-   FillBrush = BRUSHOBJ_LockBrush(dc->w.hBrush);
+   FillBrush = BRUSHOBJ_LockBrush(dc->Dc_Attr.hbrush);
    if (NULL == FillBrush)
    {
       DC_UnlockDc(dc);
@@ -221,7 +221,7 @@
       return FALSE;
    }
 
-   PenBrush = PENOBJ_LockPen(dc->w.hPen);
+   PenBrush = PENOBJ_LockPen(dc->Dc_Attr.hpen);
    if (NULL == PenBrush)
    {
       BRUSHOBJ_UnlockBrush(FillBrush);
@@ -648,7 +648,7 @@
       return TRUE;
     }
 
-  FillBrushObj = BRUSHOBJ_LockBrush(dc->w.hBrush);
+  FillBrushObj = BRUSHOBJ_LockBrush(dc->Dc_Attr.hbrush);
   if (NULL == FillBrushObj)
     {
       DC_UnlockDc(dc);
@@ -671,7 +671,7 @@
   RectBounds.bottom = Bottom;
 
   SurfObj = (SURFOBJ*) AccessUserObject((ULONG)dc->Surface);
-  HPenToBrushObj(&PenBrushObj, dc->w.hPen);
+  HPenToBrushObj(&PenBrushObj, dc->Dc_Attr.hpen);
 
   /* Number of points for the circle is 4 * sqrt(2) * Radius, start
      and end line have at most Radius points, so allocate at least
@@ -1030,7 +1030,7 @@
     DestRect.top = TopRect;
     DestRect.bottom = BottomRect;
 
-    FillBrushObj = BRUSHOBJ_LockBrush(dc->w.hBrush);
+    FillBrushObj = BRUSHOBJ_LockBrush(dc->Dc_Attr.hbrush);
 
     if ( FillBrushObj )
     {
@@ -1054,7 +1054,7 @@
     BRUSHOBJ_UnlockBrush(FillBrushObj);
 
     /* get BRUSHOBJ from current pen. */
-    PenBrushObj = PENOBJ_LockPen(dc->w.hPen);
+    PenBrushObj = PENOBJ_LockPen(dc->Dc_Attr.hpen);
     if (PenBrushObj == NULL)
     {
       SetLastWin32Error(ERROR_INVALID_HANDLE);
@@ -1070,7 +1070,7 @@
 
     if (!(PenBrushObj->flAttrs & GDIBRUSH_IS_NULL))
     {
-      Mix = ROP2_TO_MIX(dc->w.ROPmode);
+      Mix = ROP2_TO_MIX(dc->Dc_Attr.jROP2);
       ret = ret && IntEngLineTo(&BitmapObj->SurfObj,
 			 dc->CombinedClip,
 			 &PenBrushInst.BrushObject,
@@ -1195,7 +1195,7 @@
     return FALSE;
   }
 
-  FillBrushObj = BRUSHOBJ_LockBrush(dc->w.hBrush);
+  FillBrushObj = BRUSHOBJ_LockBrush(dc->Dc_Attr.hbrush);
   if (FillBrushObj)
   {
     if (FillBrushObj->flAttrs & GDIBRUSH_IS_NULL)
@@ -1210,7 +1210,7 @@
     }
   }
 
-  PenBrushObj = PENOBJ_LockPen(dc->w.hPen);
+  PenBrushObj = PENOBJ_LockPen(dc->Dc_Attr.hpen);
   if (PenBrushObj)
   {
     if (PenBrushObj->flAttrs & GDIBRUSH_IS_NULL)

Modified: trunk/reactos/subsystems/win32/win32k/objects/line.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/objects/line.c?rev=28183&r1=28182&r2=28183&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/objects/line.c (original)
+++ trunk/reactos/subsystems/win32/win32k/objects/line.c Mon Aug  6 06:48:09 2007
@@ -100,7 +100,7 @@
       Bounds.bottom = max(Points[0].y, Points[1].y);
 
       /* get BRUSHOBJ from current pen. */
-      PenBrushObj = PENOBJ_LockPen( dc->w.hPen );
+      PenBrushObj = PENOBJ_LockPen( dc->Dc_Attr.hpen );
       /* FIXME - PenBrushObj can be NULL!!!! Don't assert here! */
       ASSERT(PenBrushObj);
 
@@ -113,7 +113,7 @@
                            Points[0].x, Points[0].y,
                            Points[1].x, Points[1].y,
                            &Bounds,
-                           ROP2_TO_MIX(dc->w.ROPmode));
+                           ROP2_TO_MIX(dc->Dc_Attr.jROP2));
       }
 
       BITMAPOBJ_UnlockBitmap ( BitmapObj );
@@ -204,7 +204,7 @@
       return PATH_Polyline(dc, pt, Count);
 
    /* Get BRUSHOBJ from current pen. */
-   PenBrushObj = PENOBJ_LockPen(dc->w.hPen);
+   PenBrushObj = PENOBJ_LockPen(dc->Dc_Attr.hpen);
    /* FIXME - PenBrushObj can be NULL! Don't assert here! */
    ASSERT(PenBrushObj);
 
@@ -230,7 +230,7 @@
          IntGdiInitBrushInstance(&PenBrushInst, PenBrushObj, dc->XlatePen);
          Ret = IntEngPolyline(&BitmapObj->SurfObj, dc->CombinedClip,
                               &PenBrushInst.BrushObject, Points, Count,
-                              ROP2_TO_MIX(dc->w.ROPmode));
+                              ROP2_TO_MIX(dc->Dc_Attr.jROP2));
 
          BITMAPOBJ_UnlockBitmap(BitmapObj);
          EngFreeMem(Points);

Modified: trunk/reactos/subsystems/win32/win32k/objects/path.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/objects/path.c?rev=28183&r1=28182&r2=28183&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/objects/path.c (original)
+++ trunk/reactos/subsystems/win32/win32k/objects/path.c Mon Aug  6 06:48:09 2007
@@ -284,7 +284,7 @@
    else
    {
       /* FIXME: Should we empty the path even if conversion failed? */
-      if(PATH_PathToRegion(pPath, pDc->w.polyFillMode, &hrgnRval))
+      if(PATH_PathToRegion(pPath, pDc->Dc_Attr.jFillMode, &hrgnRval))
            PATH_EmptyPath(pPath);
    }
    
@@ -364,7 +364,7 @@
    return FALSE;
  }
  /* Construct a region from the path */
- else if( PATH_PathToRegion( &dc->w.path, dc->w.polyFillMode, &hrgnPath ) )
+ else if( PATH_PathToRegion( &dc->w.path, dc->Dc_Attr.jFillMode, &hrgnPath ) )
  {
    success = IntGdiExtSelectClipRgn( dc, hrgnPath, Mode ) != ERROR;
    NtGdiDeleteObject( hrgnPath );
@@ -404,7 +404,7 @@
     return FALSE;
   }
     
-  if( PATH_PathToRegion( pPath, dc->w.polyFillMode, &hrgn ))
+  if( PATH_PathToRegion( pPath, dc->Dc_Attr.jFillMode, &hrgn ))
   {
     /* Since PaintRgn interprets the region as being in logical coordinates
      * but the points we store for the path are already in device
@@ -1115,7 +1115,7 @@
    }
 
    /* In GM_COMPATIBLE, don't include bottom and right edges */
-   if(dc->w.GraphicsMode==GM_COMPATIBLE)
+   if(dc->Dc_Attr.iGraphicsMode==GM_COMPATIBLE)
    {
       corners[1].x--;
       corners[1].y--;
@@ -1478,7 +1478,7 @@
         return FALSE;
     
     /* Save the mapping mode info */
-    mapMode=dc->w.MapMode;
+    mapMode=dc->Dc_Attr.iMapMode;
     IntGetViewportExtEx(dc, &szViewportExt);
     IntGetViewportOrgEx(dc, &ptViewportOrg);
     IntGetWindowExtEx(dc, &szWindowExt);
@@ -1486,15 +1486,15 @@
     xform = dc->w.xformWorld2Wnd;
 
     /* Set MM_TEXT */
-    dc->w.MapMode = MM_TEXT;
+    dc->Dc_Attr.iMapMode = MM_TEXT;
     dc->vportOrgX = 0;
     dc->vportOrgY = 0;
     dc->wndOrgX = 0;
     dc->wndOrgY = 0;
-    graphicsMode = dc->w.GraphicsMode;
-    dc->w.GraphicsMode = GM_ADVANCED;
+    graphicsMode = dc->Dc_Attr.iGraphicsMode;
+    dc->Dc_Attr.iGraphicsMode = GM_ADVANCED;
     IntGdiModifyWorldTransform(dc, &xform, MWT_IDENTITY);
-    dc->w.GraphicsMode = graphicsMode;
+    dc->Dc_Attr.iGraphicsMode = graphicsMode;
 
     /* Allocate enough memory for the worst case without beziers (one PT_MOVETO
      * and the rest PT_LINETO with PT_CLOSEFIGURE at the end) plus some buffer 
@@ -1599,7 +1599,7 @@
     if(pLinePts)ExFreePool(pLinePts);
 
     /* Restore the old mapping mode */
-    dc->w.MapMode =  mapMode;
+    dc->Dc_Attr.iMapMode =  mapMode;
     dc->wndExtX = szWindowExt.cx;
     dc->wndExtY = szWindowExt.cy;
     dc->wndOrgX = ptWindowOrg.x;

Modified: trunk/reactos/subsystems/win32/win32k/objects/polyfill.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/objects/polyfill.c?rev=28183&r1=28182&r2=28183&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/objects/polyfill.c (original)
+++ trunk/reactos/subsystems/win32/win32k/objects/polyfill.c Mon Aug  6 06:48:09 2007
@@ -578,7 +578,7 @@
   if (NULL == list)
     return FALSE;
 
-  if ( WINDING == dc->w.polyFillMode )
+  if ( WINDING == dc->Dc_Attr.jFillMode )
     FillScanLine = POLYGONFILL_FillScanLineWinding;
   else /* default */
     FillScanLine = POLYGONFILL_FillScanLineAlternate;

Modified: trunk/reactos/subsystems/win32/win32k/objects/region.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/objects/region.c?rev=28183&r1=28182&r2=28183&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/objects/region.c (original)
+++ trunk/reactos/subsystems/win32/win32k/objects/region.c Mon Aug  6 06:48:09 2007
@@ -1855,7 +1855,7 @@
   if(!dc)
     return ret;
 
-  if(dc->w.MapMode == MM_TEXT) // Requires only a translation
+  if(dc->Dc_Attr.iMapMode == MM_TEXT) // Requires only a translation
   {
     if(NtGdiCombineRgn(hDest, hSrc, 0, RGN_COPY) == ERROR)
       goto done;
@@ -2570,7 +2570,7 @@
                                       (PRECTL)visrgn->Buffer,
                                       (PRECTL)&visrgn->rdh.rcBound );
   ASSERT( ClipRegion );
-  pBrush = BRUSHOBJ_LockBrush(dc->w.hBrush);
+  pBrush = BRUSHOBJ_LockBrush(dc->Dc_Attr.hbrush);
   ASSERT(pBrush);
   IntGdiInitBrushInstance(&BrushInst, pBrush, dc->XlateBrush);
 

Modified: trunk/reactos/subsystems/win32/win32k/objects/text.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/objects/text.c?rev=28183&r1=28182&r2=28183&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/objects/text.c (original)
+++ trunk/reactos/subsystems/win32/win32k/objects/text.c Mon Aug  6 06:48:09 2007
@@ -1697,7 +1697,7 @@
    {
       goto fail;
    }
-   hBrushFg = NtGdiCreateSolidBrush(XLATEOBJ_iXlate(XlateObj, dc->w.textColor), 0);
+   hBrushFg = NtGdiCreateSolidBrush(XLATEOBJ_iXlate(XlateObj, dc->Dc_Attr.crForegroundClr), 0);
    if ( !hBrushFg )
    {
       goto fail;
@@ -1708,9 +1708,9 @@
       goto fail;
    }
    IntGdiInitBrushInstance(&BrushFgInst, BrushFg, NULL);
-   if ((fuOptions & ETO_OPAQUE) || dc->w.backgroundMode == OPAQUE)
-   {
-      hBrushBg = NtGdiCreateSolidBrush(XLATEOBJ_iXlate(XlateObj, dc->w.backgroundColor), 0);
+   if ((fuOptions & ETO_OPAQUE) || dc->Dc_Attr.jBkMode == OPAQUE)
+   {
+      hBrushBg = NtGdiCreateSolidBrush(XLATEOBJ_iXlate(XlateObj, dc->Dc_Attr.crBackgroundClr), 0);
       if ( !hBrushBg )
       {
          goto fail;
@@ -1758,13 +1758,13 @@
    }
    else
    {
-      if (dc->w.backgroundMode == OPAQUE)
+      if (dc->Dc_Attr.jBkMode == OPAQUE)
       {
          fuOptions |= ETO_OPAQUE;
       }
    }
 
-   TextObj = TEXTOBJ_LockText(dc->w.hFont);
+   TextObj = TEXTOBJ_LockText(dc->Dc_Attr.hlfntNew);
    if(TextObj == NULL)
    {
       goto fail;
@@ -1827,9 +1827,9 @@
     * Process the vertical alignment and determine the yoff.
     */
 
-   if (dc->w.textAlign & TA_BASELINE)
+   if (dc->Dc_Attr.lTextAlign & TA_BASELINE)
       yoff = 0;
-   else if (dc->w.textAlign & TA_BOTTOM)
+   else if (dc->Dc_Attr.lTextAlign & TA_BOTTOM)
       yoff = -face->size->metrics.descender >> 6;
    else /* TA_TOP */
       yoff = face->size->metrics.ascender >> 6;
@@ -1841,7 +1841,7 @@
     * Process the horizontal alignment and modify XStart accordingly.
     */
 
-   if (dc->w.textAlign & (TA_RIGHT | TA_CENTER))
+   if (dc->Dc_Attr.lTextAlign & (TA_RIGHT | TA_CENTER))
    {
       ULONGLONG TextWidth = 0;
       LPCWSTR TempText = String;
@@ -1905,7 +1905,7 @@
 
       previous = 0;
 
-      if (dc->w.textAlign & TA_RIGHT)
+      if (dc->Dc_Attr.lTextAlign & TA_RIGHT)
       {
          RealXStart -= TextWidth;
       }
@@ -2205,7 +2205,7 @@
       SetLastWin32Error(ERROR_INVALID_HANDLE);
       return FALSE;
    }
-   hFont = dc->w.hFont;
+   hFont = dc->Dc_Attr.hlfntNew;
    TextObj = TEXTOBJ_LockText(hFont);
    DC_UnlockDc(dc);
 
@@ -2349,7 +2349,7 @@
       SetLastWin32Error(ERROR_INVALID_HANDLE);
       return FALSE;
    }
-   hFont = dc->w.hFont;
+   hFont = dc->Dc_Attr.hlfntNew;
    TextObj = TEXTOBJ_LockText(hFont);
    DC_UnlockDc(dc);
 
@@ -2515,7 +2515,7 @@
       return GDI_ERROR;
    }
   eM11 = dc->w.xformWorld2Vport.eM11;
-  hFont = dc->w.hFont;
+  hFont = dc->Dc_Attr.hlfntNew;
   TextObj = TEXTOBJ_LockText(hFont);
   DC_UnlockDc(dc);
   if (!TextObj)
@@ -3138,7 +3138,7 @@
       SetLastWin32Error(ERROR_INVALID_HANDLE);
       return 0;
     }
-  hFont = dc->w.hFont;
+  hFont = dc->Dc_Attr.hlfntNew;
   TextObj = TEXTOBJ_LockText(hFont);
   DC_UnlockDc(dc);
   if (TextObj == NULL)
@@ -3217,7 +3217,7 @@
          SetLastWin32Error(ERROR_INVALID_HANDLE);
          return Ret;
     }
-  hFont = Dc->w.hFont;
+  hFont = Dc->Dc_Attr.hlfntNew;
   TextObj = TEXTOBJ_LockText(hFont);
   DC_UnlockDc( Dc );
   if ( TextObj == NULL)
@@ -3493,7 +3493,7 @@
       SetLastWin32Error(ERROR_INVALID_HANDLE);
       return FALSE;
     }
-  TextObj = TEXTOBJ_LockText(dc->w.hFont);
+  TextObj = TEXTOBJ_LockText(dc->Dc_Attr.hlfntNew);
   if ( TextObj )
   {
     Result = TextIntGetTextExtentPoint(dc, TextObj, String, Count, MaxExtent,
@@ -3621,7 +3621,7 @@
       SetLastWin32Error(ERROR_INVALID_HANDLE);
       return FALSE;
     }
-  TextObj = TEXTOBJ_LockText(dc->w.hFont);
+  TextObj = TEXTOBJ_LockText(dc->Dc_Attr.hlfntNew);
   if ( TextObj != NULL )
   {
     Result = TextIntGetTextExtentPoint (
@@ -3671,7 +3671,7 @@
       SetLastWin32Error(ERROR_INVALID_HANDLE);
       return FALSE;
    }
-   hFont = Dc->w.hFont;
+   hFont = Dc->Dc_Attr.hlfntNew;
    DC_UnlockDc(Dc);
 
    TextObj = TEXTOBJ_LockText(hFont);
@@ -3721,7 +3721,7 @@
     return FALSE;
   }
 
-  TextObj = TEXTOBJ_LockText(dc->w.hFont);
+  TextObj = TEXTOBJ_LockText(dc->Dc_Attr.hlfntNew);
   if (NULL != TextObj)
     {
       FontGDI = ObjToGDI(TextObj->Font, FONT);
@@ -3842,8 +3842,8 @@
       SetLastWin32Error(ERROR_INVALID_HANDLE);
       return GDI_ERROR;
     }
-  prevAlign = dc->w.textAlign;
-  dc->w.textAlign = Mode;
+  prevAlign = dc->Dc_Attr.lTextAlign;
+  dc->Dc_Attr.lTextAlign = Mode;
   DC_UnlockDc( dc );
   return  prevAlign;
 }
@@ -3863,9 +3863,9 @@
     return CLR_INVALID;
   }
 
-  oldColor = dc->w.textColor;
-  dc->w.textColor = color;
-  hBrush = dc->w.hBrush;
+  oldColor = dc->Dc_Attr.crForegroundClr;
+  dc->Dc_Attr.crForegroundClr = color;
+  hBrush = dc->Dc_Attr.hbrush;
   DC_UnlockDc( dc );
   NtGdiSelectObject(hDC, hBrush);
   return  oldColor;
@@ -3901,7 +3901,7 @@
       SetLastWin32Error(ERROR_INVALID_HANDLE);
       return GDI_ERROR;
    }
-   hFont = Dc->w.hFont;
+   hFont = Dc->Dc_Attr.hlfntNew;
    TextObj = TEXTOBJ_LockText(hFont);
    DC_UnlockDc(Dc);
 
@@ -4196,8 +4196,8 @@
        return Ret;
   }
   DPRINT("TextCharacterExtra %d", CharExtra);
-  Ret = dc->w.charExtra;
-  if( Set ) dc->w.charExtra = CharExtra;
+  Ret = dc->Dc_Attr.lTextExtra;
+  if( Set ) dc->Dc_Attr.lTextExtra = CharExtra;
   DC_UnlockDc(dc);
   return (Ret);
 }




More information about the Ros-diffs mailing list