Implement NtGdiEngStretchBlt, NtGdiEngLockSurface                              

gdi32
Implement EngStretchBlt, EngLockSurface                              

Fix small typo in NtGdiEngBitBlt

svn path=/trunk/; revision=28261
This commit is contained in:
Magnus Olsen 2007-08-09 10:11:47 +00:00
parent b7aca87de2
commit e915e72713
5 changed files with 79 additions and 28 deletions

View file

@ -189,7 +189,7 @@ EngGetPrinterDataFileName@4
EngGradientFill@40
EngLineTo@36
EngLoadModule@4
EngLockSurface@4
EngLockSurface@4=NtGdiEngLockSurface@4
EngMarkBandingSurface@4
EngMultiByteToUnicodeN@20
EngMultiByteToWideChar@20
@ -198,7 +198,7 @@ EngPlgBlt@44
EngQueryEMFInfo@8
EngQueryLocalTime@4
EngReleaseSemaphore@4
EngStretchBlt@44
EngStretchBlt@44=NtGdiEngStretchBlt@44
EngStretchBltROP@52
EngStrokeAndFillPath@40
EngStrokePath@32

View file

@ -2842,16 +2842,6 @@ EngLoadModule(LPWSTR pwsz)
return 0;
}
/*
* @unimplemented
*/
SURFOBJ * STDCALL
EngLockSurface(IN HSURF Surface)
{
UNIMPLEMENTED;
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0;
}
/*
* @unimplemented
@ -2947,16 +2937,7 @@ EngReleaseSemaphore ( IN HSEMAPHORE hsem )
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

View file

@ -249,6 +249,9 @@ CallDibBitBlt(SURFOBJ* OutputObj,
INT __cdecl abs(INT nm);
/*
* @implemented
*/
BOOL STDCALL
NtGdiEngBitBlt(
IN SURFOBJ *psoTrg,
@ -271,15 +274,15 @@ NtGdiEngBitBlt(
_SEH_TRY
{
ProbeForRead(prclTrg, sizeof(RECTL), 1);
RtlCopyMemory(&rclTrg,prclTrg, sizeof(POINTL));
RtlCopyMemory(&rclTrg,prclTrg, sizeof(RECTL));
ProbeForRead(pptlSrc, sizeof(RECTL), 1);
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));
}
@ -756,6 +759,55 @@ CallDibStretchBlt(SURFOBJ* OutputObj,
}
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(
@ -937,6 +989,9 @@ IntEngStretchBlt(SURFOBJ *DestSurf,
}
/*
* @implemented
*/
BOOL
STDCALL
NtGdiEngAlphaBlend(IN SURFOBJ *Dest,
@ -954,6 +1009,7 @@ NtGdiEngAlphaBlend(IN SURFOBJ *Dest,
{
ProbeForRead(upDestRect, sizeof(RECTL), 1);
RtlCopyMemory(&DestRect,upDestRect, sizeof(RECTL));
ProbeForRead(upSourceRect, sizeof(RECTL), 1);
RtlCopyMemory(&SourceRect, upSourceRect, sizeof(RECTL));
@ -967,6 +1023,9 @@ NtGdiEngAlphaBlend(IN SURFOBJ *Dest,
return EngAlphaBlend(Dest, Source, ClipRegion, ColorTranslation, &DestRect, &SourceRect, BlendObj);
}
/*
* @implemented
*/
BOOL
STDCALL
EngAlphaBlend(IN SURFOBJ *Dest,

View file

@ -533,6 +533,17 @@ EngEraseSurface(SURFOBJ *Surface,
#define GDIBdyToHdr(body) \
((PGDIOBJHDR)(body) - 1)
/*
* @implemented
*/
SURFOBJ * STDCALL
NtGdiEngLockSurface(IN HSURF Surface)
{
return EngLockSurface(Surface);
}
/*
* @implemented
*/

View file

@ -616,9 +616,9 @@ NtUserYieldTask 0
# NtGdiEngDeleteSurface 1
# NtGdiEngEraseSurface 3
# NtGdiEngUnlockSurface 1
# NtGdiEngLockSurface 1
NtGdiEngLockSurface 1
NtGdiEngBitBlt 11
# NtGdiEngStretchBlt 11
NtGdiEngStretchBlt 11
# NtGdiEngPlgBlt 11
# NtGdiEngMarkBandingSurface 1
# NtGdiEngStrokePath 8