From: James Tabor Date: Sun, 27 Sep 2009 03:12:02 +0000 (+0000) Subject: - [NtDDraw] X-Git-Tag: ReactOS-0.3.11~754 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=91faf8f601d83df76757069fa4251b03e9766a76 - [NtDDraw] - Export global DD context size. Create a container for both PDev and EDDG structures. When allocating PDev and add the DD context size if not zero. svn path=/trunk/; revision=43176 --- diff --git a/reactos/subsystems/win32/win32k/include/pdevobj.h b/reactos/subsystems/win32/win32k/include/pdevobj.h index a474a55b6f4..01b7c536c58 100644 --- a/reactos/subsystems/win32/win32k/include/pdevobj.h +++ b/reactos/subsystems/win32/win32k/include/pdevobj.h @@ -1,6 +1,8 @@ #ifndef __WIN32K_PDEVOBJ_H #define __WIN32K_PDEVOBJ_H +#include + /* PDEVOBJ flags */ #define PDEV_DISPLAY 0x00000001 /* Display device */ #define PDEV_HARDWARE_POINTER 0x00000002 /* Supports hardware cursor */ @@ -134,4 +136,13 @@ typedef struct _PDEVOBJ struct _EDD_DIRECTDRAW_GLOBAL * pEDDgpl; } PDEVOBJ, *PPDEVOBJ; +/* PDEV and EDDX extra data container.*/ +typedef struct _PDEVEDD +{ + PDEVOBJ pdevobj; + EDD_DIRECTDRAW_GLOBAL EDDgpl; +} PDEVEDD, *PPDEVEDD; + +extern ULONG gdwDirectDrawContext; + #endif /* !__WIN32K_PDEVOBJ_H */ diff --git a/reactos/subsystems/win32/win32k/ntddraw/ddraw.c b/reactos/subsystems/win32/win32k/ntddraw/ddraw.c index d79a33910e6..3abbd18eed4 100644 --- a/reactos/subsystems/win32/win32k/ntddraw/ddraw.c +++ b/reactos/subsystems/win32/win32k/ntddraw/ddraw.c @@ -22,7 +22,7 @@ extern EDD_DIRECTDRAW_GLOBAL edd_DdirectDraw_Global; DRVFN gpDxFuncs[DXG_INDEX_DxDdIoctl]; HANDLE ghDxGraphics = NULL; -ULONG gdwDirectDrawContext; +ULONG gdwDirectDrawContext = 0; #define DXDBG 1 diff --git a/reactos/subsystems/win32/win32k/objects/device.c b/reactos/subsystems/win32/win32k/objects/device.c index 53fea842acf..6dfe195ec0c 100644 --- a/reactos/subsystems/win32/win32k/objects/device.c +++ b/reactos/subsystems/win32/win32k/objects/device.c @@ -229,7 +229,7 @@ IntPrepareDriver(VOID) RtlZeroMemory(&PrimarySurface, sizeof(PrimarySurface)); -// if (!pPrimarySurface) pPrimarySurface = ExAllocatePoolWithTag(PagedPool, sizeof(PDEVOBJ), TAG_GDIPDEV); +// if (!pPrimarySurface) pPrimarySurface = ExAllocatePoolWithTag(PagedPool, gdwDirectDrawContext + sizeof(PDEVOBJ), TAG_GDIPDEV); PrimarySurface.VideoFileObject = DRIVER_FindMPDriver(DisplayNumber);