Rename and add new internal functions.
authorJames Tabor <james.tabor@reactos.org>
Tue, 27 May 2008 01:38:01 +0000 (01:38 +0000)
committerJames Tabor <james.tabor@reactos.org>
Tue, 27 May 2008 01:38:01 +0000 (01:38 +0000)
svn path=/trunk/; revision=33723

reactos/subsystems/win32/win32k/include/cliprgn.h
reactos/subsystems/win32/win32k/include/region.h
reactos/subsystems/win32/win32k/ntuser/desktop.c
reactos/subsystems/win32/win32k/ntuser/painting.c
reactos/subsystems/win32/win32k/ntuser/windc.c
reactos/subsystems/win32/win32k/objects/cliprgn.c
reactos/subsystems/win32/win32k/objects/dc.c
reactos/subsystems/win32/win32k/objects/path.c
reactos/subsystems/win32/win32k/objects/region.c

index 7c091b5..6610b2d 100644 (file)
@@ -4,9 +4,12 @@
 #include <include/dc.h>
 #include <include/region.h>
 
-INT FASTCALL IntGdiGetClipBox(HDC hDC, LPRECT rc);
-INT STDCALL IntGdiSelectVisRgn(HDC hdc, HRGN hrgn);
-INT STDCALL IntGdiExtSelectClipRgn (PDC dc, HRGN hrgn, int fnMode);
+INT FASTCALL IntGdiGetClipBox(PDC, LPRECT rc);
+INT FASTCALL IntGdiSelectVisRgn(PDC, PROSRGNDATA);
+INT FASTCALL IntGdiExtSelectClipRgn (PDC, PROSRGNDATA, int);
 
+INT FASTCALL GdiGetClipBox(HDC hDC, LPRECT rc);
+INT FASTCALL GdiSelectVisRgn(HDC hdc, HRGN hrgn);
+INT FASTCALL GdiExtSelectClipRgn (PDC dc, HRGN hrgn, int fnMode);
 
 #endif /* not __WIN32K_CLIPRGN_H */
index be02ea8..f6d1bb8 100644 (file)
@@ -40,6 +40,7 @@ HRGN FASTCALL GdiCreatePolyPolygonRgn(CONST PPOINT, CONST PINT, INT, INT );
 
 INT FASTCALL IntGdiCombineRgn(PROSRGNDATA, PROSRGNDATA, PROSRGNDATA, INT);
 INT FASTCALL REGION_Complexity(PROSRGNDATA);
+PROSRGNDATA FASTCALL IntGdiCreateRectRgn(INT, INT, INT, INT);
 
 #define UnsafeIntCreateRectRgnIndirect(prc) \
   NtGdiCreateRectRgn((prc)->left, (prc)->top, (prc)->right, (prc)->bottom)
index 4ac6e11..5c43ecb 100644 (file)
@@ -1,3 +1,4 @@
+
 /*
  *  ReactOS W32 Subsystem
  *  Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 ReactOS Team
@@ -1365,8 +1366,7 @@ NtUserPaintDesktop(HDC hDC)
    UserEnterExclusive();
    DPRINT("Enter NtUserPaintDesktop\n");
 
-
-   IntGdiGetClipBox(hDC, &Rect);
+   GdiGetClipBox(hDC, &Rect);
 
    hWndDesktop = IntGetDesktopWindow();
 
index 4559aa6..cd9b474 100644 (file)
@@ -1158,7 +1158,7 @@ UserScrollDC(HDC hDC, INT dx, INT dy, const RECT *prcScroll,
    RECT rcScroll, rcClip, rcSrc, rcDst;
    INT Result;
 
-   IntGdiGetClipBox(hDC, &rcClip);
+   GdiGetClipBox(hDC, &rcClip);
    rcScroll = rcClip;
    if (prcClip)
    {
index bf251d0..06172ed 100644 (file)
@@ -341,7 +341,7 @@ noparent:
    }
 
    Dce->DCXFlags &= ~DCX_DCEDIRTY;
-   IntGdiSelectVisRgn(Dce->hDC, hRgnVisible);
+   GdiSelectVisRgn(Dce->hDC, hRgnVisible);
 
    if (Window != NULL)
    {
index 7143fc4..ce37671 100644 (file)
@@ -16,7 +16,6 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
-/* $Id$ */
 
 #include <w32k.h>
 
