Author: tkreuzer
Date: Wed Dec 31 15:15:39 2014
New Revision: 65918
URL: http://svn.reactos.org/svn/reactos?rev=65918&view=rev
Log:
[WIN32K]
Fix calculation of the source point in EngCopyBits for complex clipping regions. One might assume that this function is so essential, that it would do at least the most basic stuff correctly, but ...
Modified:
trunk/reactos/win32ss/gdi/eng/copybits.c
Modified: trunk/reactos/win32ss/gdi/eng/copybits.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/eng/copybits.c…
==============================================================================
--- trunk/reactos/win32ss/gdi/eng/copybits.c [iso-8859-1] (original)
+++ trunk/reactos/win32ss/gdi/eng/copybits.c [iso-8859-1] Wed Dec 31 15:15:39 2014
@@ -146,8 +146,8 @@
{
RECTL_bIntersectRect(&BltInfo.DestRect, prcl, DestRect);
- BltInfo.SourcePoint.x = SourcePoint->x + prcl->left - DestRect->left;
- BltInfo.SourcePoint.y = SourcePoint->y + prcl->top - DestRect->top;
+ BltInfo.SourcePoint.x = SourcePoint->x + BltInfo.DestRect.left - DestRect->left;
+ BltInfo.SourcePoint.y = SourcePoint->y + BltInfo.DestRect.top - DestRect->top;
if (!DibFunctionsForBitmapFormat[psoDest->iBitmapFormat].DIB_BitBltSrcCopy(&BltInfo))
{
Author: pschweitzer
Date: Wed Dec 31 13:04:04 2014
New Revision: 65917
URL: http://svn.reactos.org/svn/reactos?rev=65917&view=rev
Log:
[FREELDR]
Display an error message with the file name in case we cannot get a file size over PXE.
This makes the error message "(../../boot/freeldr/freeldr/fs/pxe.c:107) err: PxeCall(0x25, 0000E8DE) failed with exit=1 status=0x1" in case of PXE boot less dramatic: it is expected not to find NTBOOTDD.SYS
Modified:
trunk/reactos/boot/freeldr/freeldr/fs/pxe.c
Modified: trunk/reactos/boot/freeldr/freeldr/fs/pxe.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/fs/px…
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/fs/pxe.c [iso-8859-1] (original)
+++ trunk/reactos/boot/freeldr/freeldr/fs/pxe.c [iso-8859-1] Wed Dec 31 13:04:04 2014
@@ -162,7 +162,11 @@
sizeData.ServerIPAddress = _ServerIP;
strncpy((CHAR*)sizeData.FileName, Path, sizeof(sizeData.FileName));
if (!CallPxe(PXENV_TFTP_GET_FSIZE, &sizeData))
+ {
+ ERR("Failed to get '%s' size\n", Path);
return EIO;
+ }
+
_FileSize = sizeData.FileSize;
if (_FileSize < 1024 * 1024)
{
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);