From bb0603242f7d6909fb426687730dc0398c626b51 Mon Sep 17 00:00:00 2001 From: Magnus Olsen Date: Tue, 6 May 2008 20:20:56 +0000 Subject: [PATCH] started cleanup object/dc.c 1. remove the static global value edd_directdraw_global I intrudues for dx. it is now for each driver. svn path=/trunk/; revision=33330 --- reactos/subsystems/win32/win32k/include/tags.h | 3 ++- reactos/subsystems/win32/win32k/ntddraw/ddraw.c | 15 --------------- reactos/subsystems/win32/win32k/objects/dc.c | 10 +++++++--- 3 files changed, 9 insertions(+), 19 deletions(-) diff --git a/reactos/subsystems/win32/win32k/include/tags.h b/reactos/subsystems/win32/win32k/include/tags.h index e5136869977..4a9691ab5cc 100644 --- a/reactos/subsystems/win32/win32k/include/tags.h +++ b/reactos/subsystems/win32/win32k/include/tags.h @@ -91,8 +91,9 @@ /* Dx internal tags rember I do not known if it right namees */ #define TAG_DXPVMLIST TAG('D', 'X', 'P', 'L') /* pmvlist for the driver */ #define TAG_DXFOURCC TAG('D', 'X', 'F', 'O') /* pdwFourCC for the driver */ -#define TAG_DDRAW TAG('D', 'h', ' ', '1') +#define TAG_DDRAW TAG('D', 'h', ' ', '1') #define TAG_DDSURF TAG('D', 'h', ' ', '2') +#define TAG_EDDGBL TAG('E', 'D', 'D', 'G') /* ? edd_directdraw_global ??*/ #endif /* _WIN32K_TAGS_H */ diff --git a/reactos/subsystems/win32/win32k/ntddraw/ddraw.c b/reactos/subsystems/win32/win32k/ntddraw/ddraw.c index 4a54b7aaee4..04b841474c3 100644 --- a/reactos/subsystems/win32/win32k/ntddraw/ddraw.c +++ b/reactos/subsystems/win32/win32k/ntddraw/ddraw.c @@ -432,10 +432,6 @@ NtGdiDdQueryDirectDrawObject(HANDLE hDirectDrawLocal, DWORD *puNumFourCC, DWORD *puFourCC) { -#if DXDBG - BOOL status = FALSE; -#endif - PGD_DXDDQUERYDIRECTDRAWOBJECT pfnDdQueryDirectDrawObject = (PGD_DXDDQUERYDIRECTDRAWOBJECT)gpDxFuncs[DXG_INDEX_DxDdQueryDirectDrawObject].pfn; if (pfnDdQueryDirectDrawObject == NULL) @@ -446,21 +442,10 @@ NtGdiDdQueryDirectDrawObject(HANDLE hDirectDrawLocal, DPRINT1("Calling dxg.sys pfnDdQueryDirectDrawObject\n"); -#if DXDBG - status = pfnDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, - puD3dBufferCallbacks, puD3dTextureFormats, puNumHeaps, puvmList, puNumFourCC, puFourCC); - - dump_edd_directdraw_global(&edd_DdirectDraw_Global); - dump_edd_directdraw_local(edd_DdirectDraw_Global.peDirectDrawLocalList); - - return status; -#else return pfnDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, puD3dTextureFormats, puNumHeaps, puvmList, puNumFourCC, puFourCC); -#endif - } diff --git a/reactos/subsystems/win32/win32k/objects/dc.c b/reactos/subsystems/win32/win32k/objects/dc.c index 381eea20b5a..343a5f7fb2f 100644 --- a/reactos/subsystems/win32/win32k/objects/dc.c +++ b/reactos/subsystems/win32/win32k/objects/dc.c @@ -32,7 +32,7 @@ static GDIDEVICE PrimarySurface; static KEVENT VideoDriverNeedsPreparation; static KEVENT VideoDriverPrepared; static PDC defaultDCstate = NULL; -EDD_DIRECTDRAW_GLOBAL edd_DdirectDraw_Global; + NTSTATUS FASTCALL InitDcImpl(VOID) @@ -554,8 +554,11 @@ IntPrepareDriver() PrimarySurface.ppdevNext = NULL; // Fixme! We need to support more than display drvs. PrimarySurface.ppdevParent = NULL; // Always NULL if primary. PrimarySurface.pGraphicsDev = NULL; // Fixme! - PrimarySurface.pEDDgpl = (EDD_DIRECTDRAW_GLOBAL *)&edd_DdirectDraw_Global; // FIXME! We need to support more than display drvs. - RtlZeroMemory( &edd_DdirectDraw_Global ,sizeof(EDD_DIRECTDRAW_GLOBAL)); + PrimarySurface.pEDDgpl = ExAllocatePoolWithTag(PagedPool, sizeof(EDD_DIRECTDRAW_GLOBAL), TAG_EDDGBL); + if (PrimarySurface.pEDDgpl) + { + RtlZeroMemory( PrimarySurface.pEDDgpl ,sizeof(EDD_DIRECTDRAW_GLOBAL)); + } ret = TRUE; goto cleanup; } @@ -626,6 +629,7 @@ PrepareVideoPrt() return NT_SUCCESS(Status); } + BOOL FASTCALL IntCreatePrimarySurface() {