mirror of
https://github.com/reactos/reactos.git
synced 2024-06-29 01:12:06 +00:00
win32k
Implement NtGdiEngStretchBlt, NtGdiEngLockSurface gdi32 Implement EngStretchBlt, EngLockSurface Fix small typo in NtGdiEngBitBlt svn path=/trunk/; revision=28261
This commit is contained in:
parent
b7aca87de2
commit
e915e72713
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -533,6 +533,17 @@ EngEraseSurface(SURFOBJ *Surface,
|
|||
#define GDIBdyToHdr(body) \
|
||||
((PGDIOBJHDR)(body) - 1)
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
SURFOBJ * STDCALL
|
||||
NtGdiEngLockSurface(IN HSURF Surface)
|
||||
{
|
||||
return EngLockSurface(Surface);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue