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?…
==============================================================================
--- 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/en…
==============================================================================
--- 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/en…
==============================================================================
--- 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/w3…
==============================================================================
--- 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