@@ -59,8 +58,8 @@ CLIPPING_UpdateGCRegion(DC* Dc)
    return NtGdiOffsetRgn(Dc->w.hGCClipRgn, -Dc->w.DCOrgX, -Dc->w.DCOrgY);
 }
 
-INT STDCALL
-IntGdiSelectVisRgn(HDC hdc, HRGN hrgn)
+INT FASTCALL
+GdiSelectVisRgn(HDC hdc, HRGN hrgn)
 {
   int retval;
   DC *dc;
@@ -96,9 +95,9 @@ IntGdiSelectVisRgn(HDC hdc, HRGN hrgn)
 }
 
 
-int STDCALL IntGdiExtSelectClipRgn(PDC dc,
-                                HRGN hrgn,
-                                int fnMode)
+int FASTCALL GdiExtSelectClipRgn(PDC dc,
+                              HRGN hrgn,
+                             int fnMode)
 {
   int retval;
   //  dc->DC_Flags &= ~DC_FLAG_DIRTY_RAO;
@@ -151,8 +150,8 @@ int STDCALL IntGdiExtSelectClipRgn(PDC dc,
 
 
 int STDCALL NtGdiExtSelectClipRgn(HDC  hDC,
-                          HRGN  hrgn,
-                          int  fnMode)
+                                HRGN  hrgn,
+                               int  fnMode)
 {
   int retval;
   DC *dc;
@@ -163,14 +162,14 @@ int STDCALL NtGdiExtSelectClipRgn(HDC  hDC,
        return ERROR;
   }
 
-  retval = IntGdiExtSelectClipRgn ( dc, hrgn, fnMode );
+  retval = GdiExtSelectClipRgn ( dc, hrgn, fnMode );
 
   DC_UnlockDc(dc);
   return retval;
 }
 
 INT FASTCALL
-IntGdiGetClipBox(HDC hDC, LPRECT rc)
+GdiGetClipBox(HDC hDC, LPRECT rc)
 {
    PROSRGNDATA Rgn;
    INT retval;
@@ -201,7 +200,7 @@ NtGdiGetAppClipBox(HDC hDC, LPRECT rc)
   NTSTATUS Status = STATUS_SUCCESS;
   RECT Saferect;
 
-  Ret = IntGdiGetClipBox(hDC, &Saferect);
+  Ret = GdiGetClipBox(hDC, &Saferect);
 
   _SEH_TRY
   {
@@ -434,18 +433,15 @@ IntGdiSetMetaRgn(PDC pDC)
   {
      if ( pDC->DcLevel.prgnClip )
      {
-        TempRgn = REGION_AllocRgnWithHandle(1);
-
+        TempRgn = IntGdiCreateRectRgn(0,0,0,0);
         if (TempRgn)
-        {
-           REGION_SetRectRgn(TempRgn, 0, 0, 0, 0);
+        {        
            Ret = IntGdiCombineRgn( TempRgn,
                      pDC->DcLevel.prgnMeta,
                      pDC->DcLevel.prgnClip,
                                    RGN_AND);
            if ( Ret )
            {
-              REGION_UnlockRgn(TempRgn);
               TempRgn = GDIOBJ_ShareLockObj(TempRgn->BaseObject.hHmgr,
                                               GDI_OBJECT_TYPE_REGION);
 
@@ -465,8 +461,7 @@ IntGdiSetMetaRgn(PDC pDC)
               pDC->erclClip.left   = 0;
               pDC->erclClip.top    = 0;
               pDC->erclClip.right  = 0;
-              pDC->erclClip.bottom = 0;
-              
+              pDC->erclClip.bottom = 0;              
            }
            else
               REGION_FreeRgn(TempRgn);
index 51e9708..6219b6b 100644 (file)
@@ -156,7 +156,7 @@ NtGdiCreateCompatibleDC(HDC hDC)
   }
 
   hVisRgn = NtGdiCreateRectRgn(0, 0, 1, 1);
-  IntGdiSelectVisRgn(hNewDC, hVisRgn);
+  GdiSelectVisRgn(hNewDC, hVisRgn);
   if (Layout) NtGdiSetLayout( hNewDC, -1, Layout);
 
   DC_InitDC(hNewDC);
@@ -841,7 +841,7 @@ IntGdiCreateDC(PUNICODE_STRING Driver,
 
     hVisRgn = NtGdiCreateRectRgn(0, 0, ((PGDIDEVICE)NewDC->pPDev)->GDIInfo.ulHorzRes,
                                  ((PGDIDEVICE)NewDC->pPDev)->GDIInfo.ulVertRes);
-    IntGdiSelectVisRgn(hNewDC, hVisRgn);
+    GdiSelectVisRgn(hNewDC, hVisRgn);
 
     /*  Initialize the DC state  */
     DC_InitDC(hNewDC);
@@ -1472,7 +1472,7 @@ IntGdiCopyFromSaveState(PDC dc, PDC dcs, HDC hDC)
   }
   DC_UnlockDc ( dc );
 #else
-  IntGdiExtSelectClipRgn(dc, dcs->w.hClipRgn, RGN_COPY);
+  GdiExtSelectClipRgn(dc, dcs->w.hClipRgn, RGN_COPY);
   DC_UnlockDc ( dc );
 #endif
   if(!hDC) return; // Not a MemoryDC or SaveLevel DC, return.
@@ -1992,7 +1992,7 @@ NtGdiSelectBitmap(
 
     hVisRgn = NtGdiCreateRectRgn(0, 0, pBmp->SurfObj.sizlBitmap.cx, pBmp->SurfObj.sizlBitmap.cy);
     BITMAPOBJ_UnlockBitmap(pBmp);
-    IntGdiSelectVisRgn(hDC, hVisRgn);
+    GdiSelectVisRgn(hDC, hVisRgn);
 
     return hOrgBmp;
 }
index 855e21e..7ad751d 100644 (file)
@@ -367,7 +367,7 @@ BOOL STDCALL NtGdiSelectClipPath(HDC  hDC,
  /* Construct a region from the path */
  else if( PATH_PathToRegion( &dc->w.path, Dc_Attr->jFillMode, &hrgnPath ) )
  {
-   success = IntGdiExtSelectClipRgn( dc, hrgnPath, Mode ) != ERROR;
+   success = GdiExtSelectClipRgn( dc, hrgnPath, Mode ) != ERROR;
    NtGdiDeleteObject( hrgnPath );
 
    /* Empty the path */
index 033cf25..cf4489a 100644 (file)
@@ -1181,6 +1181,7 @@ REGION_RegionOp(
             ASSERT(newReg->Buffer);
         }
     }
+    newReg->rdh.iType = RDH_RECTANGLES;
 
     if (oldRects != &newReg->rdh.rcBound)
         ExFreePool(oldRects);
@@ -2209,6 +2210,21 @@ NtGdiCreateEllipticRgn(
                                    Right - Left, Bottom - Top);
 }
 
+PROSRGNDATA
+FASTCALL
+IntGdiCreateRectRgn(INT LeftRect, INT TopRect, INT RightRect, INT BottomRect)
+{
+  PROSRGNDATA pRgn;
+
+  if (!(pRgn = REGION_AllocRgnWithHandle(1))) return NULL;
+
+  REGION_SetRectRgn(pRgn, LeftRect, TopRect, RightRect, BottomRect);
+  REGION_UnlockRgn(pRgn);
+
+  return pRgn;
+}
+
+
 HRGN STDCALL
 NtGdiCreateRectRgn(INT LeftRect, INT TopRect, INT RightRect, INT BottomRect)
 {
@@ -2227,9 +2243,9 @@ NtGdiCreateRectRgn(INT LeftRect, INT TopRect, INT RightRect, INT BottomRect)
     REGION_UnlockRgn(pRgn);
 
     return hRgn;
-
 }
 
+
 HRGN
 STDCALL
 NtGdiCreateRoundRectRgn(
@@ -2595,7 +2611,7 @@ NtGdiGetRandomRgn(
     {
     case CLIPRGN:
         hSrc = pDC->w.hClipRgn;
-//        if (dc->DcLevel.prgnClip) hSrc = ((PROSRGNDATA)dc->DcLevel.prgnClip)->BaseObject.hHmgr;
+//        if (pDC->DcLevel.prgnClip) hSrc = ((PROSRGNDATA)pDC->DcLevel.prgnClip)->BaseObject.hHmgr;
         break;
     case METARGN:
         if (pDC->DcLevel.prgnMeta) hSrc = ((PROSRGNDATA)pDC->DcLevel.prgnMeta)->BaseObject.hHmgr;
@@ -2603,16 +2619,15 @@ NtGdiGetRandomRgn(
     case APIRGN:
         DPRINT1("hMetaRgn not implemented\n");
         //hSrc = dc->hMetaClipRgn;
-        if (!hSrc)
-        {
-            hSrc = pDC->w.hClipRgn;
-        }
+        if (!hSrc) hSrc = pDC->w.hClipRgn;
         //if (!hSrc) rgn = dc->hMetaRgn;
-//        if (dc->prgnAPI) hSrc = ((PROSRGNDATA)dc->prgnAPI)->BaseObject.hHmgr;
+//        if (pDC->prgnAPI) hSrc = ((PROSRGNDATA)pDC->prgnAPI)->BaseObject.hHmgr;
+//        else if (pDC->DcLevel.prgnClip) hSrc = ((PROSRGNDATA)pDC->DcLevel.prgnClip)->BaseObject.hHmgr;
+//        else if (pDC->DcLevel.prgnMeta) hSrc = ((PROSRGNDATA)pDC->DcLevel.prgnMeta)->BaseObject.hHmgr;
         break;
     case SYSRGN:
         hSrc = pDC->w.hVisRgn;
-//        if (dc->prgnVis) hSrc = ((PROSRGNDATA)dc->prgnVis)->BaseObject.hHmgr;
+//        if (pDC->prgnVis) hSrc = ((PROSRGNDATA)pDC->prgnVis)->BaseObject.hHmgr;
         break;
     default:
         hSrc = 0;
@@ -3568,17 +3583,17 @@ IntCreatePolyPolgonRgn(
 {
     HRGN hrgn;
     ROSRGNDATA *region;
-    EdgeTableEntry *pAET;   /* Active Edge Table       */
-    INT y;                /* current scanline        */
-    int iPts = 0;           /* number of pts in buffer */
-    EdgeTableEntry *pWETE;  /* Winding Edge Table Entry*/
-    ScanLineList *pSLL;     /* current scanLineList    */
-    POINT *pts;           /* output buffer           */
-    EdgeTableEntry *pPrevAET;        /* ptr to previous AET     */
-    EdgeTable ET;                    /* header node for ET      */
-    EdgeTableEntry AET;              /* header node for AET     */
-    EdgeTableEntry *pETEs;           /* EdgeTableEntries pool   */
-    ScanLineListBlock SLLBlock;      /* header for scanlinelist */
+    EdgeTableEntry *pAET;     /* Active Edge Table       */
+    INT y;                    /* current scanline        */
+    int iPts = 0;             /* number of pts in buffer */
+    EdgeTableEntry *pWETE;    /* Winding Edge Table Entry*/
+    ScanLineList *pSLL;       /* current scanLineList    */
+    POINT *pts;               /* output buffer           */
+    EdgeTableEntry *pPrevAET; /* ptr to previous AET     */
+    EdgeTable ET;             /* header node for ET      */
+    EdgeTableEntry AET;       /* header node for AET     */
+    EdgeTableEntry *pETEs;    /* EdgeTableEntries pool   */
+    ScanLineListBlock SLLBlock; /* header for scanlinelist */
     int fixWAET = FALSE;
     POINTBLOCK FirstPtBlock, *curPtBlock; /* PtBlock buffers    */
     POINTBLOCK *tmpPtBlock;