Author: tkreuzer
Date: Tue Dec 30 19:38:37 2014
New Revision: 65911
URL: http://svn.reactos.org/svn/reactos?rev=65911&view=rev
Log:
[WIN32K]
Simplify updating prgnVis in NtGdiSelectBitmap
Modified:
trunk/reactos/win32ss/gdi/ntgdi/dcobjs.c
Modified: trunk/reactos/win32ss/gdi/ntgdi/dcobjs.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/ntgdi/dcobjs.c…
==============================================================================
--- trunk/reactos/win32ss/gdi/ntgdi/dcobjs.c [iso-8859-1] (original)
+++ trunk/reactos/win32ss/gdi/ntgdi/dcobjs.c [iso-8859-1] Tue Dec 30 19:38:37 2014
@@ -230,6 +230,7 @@
return NULL;
}
+ /// FIXME: we shouldn't dereference pSurface when the PDEV is not locked
/* Is this a valid palette for this depth? */
if ((!pdc->dclevel.pSurface) ||
(BitsPerFormat(pdc->dclevel.pSurface->SurfObj.iBitmapFormat) <= 8
@@ -356,7 +357,6 @@
PDC pdc;
HBITMAP hbmpOld;
PSURFACE psurfNew, psurfOld;
- PREGION VisRgn;
HDC hdcOld;
ASSERT_NOGDILOCKS();
@@ -419,7 +419,7 @@
return NULL;
}
- /* Check if the bitmap is compatile with the dc */
+ /* Check if the bitmap is compatible with the dc */
if (!DC_bIsBitmapCompatible(pdc, psurfNew))
{
/* Dereference the bitmap, unlock the DC and fail. */
@@ -470,20 +470,15 @@
SURFACE_ShareUnlockSurface(psurfOld);
}
- /* Mark the dc brushes invalid */
+ /* Mark the DC brushes invalid */
pdc->pdcattr->ulDirty_ |= DIRTY_FILL | DIRTY_LINE;
- /* FIXME: Improve by using a region without a handle and selecting it */
- VisRgn = IntSysCreateRectpRgn( 0,
- 0,
- pdc->dclevel.sizl.cx,
- pdc->dclevel.sizl.cy);
-
- if (VisRgn)
- {
- GdiSelectVisRgn(hdc, VisRgn);
- REGION_Delete(VisRgn);
- }
+ /* Update the system region */
+ REGION_SetRectRgn(pdc->prgnVis,
+ 0,
+ 0,
+ pdc->dclevel.sizl.cx,
+ pdc->dclevel.sizl.cy);
/* Unlock the DC */
DC_UnlockDc(pdc);