[ros-diffs] [jimtabor] 30603: Removing old syscalls and updated related files. Old syscalls will be renamed for internal use.

jimtabor at svn.reactos.org jimtabor at svn.reactos.org
Tue Nov 20 20:56:57 CET 2007


Author: jimtabor
Date: Tue Nov 20 22:56:57 2007
New Revision: 30603

URL: http://svn.reactos.org/svn/reactos?rev=30603&view=rev
Log:
Removing old syscalls and updated related files. Old syscalls will be renamed for internal use.

Modified:
    trunk/reactos/dll/win32/gdi32/misc/hacks.c
    trunk/reactos/dll/win32/gdi32/misc/stubs.c
    trunk/reactos/dll/win32/gdi32/objects/brush.c
    trunk/reactos/dll/win32/gdi32/objects/dc.c
    trunk/reactos/dll/win32/gdi32/objects/text.c
    trunk/reactos/include/reactos/win32k/ntgdibad.h
    trunk/reactos/subsystems/win32/win32k/include/dc.h
    trunk/reactos/subsystems/win32/win32k/include/intgdi.h
    trunk/reactos/subsystems/win32/win32k/ntuser/misc.c
    trunk/reactos/subsystems/win32/win32k/objects/dc.c
    trunk/reactos/subsystems/win32/win32k/objects/dcutil.c
    trunk/reactos/subsystems/win32/win32k/objects/text.c
    trunk/reactos/subsystems/win32/win32k/w32ksvc.db

Modified: trunk/reactos/dll/win32/gdi32/misc/hacks.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/gdi32/misc/hacks.c?rev=30603&r1=30602&r2=30603&view=diff
==============================================================================
--- trunk/reactos/dll/win32/gdi32/misc/hacks.c (original)
+++ trunk/reactos/dll/win32/gdi32/misc/hacks.c Tue Nov 20 22:56:57 2007
@@ -43,21 +43,6 @@
  * @implemented
  *
  */
-int
-STDCALL
-GetROP2(HDC hdc)
-{
-    /* FIXME do not use reactos own syscall for this,
-     * this hack need be remove
-     */
-     return NtGdiGetROP2(hdc);
-}
-
-
-/*
- * @implemented
- *
- */
 INT
 STDCALL
 SetDIBitsToDevice(
@@ -96,18 +81,6 @@
  * @implemented
  *
  */
-int
-STDCALL
-SetBkMode(HDC hdc,
-              int iBkMode)
-{
-    return NtGdiSetBkMode(hdc,iBkMode);
-}
-
-/*
- * @implemented
- *
- */
 HGDIOBJ
 STDCALL
 SelectObject(HDC hdc,
@@ -137,29 +110,6 @@
 GetStretchBltMode(HDC hdc)
 {
     return NtGdiGetStretchBltMode(hdc);
-}
-
-/*
- * @implemented
- *
- */
-UINT
-STDCALL
-GetTextAlign(HDC hdc)
-{
-    return NtGdiGetTextAlign(hdc);
-}
-
-
-/*
- * @implemented
- *
- */
-COLORREF
-STDCALL
-GetTextColor(HDC hdc)
-{
-    return NtGdiGetTextColor(hdc);
 }
 
 /*

Modified: trunk/reactos/dll/win32/gdi32/misc/stubs.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/gdi32/misc/stubs.c?rev=30603&r1=30602&r2=30603&view=diff
==============================================================================
--- trunk/reactos/dll/win32/gdi32/misc/stubs.c (original)
+++ trunk/reactos/dll/win32/gdi32/misc/stubs.c Tue Nov 20 22:56:57 2007
@@ -111,18 +111,6 @@
 {
     /* FIXME metadc stuff */
     return NtGdiSetRectRgn(hrgn, nLeftRect, nTopRect, nRightRect, nBottomRect);
-}
-
-/*
- * @unimplemented
- */
-UINT
-STDCALL
-SetTextAlign(HDC hdc,
-             UINT fMode)
-{
-    /* FIXME share memory */
-    return NtGdiSetTextAlign(hdc, fMode);
 }
 
 /*
@@ -2342,30 +2330,6 @@
  * @implemented
  *
  */
-COLORREF
-STDCALL
-GetBkColor(HDC hdc)
-{
-    /* FIXME some part are done in user mode */
-    return NtGdiGetBkColor(hdc);
-}
-
-/*
- * @implemented
- *
- */
-int
-STDCALL
-GetBkMode(HDC hdc)
-{
-    /* FIXME some part are done in user mode */
-    return NtGdiGetBkMode(hdc);
-}
-
-/*
- * @implemented
- *
- */
 int
 STDCALL
 GetDeviceCaps(HDC hdc,

Modified: trunk/reactos/dll/win32/gdi32/objects/brush.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/gdi32/objects/brush.c?rev=30603&r1=30602&r2=30603&view=diff
==============================================================================
--- trunk/reactos/dll/win32/gdi32/objects/brush.c (original)
+++ trunk/reactos/dll/win32/gdi32/objects/brush.c Tue Nov 20 22:56:57 2007
@@ -204,6 +204,18 @@
     return NtGdiPolyPatBlt(hdc, rop4, pPoly,Count,Mode);
 }
 
+/*
+ * @implemented
+ *
+ */
+int
+STDCALL
+GetROP2(HDC hdc)
+{
+  PDC_ATTR Dc_Attr;
+  if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr)) return 0;
+  return Dc_Attr->jROP2;
+}
 
 /*
  * @implemented

Modified: trunk/reactos/dll/win32/gdi32/objects/dc.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/gdi32/objects/dc.c?rev=30603&r1=30602&r2=30603&view=diff
==============================================================================
--- trunk/reactos/dll/win32/gdi32/objects/dc.c (original)
+++ trunk/reactos/dll/win32/gdi32/objects/dc.c Tue Nov 20 22:56:57 2007
@@ -823,53 +823,19 @@
     }
   }
   return OldColor;
-//  return NtUserSetDCPenColor(hdc, crColor);
-}
-
-/*
- * @implemented
+}
+
+/*
+ * @implemented
+ *
  */
 COLORREF
 STDCALL
