From 96ded058436898be58ea011a0894718220e42400 Mon Sep 17 00:00:00 2001 From: Magnus Olsen Date: Mon, 31 Dec 2007 03:17:42 +0000 Subject: [PATCH] remve EDD_SURFACE_LOCAL after reexaime it. Use EDD_SURFACE instead move _DD_BASEOBJECT struct to correct header file make sure right unlock and lock using EDD_SURFACE svn path=/trunk/; revision=31511 --- reactos/drivers/directx/dxg/dxg_int.h | 10 ++-------- reactos/drivers/directx/dxg/eng.c | 14 +++++++------- .../reactos/drivers/directx/directxint.h | 18 ++++++++++-------- 3 files changed, 19 insertions(+), 23 deletions(-) diff --git a/reactos/drivers/directx/dxg/dxg_int.h b/reactos/drivers/directx/dxg/dxg_int.h index 0ee82581075..61bca927e1d 100644 --- a/reactos/drivers/directx/dxg/dxg_int.h +++ b/reactos/drivers/directx/dxg/dxg_int.h @@ -31,19 +31,13 @@ #include "tags.h" -typedef struct _DD_BASEOBJECT -{ - HANDLE hHmgr; - ULONG ulShareCount; - LONG cExclusiveLock; - PVOID Tid; -} DD_BASEOBJECT, *PDD_BASEOBJECT, *POBJ; + typedef struct _DD_ENTRY { union { - POBJ pobj; + PDD_BASEOBJECT pobj; HANDLE hFree; }; union diff --git a/reactos/drivers/directx/dxg/eng.c b/reactos/drivers/directx/dxg/eng.c index d39de0535dd..9b71e8db18e 100644 --- a/reactos/drivers/directx/dxg/eng.c +++ b/reactos/drivers/directx/dxg/eng.c @@ -16,13 +16,13 @@ PDD_SURFACE_LOCAL STDCALL DxDdLockDirectDrawSurface(HANDLE hDdSurface) { - PEDD_SURFACE_LOCAL pEDDSurfacelcl = NULL; + PEDD_SURFACE pEDDSurface = NULL; PDD_SURFACE_LOCAL pSurfacelcl = NULL; - pSurfacelcl = DdHmgLock(hDdSurface, 2, FALSE); - if (pSurfacelcl != NULL) + pEDDSurface = DdHmgLock(hDdSurface, 2, FALSE); + if (pEDDSurface != NULL) { - pSurfacelcl = &pEDDSurfacelcl->Surfacelcl; + pSurfacelcl = &pEDDSurface->ddsSurfaceLocal; } return pSurfacelcl; @@ -33,12 +33,12 @@ STDCALL DxDdUnlockDirectDrawSurface(PDD_SURFACE_LOCAL pSurface) { BOOL retVal = FALSE; - PEDD_SURFACE_LOCAL pEDDSurfacelcl = NULL; + PEDD_SURFACE pEDDSurface = NULL; if (pSurface) { - pEDDSurfacelcl = (PEDD_SURFACE_LOCAL)( ((PBYTE)pSurface) - sizeof(DD_BASEOBJECT)); - InterlockedDecrement(&pEDDSurfacelcl->Object.cExclusiveLock); + pEDDSurface = (PEDD_SURFACE)( ((PBYTE)pSurface) - sizeof(DD_BASEOBJECT)); + InterlockedDecrement(&pEDDSurface->pobj.cExclusiveLock); retVal = TRUE; } diff --git a/reactos/include/reactos/drivers/directx/directxint.h b/reactos/include/reactos/drivers/directx/directxint.h index 7084b750f8a..2c3c0186254 100644 --- a/reactos/include/reactos/drivers/directx/directxint.h +++ b/reactos/include/reactos/drivers/directx/directxint.h @@ -2,15 +2,20 @@ #ifndef _DXINTERNEL_ #define _DXINTERNEL_ +typedef struct _DD_BASEOBJECT +{ + HANDLE hHmgr; + ULONG ulShareCount; + LONG cExclusiveLock; + PVOID Tid; +} DD_BASEOBJECT, *PDD_BASEOBJECT; + typedef struct _EDD_DIRECTDRAW_LOCAL { // // GDI Object Header // - HANDLE hHmgr; - PVOID pEntry; - INT cExcLock; - HANDLE Tid; + DD_BASEOBJECT pobj; struct _EDD_DIRECTDRAW_GLOBAL * peDirectDrawGlobal; struct _EDD_DIRECTDRAW_GLOBAL * peDirectDrawGlobal2; @@ -35,10 +40,7 @@ typedef struct _EDD_SURFACE // // GDI Object Header // - HANDLE hHmgr; - PVOID pEntry; - INT cExcLock; - HANDLE Tid; + DD_BASEOBJECT pobj; // // Direct Draw Surface Data