Author: greatlrd Date: Thu Aug 9 14:11:47 2007 New Revision: 28261
URL: http://svn.reactos.org/svn/reactos?rev=28261&view=rev Log: win32k Implement NtGdiEngStretchBlt, NtGdiEngLockSurface
gdi32 Implement EngStretchBlt, EngLockSurface
Fix small typo in NtGdiEngBitBlt
Modified: trunk/reactos/dll/win32/gdi32/gdi32.def trunk/reactos/dll/win32/gdi32/misc/stubs.c trunk/reactos/subsystems/win32/win32k/eng/bitblt.c trunk/reactos/subsystems/win32/win32k/eng/surface.c trunk/reactos/subsystems/win32/win32k/w32ksvc.db
Modified: trunk/reactos/dll/win32/gdi32/gdi32.def URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/gdi32/gdi32.def?r... ============================================================================== --- trunk/reactos/dll/win32/gdi32/gdi32.def (original) +++ trunk/reactos/dll/win32/gdi32/gdi32.def Thu Aug 9 14:11:47 2007 @@ -189,7 +189,7 @@ EngGradientFill@40 EngLineTo@36 EngLoadModule@4 -EngLockSurface@4 +EngLockSurface@4=NtGdiEngLockSurface@4 EngMarkBandingSurface@4 EngMultiByteToUnicodeN@20 EngMultiByteToWideChar@20 @@ -198,7 +198,7 @@ EngQueryEMFInfo@8 EngQueryLocalTime@4 EngReleaseSemaphore@4 -EngStretchBlt@44 +EngStretchBlt@44=NtGdiEngStretchBlt@44 EngStretchBltROP@52 EngStrokeAndFillPath@40 EngStrokePath@32
Modified: trunk/reactos/dll/win32/gdi32/misc/stubs.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/gdi32/misc/stubs.... ============================================================================== --- trunk/reactos/dll/win32/gdi32/misc/stubs.c (original) +++ trunk/reactos/dll/win32/gdi32/misc/stubs.c Thu Aug 9 14:11:47 2007 @@ -2842,16 +2842,6 @@ return 0; }
-/* - * @unimplemented - */ -SURFOBJ * STDCALL -EngLockSurface(IN HSURF Surface) -{ - UNIMPLEMENTED; - SetLastError(ERROR_CALL_NOT_IMPLEMENTED); - return 0; -}
/* * @unimplemented @@ -2947,16 +2937,7 @@ SetLastError(ERROR_CALL_NOT_IMPLEMENTED); }
-/* - * @unimplemented - */ -BOOL STDCALL -EngStretchBlt(SURFOBJ *psoDest,SURFOBJ *psoSrc,SURFOBJ *psoMask,CLIPOBJ *pco,XLATEOBJ *pxlo,COLORADJUSTMENT *pca,POINTL *pptlHTOrg,RECTL *prclDest,RECTL *prclSrc,POINTL *pptlMask,ULONG iMode) -{ - UNIMPLEMENTED; - SetLastError(ERROR_CALL_NOT_IMPLEMENTED); - return 0; -} +
/* * @unimplemented
Modified: trunk/reactos/subsystems/win32/win32k/eng/bitblt.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/eng... ============================================================================== --- trunk/reactos/subsystems/win32/win32k/eng/bitblt.c (original) +++ trunk/reactos/subsystems/win32/win32k/eng/bitblt.c Thu Aug 9 14:11:47 2007 @@ -249,6 +249,9 @@ INT __cdecl abs(INT nm);
+/* + * @implemented + */ BOOL STDCALL NtGdiEngBitBlt( IN SURFOBJ *psoTrg, @@ -271,15 +274,15 @@ _SEH_TRY { ProbeForRead(prclTrg, sizeof(RECTL), 1); - RtlCopyMemory(&rclTrg,prclTrg, sizeof(POINTL)); - - ProbeForRead(pptlSrc, sizeof(RECTL), 1); + RtlCopyMemory(&rclTrg,prclTrg, sizeof(RECTL)); + + ProbeForRead(pptlSrc, sizeof(POINTL), 1); RtlCopyMemory(&ptlSrc, pptlSrc, sizeof(POINTL));
- ProbeForRead(pptlMask, sizeof(RECTL), 1); + ProbeForRead(pptlMask, sizeof(POINTL), 1); RtlCopyMemory(&ptlMask, pptlMask, sizeof(POINTL));
- ProbeForRead(pptlBrush, sizeof(RECTL), 1); + ProbeForRead(pptlBrush, sizeof(POINTL), 1); RtlCopyMemory(&ptlBrush, pptlBrush, sizeof(POINTL));
} @@ -758,6 +761,55 @@
BOOL STDCALL +NtGdiEngStretchBlt( + IN SURFOBJ *DestObj, + IN SURFOBJ *SourceObj, + IN SURFOBJ *Mask, + IN CLIPOBJ *ClipRegion, + IN XLATEOBJ *ColorTranslation, + IN COLORADJUSTMENT *pca, + IN POINTL *BrushOrigin, + IN RECTL *prclDest, + IN RECTL *prclSrc, + IN POINTL *MaskOrigin, + IN ULONG Mode +) +{ + COLORADJUSTMENT ca; + POINTL lBrushOrigin; + RECTL rclDest; + RECTL rclSrc; + POINTL lMaskOrigin; + + _SEH_TRY + { + ProbeForRead(pca, sizeof(COLORADJUSTMENT), 1); + RtlCopyMemory(&ca,pca, sizeof(COLORADJUSTMENT)); + + ProbeForRead(BrushOrigin, sizeof(POINTL), 1); + RtlCopyMemory(&lBrushOrigin, BrushOrigin, sizeof(POINTL)); + + ProbeForRead(prclDest, sizeof(RECTL), 1); + RtlCopyMemory(&rclDest, prclDest, sizeof(RECTL)); + + ProbeForRead(prclSrc, sizeof(RECTL), 1); + RtlCopyMemory(&rclSrc, prclSrc, sizeof(RECTL)); + + ProbeForRead(MaskOrigin, sizeof(POINTL), 1); + RtlCopyMemory(&lMaskOrigin, MaskOrigin, sizeof(POINTL)); + + } + _SEH_HANDLE + { + _SEH_YIELD(return FALSE); + } + _SEH_END; + + return EngStretchBlt(DestObj, SourceObj, Mask, ClipRegion, ColorTranslation, &ca, &lBrushOrigin, &rclDest, &rclSrc, &lMaskOrigin, Mode); +} + +BOOL +STDCALL EngStretchBlt( IN SURFOBJ *DestObj, IN SURFOBJ *SourceObj, @@ -937,6 +989,9 @@ }
+/* + * @implemented + */ BOOL STDCALL NtGdiEngAlphaBlend(IN SURFOBJ *Dest, @@ -954,6 +1009,7 @@ { ProbeForRead(upDestRect, sizeof(RECTL), 1); RtlCopyMemory(&DestRect,upDestRect, sizeof(RECTL)); + ProbeForRead(upSourceRect, sizeof(RECTL), 1); RtlCopyMemory(&SourceRect, upSourceRect, sizeof(RECTL));
@@ -967,6 +1023,9 @@ return EngAlphaBlend(Dest, Source, ClipRegion, ColorTranslation, &DestRect, &SourceRect, BlendObj); }
+/* + * @implemented + */ BOOL STDCALL EngAlphaBlend(IN SURFOBJ *Dest,
Modified: trunk/reactos/subsystems/win32/win32k/eng/surface.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/eng... ============================================================================== --- trunk/reactos/subsystems/win32/win32k/eng/surface.c (original) +++ trunk/reactos/subsystems/win32/win32k/eng/surface.c Thu Aug 9 14:11:47 2007 @@ -533,6 +533,17 @@ #define GDIBdyToHdr(body) \ ((PGDIOBJHDR)(body) - 1)
+ +/* + * @implemented + */ +SURFOBJ * STDCALL +NtGdiEngLockSurface(IN HSURF Surface) +{ + return EngLockSurface(Surface); +} + + /* * @implemented */
Modified: trunk/reactos/subsystems/win32/win32k/w32ksvc.db URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/w32... ============================================================================== --- trunk/reactos/subsystems/win32/win32k/w32ksvc.db (original) +++ trunk/reactos/subsystems/win32/win32k/w32ksvc.db Thu Aug 9 14:11:47 2007 @@ -616,9 +616,9 @@ # NtGdiEngDeleteSurface 1 # NtGdiEngEraseSurface 3 # NtGdiEngUnlockSurface 1 -# NtGdiEngLockSurface 1 +NtGdiEngLockSurface 1 NtGdiEngBitBlt 11 -# NtGdiEngStretchBlt 11 +NtGdiEngStretchBlt 11 # NtGdiEngPlgBlt 11 # NtGdiEngMarkBandingSurface 1 # NtGdiEngStrokePath 8