-SetTextColor(
-	HDC hdc,
-	COLORREF crColor
-)
-{
-  PDC_ATTR Dc_Attr;
-  COLORREF OldColor = CLR_INVALID;
-
-  if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr)) return OldColor;
-#if 0
-  if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC)
-  {
-    if (GDI_HANDLE_GET_TYPE(hDC) == GDI_OBJECT_TYPE_METADC)
-      return MFDRV_SetTextColor( hDC, crColor );
-    else
-    {
-      PLDC pLDC = Dc_Attr->pvLDC;
-      if ( !pLDC )
-      {
-         SetLastError(ERROR_INVALID_HANDLE);
-         return FALSE;
-      }
-      if (pLDC->iType == LDC_EMFLDC)
-      {
-        if return EMFDRV_SetTextColor( hDC, crColor );
-      }
-    }
-  }
-#endif
-  OldColor = (COLORREF) Dc_Attr->ulForegroundClr;
-  Dc_Attr->ulForegroundClr = (ULONG) crColor;
-
-  if ( Dc_Attr->crForegroundClr != crColor )
-  {
-     Dc_Attr->ulDirty_ |= DIRTY_TEXT;
-     Dc_Attr->crForegroundClr = crColor;
-  }
-  return OldColor;
-//  return NtGdiSetTextColor(hdc, crColor);
+GetBkColor(HDC hdc)
+{
+  PDC_ATTR Dc_Attr;
+  if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr)) return 0;
+  return Dc_Attr->ulBackgroundClr;
 }
 
 /*
@@ -915,7 +881,58 @@
      Dc_Attr->crBackgroundClr = crColor;
   }
   return OldColor;
-//  return NtGdiSetBkColor(hdc, crColor);
+}
+
+/*
+ * @implemented
+ *
+ */
+int
+STDCALL
+GetBkMode(HDC hdc)
+{
+  PDC_ATTR Dc_Attr;
+  if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr)) return 0;
+  return Dc_Attr->lBkMode;
+}
+
+/*
+ * @implemented
+ *
+ */
+int
+STDCALL
+SetBkMode(HDC hdc,
+              int iBkMode)
+{
+  PDC_ATTR Dc_Attr;
+  INT OldMode = 0;
+
+  if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr)) return OldMode;
+#if 0
+  if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC)
+  {
+    if (GDI_HANDLE_GET_TYPE(hDC) == GDI_OBJECT_TYPE_METADC)
+      return MFDRV_SetBkMode( hdc, iBkMode )
+    else
+    {
+      PLDC pLDC = Dc_Attr->pvLDC;
+      if ( !pLDC )
+      {
+         SetLastError(ERROR_INVALID_HANDLE);
+         return FALSE;
+      }
+      if (pLDC->iType == LDC_EMFLDC)
+      {
+        if return EMFDRV_SetBkMode( hdc, iBkMode )
+      }
+    }
+  }
+#endif
+  OldMode = Dc_Attr->lBkMode;
+  Dc_Attr->jBkMode = iBkMode; // Processed
+  Dc_Attr->lBkMode = iBkMode; // Raw
+  return OldMode;
 }
 
 /*

Modified: trunk/reactos/dll/win32/gdi32/objects/text.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/gdi32/objects/text.c?rev=30603&r1=30602&r2=30603&view=diff
==============================================================================
--- trunk/reactos/dll/win32/gdi32/objects/text.c (original)
+++ trunk/reactos/dll/win32/gdi32/objects/text.c Tue Nov 20 22:56:57 2007
@@ -458,4 +458,117 @@
 // return GetAndSetDCDWord( hDC, GdiGetSetTextCharExtra, CharExtra, 0, 0, 0 );
 }
 
-
+/*
+ * @implemented
+ *
+ */
+UINT
+STDCALL
+GetTextAlign(HDC hdc)
+{
+  PDC_ATTR Dc_Attr;
+  if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr)) return 0;
+  return Dc_Attr->lTextAlign;
+}
+
+
+/*
+ * @implemented
+ *
+ */
+COLORREF
+STDCALL
+GetTextColor(HDC hdc)
+{
+  PDC_ATTR Dc_Attr;
+  if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr)) return 0;
+  return Dc_Attr->ulForegroundClr;
+}
+
+
+
+/*
+ * @unimplemented
+ */
+UINT
+STDCALL
+SetTextAlign(HDC hdc,
+             UINT fMode)
+{
+  PDC_ATTR Dc_Attr;
+  INT OldMode = 0;
+
+  if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr)) return OldMode;
+#if 0
+  if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC)
+  {
+    if (GDI_HANDLE_GET_TYPE(hDC) == GDI_OBJECT_TYPE_METADC)
+      return MFDRV_SetTextAlign( hdc, fMode )
+    else
+    {
+      PLDC pLDC = Dc_Attr->pvLDC;
+      if ( !pLDC )
+      {
+         SetLastError(ERROR_INVALID_HANDLE);
+         return FALSE;
+      }
+      if (pLDC->iType == LDC_EMFLDC)
+      {
+        if return EMFDRV_SetTextAlign( hdc, fMode )
+      }
+    }
+  }
+#endif
+  OldMode = Dc_Attr->lTextAlign;
+  Dc_Attr->lTextAlign = fMode; // Raw
+  Dc_Attr->flTextAlign = fMode & 0x1f;
+  return OldMode;
+
+}
+
+
+/*
+ * @implemented
+ */
+COLORREF
+STDCALL
+SetTextColor(
+	HDC hdc,
+	COLORREF crColor
+)
+{
+  PDC_ATTR Dc_Attr;
+  COLORREF OldColor = CLR_INVALID;
+
+  if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr)) return OldColor;
+#if 0
+  if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC)
+  {
+    if (GDI_HANDLE_GET_TYPE(hDC) == GDI_OBJECT_TYPE_METADC)
+      return MFDRV_SetTextColor( hDC, crColor );
+    else
+    {
+      PLDC pLDC = Dc_Attr->pvLDC;
+      if ( !pLDC )
+      {
+         SetLastError(ERROR_INVALID_HANDLE);
+         return FALSE;
+      }
+      if (pLDC->iType == LDC_EMFLDC)
+      {
+        if return EMFDRV_SetTextColor( hDC, crColor );
+      }
+    }
+  }
+#endif
+  OldColor = (COLORREF) Dc_Attr->ulForegroundClr;
+  Dc_Attr->ulForegroundClr = (ULONG) crColor;
+
+  if ( Dc_Attr->crForegroundClr != crColor )
+  {
+     Dc_Attr->ulDirty_ |= DIRTY_TEXT;
+     Dc_Attr->crForegroundClr = crColor;
+  }
+  return OldColor;
+}
+

