* redirect EngCopyBits, EngCreateBitmap, EngCreatePalette, EngDeletePalette, EngDeletePath, EngDeleteSurface, EngEraseSurface, EngFillPath, EngMarkBandingSurface, EngPaint, EngPlgBlt, EngStrokeAndFillPath, EngStrokePath, EngTextOut, EngTransparentBlt to win32k.sys

* add smaller code for Ellipse
* redirect EngMultiByteToUnicodeN to RtlMultiByteToUnicodeN
* redirect EngUnicodeToMultiByteN to RtlUnicodeToMultiByteN

svn path=/trunk/; revision=28533
This commit is contained in:
Magnus Olsen 2007-08-24 22:44:36 +00:00
parent fa0d1f8d20
commit 2b32773575
2 changed files with 61 additions and 318 deletions

View file

@ -93,9 +93,10 @@ DeleteEnhMetaFile@4
DeleteMetaFile@4
DeleteObject@4
DescribePixelFormat@16
DeviceCapabilitiesExA
DeviceCapabilitiesExW
DeviceCapabilitiesExA@20
DeviceCapabilitiesExW@20
DrawEscape@16
Ellipse@20
EnableEUDC@4=NtGdiEnableEudc@4
EndDoc@4
EndFormPage@4
@ -104,20 +105,50 @@ EndPath@4
EngAcquireSemaphore@4
EngAlphaBlend@28=NtGdiEngAlphaBlend@28
EngAssociateSurface@12=NtGdiEngAssociateSurface@12
EngBitBlt@44=NtGdiEngBitBlt@44
EngCreateClip@0=NtGdiEngCreateClip@0
EngDeleteClip@4=NtGdiEngDeleteClip@4
EngBitBlt=NtGdiEngBitBlt@44
EngCheckAbort@4=NtGdiEngCheckAbort@4
EngComputeGlyphSet@12
EngCreateSemaphore@0
EngCreateBitmap@24
EngCreateDeviceSurface@16=NtGdiEngCreateDeviceSurface@16
EngCopyBits@24=NtGdiEngCopyBits@24
EngCreateBitmap@24=NtGdiEngCreateBitmap@24
EngCreateClip@0=NtGdiEngCreateClip@0
EngCreateDeviceBitmap@16=NtGdiEngCreateDeviceBitmap@16
EngCreateDeviceSurface@16=NtGdiEngCreateDeviceSurface@16
EngCreatePalette@24=NtGdiEngCreatePalette@24
EngCreateSemaphore@0
EngDeleteClip@4=NtGdiEngDeleteClip@4
EngDeletePalette@4=NtGdiEngDeletePalette@4
EngDeletePath@4=NtGdiEngDeletePath@4
EngDeleteSemaphore@4
EngDeleteSurface@4=NtGdiEngDeleteSurface@4
EngEraseSurface@12=NtGdiEngEraseSurface@12
EngFillPath@28=NtGdiEngFillPath@28
EngFindResource@16
EngFreeModule@4
EngGetCurrentCodePage@8
EngGetDriverName@4
EngGetPrinterDataFileName@4
EngGradientFill@40=NtGdiEngGradientFill@40
EngLineTo@36=NtGdiEngLineTo@36
EngLoadModule@4
EngLockSurface@4=NtGdiEngLockSurface@4
EngMarkBandingSurface@4=NtGdiEngMarkBandingSurface@4
EngMultiByteToUnicodeN@20=RtlMultiByteToUnicodeN@20
EngMultiByteToWideChar@20
EngPaint@20=NtGdiEngPaint@20
EngPlgBlt@44=NtGdiEngPlgBlt@44
EngQueryEMFInfo@8
EngQueryLocalTime@4
EngReleaseSemaphore@4
EngStretchBlt@44=NtGdiEngStretchBlt@44
EngStretchBltROP@52=NtGdiEngStretchBltROP@52
EngStrokeAndFillPath@40=NtGdiEngStrokeAndFillPath@40
EngStrokePath@32=NtGdiEngStrokePath@32
EngTextOut@40=NtGdiEngTextOut@40
EngTransparentBlt@32=NtGdiEngTransparentBlt@32
EngUnicodeToMultiByteN@20=RtlUnicodeToMultiByteN@20
ClearBitmapAttributes@8
ClearBrushAttributes@8
DeleteObject@4
DescribePixelFormat@16
DdEntry1@16=NtGdiD3dContextCreate@16
DdEntry2@4=NtGdiD3dContextDestroy@4
DdEntry3@4=NtGdiD3dContextDestroyAll@4
@ -174,39 +205,6 @@ DdEntry53@8=NtGdiDdUnlock@8
DdEntry54@8=NtGdiDdUnlockD3D@8
DdEntry55@12=NtGdiDdUpdateOverlay@12
DdEntry56@8=NtGdiDdWaitForVerticalBlank@8
Ellipse@20=NtGdiEllipse@20
EngCopyBits@24
EngCreatePalette@24
EngDeletePalette@4
EngDeletePath@4
EngDeleteSemaphore@4
EngDeleteSurface@4
EngEraseSurface@12
EngFillPath@28
EngFindResource@16
EngFreeModule@4
EngGetCurrentCodePage@8
EngGetDriverName@4
EngGetPrinterDataFileName@4
EngGradientFill@40
EngLineTo@36
EngLoadModule@4
EngLockSurface@4=NtGdiEngLockSurface@4
EngMarkBandingSurface@4
EngMultiByteToUnicodeN@20
EngMultiByteToWideChar@20
EngPaint@20
EngPlgBlt@44
EngQueryEMFInfo@8
EngQueryLocalTime@4
EngReleaseSemaphore@4
EngStretchBlt@44=NtGdiEngStretchBlt@44
EngStretchBltROP@52
EngStrokeAndFillPath@40
EngStrokePath@32
EngTextOut@40
EngTransparentBlt@32
EngUnicodeToMultiByteN@20
EngUnlockSurface@4
EngWideCharToMultiByte@20
EnumEnhMetaFile@20

