From 848867e6b15d12d600eeb8dc8e39fb33b63d6456 Mon Sep 17 00:00:00 2001 From: Magnus Olsen Date: Sun, 7 Aug 2005 16:22:37 +0000 Subject: [PATCH] GdiEntry11 (not tested, we can not test it yet in ros, until we got ddraw.dll and some api in win32k/ntdraw been implement) svn path=/trunk/; revision=17170 --- reactos/lib/gdi32/misc/gdientry.c | 38 +++++++++++++++++++++++++++---- reactos/lib/gdi32/misc/stubs.c | 15 ------------ 2 files changed, 33 insertions(+), 20 deletions(-) diff --git a/reactos/lib/gdi32/misc/gdientry.c b/reactos/lib/gdi32/misc/gdientry.c index 51f7dc6c07c..e21fdfc5b95 100644 --- a/reactos/lib/gdi32/misc/gdientry.c +++ b/reactos/lib/gdi32/misc/gdientry.c @@ -123,10 +123,10 @@ DdDeleteDirectDrawObject(LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal) * * GDIEntry 4 */ -BOOL STDCALL DdCreateSurfaceObject( -LPDDRAWI_DDRAWSURFACE_LCL pSurfaceLocal, -BOOL bPrimarySurface -) +BOOL +STDCALL +DdCreateSurfaceObject( LPDDRAWI_DDRAWSURFACE_LCL pSurfaceLocal, + BOOL bPrimarySurface) { return intDDCreateSurface(pSurfaceLocal,1); } @@ -210,9 +210,37 @@ DdReenableDirectDrawObject(LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal, return NtGdiDdReenableDirectDrawObject((HANDLE)pDirectDrawGlobal->hDD, pbNewMode); } +/* + * @implemented + * + * GDIEntry 11 + */ +BOOL +STDCALL +DdAttachSurface( LPDDRAWI_DDRAWSURFACE_LCL pSurfaceFrom, + LPDDRAWI_DDRAWSURFACE_LCL pSurfaceTo) +{ + /* Create Surface if it does not exits one */ + if (pSurfaceFrom->hDDSurface) + { + if (!intDDCreateSurface(pSurfaceFrom,FALSE)) + { + return FALSE; + } + } + /* Create Surface if it does not exits one */ + if (pSurfaceTo->hDDSurface) + { + if (!intDDCreateSurface(pSurfaceTo,FALSE)) + { + return FALSE; + } + } + return NtGdiDdAttachSurface( (HANDLE) pSurfaceFrom->hDDSurface, (HANDLE) pSurfaceTo->hDDSurface); +} /* * @implemented @@ -309,7 +337,7 @@ LPDDRAWI_DDRAWSURFACE_LCL pDDSLcl2 /* interal create surface */ BOOL intDDCreateSurface ( LPDDRAWI_DDRAWSURFACE_LCL pSurface, - BOOL bComplete) + BOOL bComplete) { DD_SURFACE_LOCAL SurfaceLocal; DD_SURFACE_GLOBAL SurfaceGlobal; diff --git a/reactos/lib/gdi32/misc/stubs.c b/reactos/lib/gdi32/misc/stubs.c index 34c7a92e5e9..180377a74a6 100644 --- a/reactos/lib/gdi32/misc/stubs.c +++ b/reactos/lib/gdi32/misc/stubs.c @@ -3905,21 +3905,6 @@ DWORD dwOffset } - -/* - * @unimplemented - */ -BOOL STDCALL DdAttachSurface( -LPDDRAWI_DDRAWSURFACE_LCL pSurfaceFrom, -LPDDRAWI_DDRAWSURFACE_LCL pSurfaceTo -) -{ - UNIMPLEMENTED; - SetLastError(ERROR_CALL_NOT_IMPLEMENTED); - return 0; -} - - /* * @unimplemented */