Modified: trunk/reactos/include/reactos/win32k/ntgdibad.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/win32k/ntgdibad.h?rev=30603&r1=30602&r2=30603&view=diff
==============================================================================
--- trunk/reactos/include/reactos/win32k/ntgdibad.h (original)
+++ trunk/reactos/include/reactos/win32k/ntgdibad.h Tue Nov 20 22:56:57 2007
@@ -196,20 +196,6 @@
 NtGdiGetAspectRatioFilterEx(HDC  hDC,
                                  LPSIZE  AspectRatio);
 
-/* Should be done in user-mode using shared GDI Objects. */
-COLORREF STDCALL  NtGdiGetBkColor(HDC  hDC);
-
-/* Should be done in user-mode using shared GDI Objects. */
-INT STDCALL  NtGdiGetBkMode(HDC  hDC);
-
-/* Use NtGdiGetCharABCWidthsW */
-BOOL
-STDCALL
-NtGdiGetCharABCWidths(HDC  hDC,
-                           UINT  FirstChar,
-                           UINT  LastChar,
-                           LPABC  abc);
-
 /* Use NtGdiGetColorSpaceforBitmap. */
 HCOLORSPACE
 STDCALL
@@ -307,21 +293,12 @@
 INT STDCALL  NtGdiGetPolyFillMode(HDC  hDC);
 
 /* Should be done in user-mode using shared GDI Objects. */
