[ros-diffs] [greatlrd] 28261: win32k Implement NtGdiEngStretchBlt, NtGdiEngLockSurface gdi32 Implement EngStretchBlt, EngLockSurface Fix small typo in NtGdiEngBitBlt

greatlrd at svn.reactos.org greatlrd at svn.reactos.org
Thu Aug 9 12:11:48 CEST 2007


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?rev=28261&r1=28260&r2=28261&view=diff
==============================================================================
--- 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 at 40
 EngLineTo at 36
 EngLoadModule at 4
-EngLockSurface at 4
+EngLockSurface at 4=NtGdiEngLockSurface at 4
 EngMarkBandingSurface at 4
 EngMultiByteToUnicodeN at 20
 EngMultiByteToWideChar at 20
@@ -198,7 +198,7 @@
 EngQueryEMFInfo at 8
 EngQueryLocalTime at 4
 EngReleaseSemaphore at 4
-EngStretchBlt at 44
+EngStretchBlt at 44=NtGdiEngStretchBlt at 44
 EngStretchBltROP at 52
 EngStrokeAndFillPath at 40
 EngStrokePath at 32

Modified: trunk/reactos/dll/win32/gdi32/misc/stubs.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/gdi32/misc/stubs.c?rev=28261&r1=28260&r2=28261&view=diff
==============================================================================
--- 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/bitblt.c?rev=28261&r1=28260&r2=28261&view=diff
==============================================================================
--- 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/surface.c?rev=28261&r1=28260&r2=28261&view=diff
==============================================================================
--- 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/w32ksvc.db?rev=28261&r1=28260&r2=28261&view=diff
==============================================================================
--- 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




More information about the Ros-diffs mailing list