[WIN32K]
authorJérôme Gardou <jerome.gardou@reactos.org>
Wed, 14 Jul 2010 16:12:32 +0000 (16:12 +0000)
committerJérôme Gardou <jerome.gardou@reactos.org>
Wed, 14 Jul 2010 16:12:32 +0000 (16:12 +0000)
  - Properly initialize hVisRgn in CLIPPING_UpdateGCRegion
This fixes a whole bunch of "IntGdiCombineRgn requires hSrc2 != NULL for combine mode 1!", and probably some bugs.
Dedicated to encod3d.

svn path=/trunk/; revision=48042

reactos/subsystems/win32/win32k/objects/cliprgn.c

index ea88cf3..7bfcf80 100644 (file)
@@ -26,7 +26,7 @@ int FASTCALL
 CLIPPING_UpdateGCRegion(DC* Dc)
 {
    PROSRGNDATA CombinedRegion;
 CLIPPING_UpdateGCRegion(DC* Dc)
 {
    PROSRGNDATA CombinedRegion;
-   HRGN hRgnVis = NULL;
+   HRGN hRgnVis = Dc->prgnVis->BaseObject.hHmgr;
 
    /* Experiment with API region based on wine.. */
    if (Dc->rosdc.hClipRgn && Dc->dclevel.prgnMeta)
 
    /* Experiment with API region based on wine.. */
    if (Dc->rosdc.hClipRgn && Dc->dclevel.prgnMeta)
@@ -56,7 +56,7 @@ CLIPPING_UpdateGCRegion(DC* Dc)
       Dc->rosdc.hGCClipRgn = IntSysCreateRectRgn(0, 0, 0, 0);
 
    if (Dc->rosdc.hClipRgn == NULL)
       Dc->rosdc.hGCClipRgn = IntSysCreateRectRgn(0, 0, 0, 0);
 
    if (Dc->rosdc.hClipRgn == NULL)
-      NtGdiCombineRgn(Dc->rosdc.hGCClipRgn, ((PROSRGNDATA)Dc->prgnVis)->BaseObject.hHmgr, 0, RGN_COPY);
+      NtGdiCombineRgn(Dc->rosdc.hGCClipRgn, hRgnVis, 0, RGN_COPY);
    else
       NtGdiCombineRgn(Dc->rosdc.hGCClipRgn, Dc->rosdc.hClipRgn, hRgnVis, RGN_AND);
 
    else
       NtGdiCombineRgn(Dc->rosdc.hGCClipRgn, Dc->rosdc.hClipRgn, hRgnVis, RGN_AND);