-INT STDCALL  NtGdiGetROP2(HDC  hDC);
+INT STDCALL  NtGdiGetStretchBltMode(HDC  hDC);
 
 /* Should be done in user-mode using shared GDI Objects. */
-INT STDCALL  NtGdiGetStretchBltMode(HDC  hDC);
-
-/* Should be done in user-mode using shared GDI Objects. */
-UINT STDCALL  NtGdiGetTextAlign(HDC  hDC);
-
-/* Should be done in user-mode using shared GDI Objects. */
 UINT
 STDCALL
 NtGdiGetTextCharset(HDC  hDC);
-
-/* Needs to be done in user-mode, using shared GDI Object Attributes. */
-COLORREF STDCALL  NtGdiGetTextColor(HDC  hDC);
 
 /* Use NtGdiGetDCPoint with GdiGetViewPortExt */
 BOOL STDCALL  NtGdiGetViewportExtEx(HDC  hDC, LPSIZE viewportExt);
@@ -403,12 +380,6 @@
 
 /* Should be done in user-mode. */
 HGDIOBJ STDCALL  NtGdiSelectObject(HDC  hDC, HGDIOBJ  hGDIObj);
-
-/* Needs to be done in user-mode, using shared GDI Object Attributes. */
-COLORREF STDCALL NtGdiSetBkColor (HDC hDC, COLORREF Color);
-
-/* Needs to be done in user-mode, using shared GDI Object Attributes. */
-INT STDCALL  NtGdiSetBkMode(HDC  hDC, INT  backgroundMode);
 
 /* Use SetDIBitsToDevice in gdi32. */
 INT
@@ -455,19 +426,7 @@
 INT STDCALL  NtGdiSetPolyFillMode(HDC  hDC, INT polyFillMode);
 
 /* Needs to be done in user-mode, using shared GDI Object Attributes. */
-INT STDCALL  NtGdiSetROP2(HDC  hDC, INT  ROPmode);
-
-/* Needs to be done in user-mode, using shared GDI Object Attributes. */
 INT STDCALL  NtGdiSetStretchBltMode(HDC  hDC, INT  stretchBltMode);
-
-/* Needs to be done in user-mode, using shared GDI Object Attributes. */
-UINT
-STDCALL
-NtGdiSetTextAlign(HDC  hDC,
-                       UINT  Mode);
-
-/* Needs to be done in user-mode, using shared GDI Object Attributes. */
-COLORREF STDCALL  NtGdiSetTextColor(HDC hDC, COLORREF color);
 
 /* Needs to be done in user-mode. */
 BOOL
@@ -536,29 +495,6 @@
                           LPWSTR  Filename,
                           UINT  Command);
 
