From 3bd5362791a6785d9ef742312ecbbc4b62593b0f Mon Sep 17 00:00:00 2001 From: Magnus Olsen Date: Tue, 26 Apr 2005 22:02:32 +0000 Subject: [PATCH] implement NtGdiDdBlt and NtGdiDdAlphaBlt NtGdiDdAlphaBlt are not supportet by microsoft so we report unsupport directx function svn path=/trunk/; revision=14827 --- reactos/subsys/win32k/ntddraw/ddraw.c | 40 ++++++++++++++++++++++++--- reactos/subsys/win32k/ntddraw/stubs.c | 38 +------------------------ 2 files changed, 37 insertions(+), 41 deletions(-) diff --git a/reactos/subsys/win32k/ntddraw/ddraw.c b/reactos/subsys/win32k/ntddraw/ddraw.c index 9fae5b7dbf6..8007d05ea3a 100644 --- a/reactos/subsys/win32k/ntddraw/ddraw.c +++ b/reactos/subsys/win32k/ntddraw/ddraw.c @@ -187,6 +187,7 @@ BOOL STDCALL NtGdiDdQueryDirectDrawObject( pDirectDraw->DdLockD3DBuffer = puD3dBufferCallbacks->LockD3DBuffer; pDirectDraw->DdUnlockD3DBuffer = puD3dBufferCallbacks->UnlockD3DBuffer; } + GDIOBJ_UnlockObj(hDirectDrawLocal); @@ -286,14 +287,14 @@ DWORD STDCALL NtGdiDdGetDriverInfo( DWORD pdwNumFourCC; DWORD *pdwFourCC = NULL; DWORD ddRVal; - - + PDD_DIRECTDRAW pDirectDraw = GDIOBJ_LockObj(hDirectDrawLocal, GDI_OBJECT_TYPE_DIRECTDRAW); - ddRVal = pDirectDraw->DrvGetDirectDrawInfo( + + ddRVal = pDirectDraw->DrvGetDirectDrawInfo( pDirectDraw->Global.dhpdev,(PDD_HALINFO) puGetDriverInfoData, &pdwNumHeaps, pvmList, &pdwNumFourCC, pdwFourCC); - + GDIOBJ_UnlockObj(hDirectDrawLocal); return ddRVal; @@ -328,6 +329,8 @@ DWORD STDCALL NtGdiDdCanCreateSurface( PDD_DIRECTDRAW pDirectDraw = GDIOBJ_LockObj(hDirectDrawLocal, GDI_OBJECT_TYPE_DIRECTDRAW); + puCanCreateSurfaceData->lpDD = pDirectDraw->Local.lpGbl; + ddRVal = pDirectDraw->DdCanCreateSurface(puCanCreateSurfaceData); GDIOBJ_UnlockObj(hDirectDrawLocal); @@ -337,5 +340,34 @@ DWORD STDCALL NtGdiDdCanCreateSurface( +DWORD STDCALL NtGdiDdBlt( + HANDLE hSurfaceDest, + HANDLE hSurfaceSrc, + PDD_BLTDATA puBltData +) +{ + DWORD ddRVal; + + PDD_DIRECTDRAW pDirectDraw = GDIOBJ_LockObj(hSurfaceDest, GDI_OBJECT_TYPE_DIRECTDRAW); + + puBltData->lpDDDestSurface = hSurfaceDest; + puBltData->lpDDSrcSurface = hSurfaceSrc; + puBltData->lpDD = pDirectDraw->Local.lpGbl; + + ddRVal = pDirectDraw->DdBlt(puBltData); + + GDIOBJ_UnlockObj(hSurfaceDest); + + return ddRVal; +} + +DWORD STDCALL NtGdiDdAlphaBlt(VOID) +{ + // MSDN on all windows 95 to windows xp this call are unsuported + // see Graphics Low Level Client Support + + return DDERR_UNSUPPORTED; +} + /* EOF */ diff --git a/reactos/subsys/win32k/ntddraw/stubs.c b/reactos/subsys/win32k/ntddraw/stubs.c index 6d625f76f8f..034f65232a1 100644 --- a/reactos/subsys/win32k/ntddraw/stubs.c +++ b/reactos/subsys/win32k/ntddraw/stubs.c @@ -21,8 +21,7 @@ DWORD STDCALL NtGdiDdGetAvailDriverMemory( PDD_GETAVAILDRIVERMEMORYDATA puGetAvailDriverMemoryData ) { - UNIMPLEMENTED - + UNIMPLEMENTED return 0; } @@ -91,12 +90,7 @@ DWORD STDCALL NtGdiDdAddAttachedSurface( return 0; } -DWORD STDCALL NtGdiDdAlphaBlt(VOID) -{ - UNIMPLEMENTED - return 0; -} BOOL STDCALL NtGdiDdAttachSurface( HANDLE hSurfaceFrom, @@ -118,16 +112,6 @@ DWORD STDCALL NtGdiDdBeginMoCompFrame( return 0; } -DWORD STDCALL NtGdiDdBlt( - HANDLE hSurfaceDest, - HANDLE hSurfaceSrc, - PDD_BLTDATA puBltData -) -{ - UNIMPLEMENTED - - return 0; -} DWORD STDCALL NtGdiDdCanCreateD3DBuffer( HANDLE hDirectDraw, @@ -435,26 +419,6 @@ DWORD STDCALL NtGdiDdLockD3D( return 0; } -/* -BOOL STDCALL NtGdiDdQueryDirectDrawObject( - HANDLE hDirectDrawLocal, - DD_HALINFO *pHalInfo, - DWORD *pCallBackFlags, - PD3DNTHAL_CALLBACKS puD3dCallbacks, - PD3DNTHAL_GLOBALDRIVERDATA puD3dDriverData, - PDD_D3DBUFCALLBACKS puD3dBufferCallbacks, - LPDDSURFACEDESC puD3dTextureFormats, - DWORD *puNumHeaps, - VIDEOMEMORY *puvmList, - DWORD *puNumFourCC, - DWORD *puFourCC -) -{ - UNIMPLEMENTED - - return 0; -} -*/ DWORD STDCALL NtGdiDdQueryMoCompStatus( HANDLE hMoComp,