View file

@ -2465,54 +2465,6 @@ EngComputeGlyphSet(INT nCodePage,INT nFirstChar,INT cChars)
return 0;
}
/*
* @unimplemented
*/
BOOL STDCALL
EngCopyBits(SURFOBJ *Dest,
SURFOBJ *Source,
CLIPOBJ *Clip,
XLATEOBJ *ColorTranslation,
RECTL *DestRect,
POINTL *SourcePoint)
{
UNIMPLEMENTED;
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0;
}
/*
* @unimplemented
*/
HBITMAP STDCALL
EngCreateBitmap(IN SIZEL Size,
IN LONG Width,
IN ULONG Format,
IN ULONG Flags,
IN PVOID Bits)
{
UNIMPLEMENTED;
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0;
}
/*
* @unimplemented
*/
HPALETTE STDCALL
EngCreatePalette(IN ULONG Mode,
IN ULONG NumColors,
IN ULONG *Colors,
IN ULONG Red,
IN ULONG Green,
IN ULONG Blue)
{
UNIMPLEMENTED;
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0;
}
/*
* @unimplemented
*/
@ -2528,26 +2480,7 @@ EngCreateSemaphore ( VOID )
/*
* @unimplemented
*/
BOOL STDCALL
EngDeletePalette(IN HPALETTE Palette)
{
UNIMPLEMENTED;
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0;
}
/*
* @unimplemented
*/
VOID STDCALL
EngDeletePath(PATHOBJ *ppo)
{
UNIMPLEMENTED;
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
}
/*
* @unimplemented
@ -2562,40 +2495,11 @@ EngDeleteSemaphore ( IN HSEMAPHORE hsem )
RtlFreeHeap( GetProcessHeap(), 0, hsem );
}
/*
* @unimplemented
*/
BOOL STDCALL
EngDeleteSurface(IN HSURF Surface)
{
UNIMPLEMENTED;
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0;
}
/*
* @unimplemented
*/
BOOL STDCALL
EngEraseSurface(SURFOBJ *Surface,
RECTL *Rect,
ULONG iColor)
{
UNIMPLEMENTED;
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0;
}
/*
* @unimplemented
*/
BOOL STDCALL
EngFillPath(SURFOBJ *pso,PATHOBJ *ppo,CLIPOBJ *pco,BRUSHOBJ *pbo,POINTL *pptlBrushOrg,MIX mix,FLONG flOptions)
{
UNIMPLEMENTED;
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0;
}
/*
* @unimplemented
@ -2656,48 +2560,16 @@ EngGetDriverName(HDEV hdev)
}
/*
* @unimplemented
* @implemented
*/
LPWSTR STDCALL
EngGetPrinterDataFileName(HDEV hdev)
{
UNIMPLEMENTED;
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0;
return EngGetDriverName(hdev);
}
/*
* @unimplemented
*/
BOOL STDCALL
EngGradientFill(SURFOBJ *psoDest,CLIPOBJ *pco,XLATEOBJ *pxlo,TRIVERTEX *pVertex,ULONG nVertex,PVOID pMesh,ULONG nMesh,RECTL *prclExtents,POINTL *pptlDitherOrg,ULONG ulMode)
{
UNIMPLEMENTED;
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0;
}
/*
* @unimplemented
*/
BOOL STDCALL
EngLineTo(SURFOBJ *Surface,
CLIPOBJ *Clip,
BRUSHOBJ *Brush,
LONG x1,
LONG y1,
LONG x2,
LONG y2,
RECTL *RectBounds,
MIX mix)
{
UNIMPLEMENTED;
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0;
}
/*
* @unimplemented
* @implemented
*/
HANDLE STDCALL
EngLoadModule(LPWSTR pwsz)
@ -2707,37 +2579,7 @@ EngLoadModule(LPWSTR pwsz)
/*
* @unimplemented
*/
BOOL STDCALL
EngMarkBandingSurface(HSURF hsurf)
{
UNIMPLEMENTED;
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0;
}
/*
* @unimplemented
*/
VOID STDCALL
EngMultiByteToUnicodeN(OUT LPWSTR UnicodeString,
IN ULONG MaxBytesInUnicodeString,
OUT PULONG BytesInUnicodeString,
IN PCHAR MultiByteString,
IN ULONG BytesInMultiByteString)
{
RtlMultiByteToUnicodeN(
UnicodeString,
MaxBytesInUnicodeString,
BytesInUnicodeString,
MultiByteString,
BytesInMultiByteString
);
}
/*
* @unimplemented
* @implemented
*/
INT STDCALL
EngMultiByteToWideChar(UINT CodePage,
@ -2746,41 +2588,11 @@ EngMultiByteToWideChar(UINT CodePage,
LPSTR MultiByteString,
INT BytesInMultiByteString)
{
return MultiByteToWideChar(
CodePage,
0,
MultiByteString,
BytesInMultiByteString,
WideCharString,
(BytesInWideCharString/sizeof(WCHAR)) /* Bytes to (in WCHARs) */
);
return MultiByteToWideChar(CodePage,0,MultiByteString,BytesInMultiByteString,WideCharString,BytesInWideCharString / sizeof(WCHAR));
}
/*
* @unimplemented
*/
BOOL STDCALL
EngPaint(IN SURFOBJ *Surface,
IN CLIPOBJ *ClipRegion,
IN BRUSHOBJ *Brush,
IN POINTL *BrushOrigin,
IN MIX Mix)
{
UNIMPLEMENTED;
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0;
}
/*
* @unimplemented
*/
BOOL STDCALL
EngPlgBlt(SURFOBJ *psoTrg,SURFOBJ *psoSrc,SURFOBJ *psoMsk,CLIPOBJ *pco,XLATEOBJ *pxlo,COLORADJUSTMENT *pca,POINTL *pptlBrushOrg,POINTFIX *pptfx,RECTL *prcl,POINTL *pptl,ULONG iMode)
{
UNIMPLEMENTED;
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0;
}
/*
* @implemented
@ -2821,87 +2633,20 @@ EngReleaseSemaphore ( IN HSEMAPHORE hsem )
RtlLeaveCriticalSection( (PRTL_CRITICAL_SECTION) hsem);
}
/*
* @unimplemented
* @implemented
*/
BOOL STDCALL
EngStretchBltROP(SURFOBJ *psoDest,SURFOBJ *psoSrc,SURFOBJ *psoMask,CLIPOBJ *pco,XLATEOBJ *pxlo,COLORADJUSTMENT *pca,POINTL *pptlHTOrg,RECTL *prclDest,RECTL *prclSrc,POINTL *pptlMask,ULONG iMode,BRUSHOBJ *pbo,DWORD rop4)
BOOL
STDCALL
Ellipse(
HDC hdc,
int nLeftRect,
int nTopRect,
int nRightRect,
int nBottomRect)
{
UNIMPLEMENTED;
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0;
}
/*
* @unimplemented
*/
BOOL STDCALL
EngStrokeAndFillPath(SURFOBJ *pso,PATHOBJ *ppo,CLIPOBJ *pco,XFORMOBJ *pxo,BRUSHOBJ *pboStroke,LINEATTRS *plineattrs,BRUSHOBJ *pboFill,POINTL *pptlBrushOrg,MIX mixFill,FLONG flOptions)
{
UNIMPLEMENTED;
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0;
}
/*
* @unimplemented
*/
BOOL STDCALL
EngStrokePath(SURFOBJ *pso,PATHOBJ *ppo,CLIPOBJ *pco,XFORMOBJ *pxo,BRUSHOBJ *pbo,POINTL *pptlBrushOrg,LINEATTRS *plineattrs,MIX mix)
{
UNIMPLEMENTED;
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0;
}
/*
* @unimplemented
*/
BOOL STDCALL
EngTextOut(SURFOBJ *pso,STROBJ *pstro,FONTOBJ *pfo,CLIPOBJ *pco,RECTL *prclExtra,RECTL *prclOpaque,BRUSHOBJ *pboFore,BRUSHOBJ *pboOpaque,POINTL *pptlOrg,MIX mix)
{
UNIMPLEMENTED;
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0;
}
/*
* @unimplemented
*/
BOOL STDCALL
EngTransparentBlt(IN SURFOBJ *Dest,
IN SURFOBJ *Source,
IN CLIPOBJ *Clip,
IN XLATEOBJ *ColorTranslation,
IN PRECTL DestRect,
IN PRECTL SourceRect,
IN ULONG TransparentColor,
IN ULONG Reserved)
{
UNIMPLEMENTED;
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0;
}
/*
* @unimplemented
*/
VOID STDCALL
EngUnicodeToMultiByteN(OUT PCHAR MultiByteString,
IN ULONG MaxBytesInMultiByteString,
OUT PULONG BytesInMultiByteString,
IN PWSTR UnicodeString,
IN ULONG BytesInUnicodeString)
{
RtlUnicodeToMultiByteN(
MultiByteString,
MaxBytesInMultiByteString,
BytesInMultiByteString,
UnicodeString,
BytesInUnicodeString
);
/* FIXME some parts need be done in user mode */
return NtGdiEllipse(hdc,nLeftRect,nTopRect,nRightRect,nBottomRect);
}
/*