-/* All this Should be in user-mode, not NtUser calls. Especially not in GDI! */
-DWORD
-NTAPI
-NtUserCallTwoParam(
-  DWORD Param1,
-  DWORD Param2,
-  DWORD Routine);
-
-#define TWOPARAM_ROUTINE_SETDCPENCOLOR      0x45
-#define TWOPARAM_ROUTINE_SETDCBRUSHCOLOR    0x46
-#define TWOPARAM_ROUTINE_GETDCCOLOR         0x47
-
-#define NtUserGetDCBrushColor(hbr) \
-  (COLORREF)NtUserCallTwoParam((DWORD)(hbr), OBJ_BRUSH, TWOPARAM_ROUTINE_GETDCCOLOR)
-
-#define NtUserGetDCPenColor(hbr) \
-  (COLORREF)NtUserCallTwoParam((DWORD)(hbr), OBJ_PEN, TWOPARAM_ROUTINE_GETDCCOLOR)
-
-#define NtUserSetDCBrushColor(hbr, crColor) \
-  (COLORREF)NtUserCallTwoParam((DWORD)(hbr), (DWORD)crColor, TWOPARAM_ROUTINE_SETDCBRUSHCOLOR)
-
-#define NtUserSetDCPenColor(hbr, crColor) \
-  (COLORREF)NtUserCallTwoParam((DWORD)(hbr), (DWORD)crColor, TWOPARAM_ROUTINE_SETDCPENCOLOR)
 
 #endif /* WIN32K_NTGDI_BAD_INCLUDED */
 

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=30603&r1=30602&r2=30603&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/include/dc.h (original)
+++ trunk/reactos/subsystems/win32/win32k/include/dc.h Tue Nov 20 22:56:57 2007
@@ -104,6 +104,15 @@
 
 NTSTATUS STDCALL NtGdiFlushUserBatch(VOID);
 
+COLORREF FASTCALL NtGdiSetBkColor (HDC hDC, COLORREF Color);
+INT FASTCALL NtGdiSetBkMode(HDC  hDC, INT  backgroundMode);
+COLORREF STDCALL  NtGdiGetBkColor(HDC  hDC);
+INT STDCALL  NtGdiGetBkMode(HDC  hDC);
+COLORREF FASTCALL  NtGdiSetTextColor(HDC hDC, COLORREF color);
+UINT FASTCALL NtGdiSetTextAlign(HDC  hDC, UINT  Mode);
+UINT STDCALL  NtGdiGetTextAlign(HDC  hDC);
+COLORREF STDCALL  NtGdiGetTextColor(HDC  hDC);
+
 /* For Metafile and MetaEnhFile not in windows this struct taken from wine cvs 15/9-2006*/
 typedef struct
 {

Modified: trunk/reactos/subsystems/win32/win32k/include/intgdi.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/include/intgdi.h?rev=30603&r1=30602&r2=30603&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/include/intgdi.h (original)
+++ trunk/reactos/subsystems/win32/win32k/include/intgdi.h Tue Nov 20 22:56:57 2007
@@ -164,12 +164,6 @@
                CONST PDEVMODEW InitData,
                BOOL CreateAsIC);
 
-COLORREF FASTCALL
-IntGetDCColor(HDC hDC, ULONG Object);
-
-COLORREF FASTCALL
-IntSetDCColor(HDC hDC, ULONG Object, COLORREF Color);
-
 /* Coord functions */
 
 BOOL FASTCALL

Modified: trunk/reactos/subsystems/win32/win32k/ntuser/misc.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/ntuser/misc.c?rev=30603&r1=30602&r2=30603&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/ntuser/misc.c (original)
+++ trunk/reactos/subsystems/win32/win32k/ntuser/misc.c Tue Nov 20 22:56:57 2007
@@ -485,18 +485,6 @@
 
    switch(Routine)
    {
-      case TWOPARAM_ROUTINE_SETDCPENCOLOR:
-         {
-            RETURN( (DWORD)IntSetDCColor((HDC)Param1, OBJ_PEN, (COLORREF)Param2));
-         }
-      case TWOPARAM_ROUTINE_SETDCBRUSHCOLOR:
-         {
-            RETURN( (DWORD)IntSetDCColor((HDC)Param1, OBJ_BRUSH, (COLORREF)Param2));
-         }
-      case TWOPARAM_ROUTINE_GETDCCOLOR:
-         {
-            RETURN( (DWORD)IntGetDCColor((HDC)Param1, (ULONG)Param2));
-         }
       case TWOPARAM_ROUTINE_GETWINDOWRGNBOX:
          {
             DWORD Ret;

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=30603&r1=30602&r2=30603&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/objects/dc.c (original)
+++ trunk/reactos/subsystems/win32/win32k/objects/dc.c Tue Nov 20 22:56:57 2007
@@ -150,8 +150,11 @@
 
   NewDC->PalIndexed = OrigDC->PalIndexed;
   NewDC->w.hPalette = OrigDC->w.hPalette;
+  nDc_Attr->lTextAlign      = oDc_Attr->lTextAlign;
+  nDc_Attr->ulForegroundClr = oDc_Attr->ulForegroundClr;
+  nDc_Attr->ulBackgroundClr = oDc_Attr->ulBackgroundClr;
+  nDc_Attr->lBkMode         = oDc_Attr->lBkMode;
   nDc_Attr->crForegroundClr = oDc_Attr->crForegroundClr;
-  nDc_Attr->lTextAlign      = oDc_Attr->lTextAlign;
   nDc_Attr->crBackgroundClr = oDc_Attr->crBackgroundClr;
   nDc_Attr->jBkMode         = oDc_Attr->jBkMode;
   nDc_Attr->jROP2           = oDc_Attr->jROP2;
@@ -1203,8 +1206,11 @@
   nDc_Attr->jStretchBltMode = Dc_Attr->jStretchBltMode;
   nDc_Attr->lRelAbs         = Dc_Attr->lRelAbs;
   nDc_Attr->jBkMode         = Dc_Attr->jBkMode;
+  nDc_Attr->lBkMode         = Dc_Attr->lBkMode;
   nDc_Attr->crBackgroundClr = Dc_Attr->crBackgroundClr;
   nDc_Attr->crForegroundClr = Dc_Attr->crForegroundClr;
+  nDc_Attr->ulBackgroundClr = Dc_Attr->ulBackgroundClr;
+  nDc_Attr->ulForegroundClr = Dc_Attr->ulForegroundClr;
   nDc_Attr->ptlBrushOrigin  = Dc_Attr->ptlBrushOrigin;
   nDc_Attr->lTextAlign      = Dc_Attr->lTextAlign;
   nDc_Attr->lTextExtra      = Dc_Attr->lTextExtra;
@@ -1273,6 +1279,9 @@
   Dc_Attr->jBkMode         = sDc_Attr->jBkMode;
   Dc_Attr->crBackgroundClr = sDc_Attr->crBackgroundClr;
   Dc_Attr->crForegroundClr = sDc_Attr->crForegroundClr;
+  Dc_Attr->lBkMode         = sDc_Attr->lBkMode;
+  Dc_Attr->ulBackgroundClr = sDc_Attr->ulBackgroundClr;
+  Dc_Attr->ulForegroundClr = sDc_Attr->ulForegroundClr;
   Dc_Attr->ptlBrushOrigin  = sDc_Attr->ptlBrushOrigin;
 
   Dc_Attr->lTextAlign      = sDc_Attr->lTextAlign;
@@ -2579,42 +2588,6 @@
    return SurfObj->hsurf == PrimarySurface.Handle;
 }
 
-/*
- * Returns the color of the brush or pen that is currently selected into the DC.
- * This function is called from GetDCBrushColor() and GetDCPenColor()
- */
-COLORREF FASTCALL
-IntGetDCColor(HDC hDC, ULONG Object)
-{
-   /*
-    * The previous implementation was completly incorrect. It modified the
-    * brush that was currently selected into the device context, but in fact
-    * the DC pen/brush color should be stored directly in the device context
-    * (at address 0x2C of the user mode DC object memory on Windows 2K/XP).
-    * The actual color is then used when DC_BRUSH/DC_PEN object is selected
-    * into the device context and BRUSHOBJ for drawing is composed (belongs
-    * to IntGdiInitBrushInstance in the current ReactOS implementation). Also
-    * the implementation should be moved to user mode GDI32.dll when UM
-    * mapped GDI objects will be implemented.
-    */
-
-   DPRINT("WIN32K:IntGetDCColor is unimplemented\n");
-   return 0xFFFFFF; /* The default DC color. */
-}
-
-/*
- * Changes the color of the brush or pen that is currently selected into the DC.
- * This function is called from SetDCBrushColor() and SetDCPenColor()
- */
-COLORREF FASTCALL
-IntSetDCColor(HDC hDC, ULONG Object, COLORREF Color)
-{
-   /* See the comment in IntGetDCColor. */
-
-   DPRINT("WIN32K:IntSetDCColor is unimplemented\n");
-   return CLR_INVALID;
-}
-
 #define SIZEOF_DEVMODEW_300 188
 #define SIZEOF_DEVMODEW_400 212
 #define SIZEOF_DEVMODEW_500 220

Modified: trunk/reactos/subsystems/win32/win32k/objects/dcutil.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/objects/dcutil.c?rev=30603&r1=30602&r2=30603&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/objects/dcutil.c (original)
+++ trunk/reactos/subsystems/win32/win32k/objects/dcutil.c Tue Nov 20 22:56:57 2007
@@ -157,14 +157,13 @@
 DC_GET_VAL_EX( GetWindowOrgEx, ptlWindowOrg.x, ptlWindowOrg.y, POINT, x, y )
 DC_GET_VAL_EX ( GetCurrentPositionEx, ptlCurrent.x, ptlCurrent.y, POINT, x, y )
 
-DC_SET_MODE( NtGdiSetBkMode, jBkMode, TRANSPARENT, OPAQUE )
 DC_SET_MODE( NtGdiSetPolyFillMode, jFillMode, ALTERNATE, WINDING )
 DC_SET_MODE( NtGdiSetROP2, jROP2, R2_BLACK, R2_WHITE )
 DC_SET_MODE( NtGdiSetStretchBltMode, jStretchBltMode, BLACKONWHITE, HALFTONE )
 
 
 
-COLORREF STDCALL
+COLORREF FASTCALL
 NtGdiSetBkColor(HDC hDC, COLORREF color)
 {
   COLORREF oldColor;
@@ -181,9 +180,80 @@
   if (!Dc_Attr) Dc_Attr = &dc->Dc_Attr;
   oldColor = Dc_Attr->crBackgroundClr;
   Dc_Attr->crBackgroundClr = color;
+  Dc_Attr->ulBackgroundClr = (ULONG)color;
+  Dc_Attr->ulDirty_ &= ~DIRTY_LINE; // Clear Flag if set.
   hBrush = Dc_Attr->hbrush;
   DC_UnlockDc(dc);
   NtGdiSelectObject(hDC, hBrush);
   return oldColor;
 }
 
+INT FASTCALL
+NtGdiSetBkMode(HDC hDC, INT Mode)
+{
+  COLORREF oldMode;
+  PDC dc;
+  PDC_ATTR Dc_Attr;
+
+  if (!(dc = DC_LockDc(hDC)))
+  {
+    SetLastWin32Error(ERROR_INVALID_HANDLE);
+    return CLR_INVALID;
+  }
+  Dc_Attr = dc->pDc_Attr;
+  if (!Dc_Attr) Dc_Attr = &dc->Dc_Attr;
+  oldMode = Dc_Attr->lBkMode;
+  Dc_Attr->jBkMode = Mode;
+  Dc_Attr->lBkMode = Mode;
+  DC_UnlockDc(dc);
+  return oldMode;
+}
+
+UINT
+FASTCALL
+NtGdiSetTextAlign(HDC  hDC,
+                       UINT  Mode)
+{
+  UINT prevAlign;
+  DC *dc;
+  PDC_ATTR Dc_Attr;
+
+  dc = DC_LockDc(hDC);
+  if (!dc)
+    {
+      SetLastWin32Error(ERROR_INVALID_HANDLE);
+      return GDI_ERROR;
+    }
+  Dc_Attr = dc->pDc_Attr;
+  if(!Dc_Attr) Dc_Attr = &dc->Dc_Attr;
+  prevAlign = Dc_Attr->lTextAlign;
+  Dc_Attr->lTextAlign = Mode;
+  DC_UnlockDc( dc );
+  return  prevAlign;
+}
+
+COLORREF
+FASTCALL
+NtGdiSetTextColor(HDC hDC,
+                 COLORREF color)
+{
+  COLORREF  oldColor;
+  PDC  dc = DC_LockDc(hDC);
+  PDC_ATTR Dc_Attr;
+  HBRUSH hBrush;
+
+  if (!dc)
+  {
+    SetLastWin32Error(ERROR_INVALID_HANDLE);
+    return CLR_INVALID;
+  }
+  Dc_Attr = dc->pDc_Attr;
+  if(!Dc_Attr) Dc_Attr = &dc->Dc_Attr;
+
+  oldColor = Dc_Attr->crForegroundClr;
+  Dc_Attr->crForegroundClr = color;
+  hBrush = Dc_Attr->hbrush;
+  DC_UnlockDc( dc );
+  NtGdiSelectObject(hDC, hBrush);
+  return  oldColor;
+}

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=30603&r1=30602&r2=30603&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/objects/text.c (original)
+++ trunk/reactos/subsystems/win32/win32k/objects/text.c Tue Nov 20 22:56:57 2007
@@ -4029,54 +4029,6 @@
   return 0;
 }
 
-UINT
-STDCALL
-NtGdiSetTextAlign(HDC  hDC,
-                       UINT  Mode)
-{
-  UINT prevAlign;
-  DC *dc;
-  PDC_ATTR Dc_Attr;
-
-  dc = DC_LockDc(hDC);
-  if (!dc)
-    {
-      SetLastWin32Error(ERROR_INVALID_HANDLE);
-      return GDI_ERROR;
-    }
-  Dc_Attr = dc->pDc_Attr;
-  if(!Dc_Attr) Dc_Attr = &dc->Dc_Attr;
-  prevAlign = Dc_Attr->lTextAlign;
-  Dc_Attr->lTextAlign = Mode;
-  DC_UnlockDc( dc );
-  return  prevAlign;
-}
-
-COLORREF
-STDCALL
-NtGdiSetTextColor(HDC hDC,
-                 COLORREF color)
-{
-  COLORREF  oldColor;
-  PDC  dc = DC_LockDc(hDC);
-  PDC_ATTR Dc_Attr;
-  HBRUSH hBrush;
-
-  if (!dc)
-  {
-    SetLastWin32Error(ERROR_INVALID_HANDLE);
-    return CLR_INVALID;
-  }
-  Dc_Attr = dc->pDc_Attr;
-  if(!Dc_Attr) Dc_Attr = &dc->Dc_Attr;
-
-  oldColor = Dc_Attr->crForegroundClr;
-  Dc_Attr->crForegroundClr = color;
-  hBrush = Dc_Attr->hbrush;
-  DC_UnlockDc( dc );
-  NtGdiSelectObject(hDC, hBrush);
-  return  oldColor;
-}
 
 BOOL
 STDCALL

Modified: trunk/reactos/subsystems/win32/win32k/w32ksvc.db
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/w32ksvc.db?rev=30603&r1=30602&r2=30603&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/w32ksvc.db (original)
+++ trunk/reactos/subsystems/win32/win32k/w32ksvc.db Tue Nov 20 22:56:57 2007
@@ -679,18 +679,13 @@
 #
 #ReactOS specify syscall 
 NtGdiSelectObject                       2
-NtGdiSetBkColor                         2
-NtGdiSetBkMode                          2
 NtGdiSetDIBits                          7
 NtGdiSetEnhMetaFileBits                 2
 NtGdiSetGraphicsMode                    2
 NtGdiSetICMProfile                      2
 NtGdiSetMapperFlags                     2
 NtGdiSetPolyFillMode                    2
-NtGdiSetROP2                            2
 NtGdiSetStretchBltMode                  2
-NtGdiSetTextAlign                       2
-NtGdiSetTextColor                       2
 NtGdiSetViewportExtEx                   4
 NtGdiSetViewportOrgEx                   4
 NtGdiSetWindowExtEx                     4
@@ -744,8 +739,6 @@
 NtGdiExtTextOut                         8
 NtGdiGdiComment                         3
 NtGdiGetAspectRatioFilterEx             2
-NtGdiGetBkColor                         1
-NtGdiGetBkMode                          1
 NtGdiGetColorSpace                      1
 NtGdiGetCurrentPositionEx               2
 NtGdiGetEnhMetaFile                     1
@@ -762,10 +755,7 @@
 NtGdiGetMapMode                         1
 NtGdiGetPixelFormat                     1
 NtGdiGetPolyFillMode                    1
-NtGdiGetROP2                            1
 NtGdiGetStretchBltMode                  1
-NtGdiGetTextAlign                       1
-NtGdiGetTextColor                       1
 NtGdiGetTextExtentPoint32               4
 NtGdiMoveToEx                           4
 NtGdiOffsetViewportOrgEx                4




More information about the Ros-diffs mailing list