From 0370130854d4a38c8b52ce609d9581e646cbd980 Mon Sep 17 00:00:00 2001 From: Magnus Olsen Date: Mon, 31 Dec 2007 14:31:06 +0000 Subject: [PATCH] Documented ddmg api that been implement svn path=/trunk/; revision=31516 --- reactos/drivers/directx/dxg/ddhmg.c | 54 +++++++++++++++++++++++++++ reactos/drivers/directx/dxg/dxg_int.h | 4 +- reactos/drivers/directx/dxg/eng.c | 6 ++- 3 files changed, 62 insertions(+), 2 deletions(-) diff --git a/reactos/drivers/directx/dxg/ddhmg.c b/reactos/drivers/directx/dxg/ddhmg.c index 2eb02cab5f3..d277a60e29b 100644 --- a/reactos/drivers/directx/dxg/ddhmg.c +++ b/reactos/drivers/directx/dxg/ddhmg.c @@ -31,6 +31,19 @@ VerifyObjectOwner(PDD_ENTRY pEntry) return ( (check == Pid) || (!check)); } +/*++ +* @name DdHmgCreate +* @implemented +* +* The function DdHmgCreate is internal use in dxg.sys +* It Create all DX kernel object that is need it, for create DX object. +* +* @return +* return FALSE for fail, return TRUE for sussess create DX object +* +* @remarks. +* Only use internal in dxg.sys +*--*/ BOOL FASTCALL DdHmgCreate() @@ -64,6 +77,19 @@ DdHmgCreate() return FALSE; } +/*++ +* @name DdHmgDestroy +* @implemented +* +* The function DdHmgDestroy is internal use in dxg.sys +* It destore all DX kernel object +* +* @return +* return FALSE for fail or noting to destore, return TRUE for sussess destore all dx object +* +* @remarks. +* Only use internal in dxg.sys +*--*/ BOOL FASTCALL DdHmgDestroy() @@ -88,6 +114,34 @@ DdHmgDestroy() return TRUE; } +/*++ +* @name DdHmgLock +* @implemented +* +* The function DdHmgLock is internal use in dxg.sys +* it lock a Dx kernel object +* +* @param HANDLE DdHandle +* The handle we want lock +* +* @param UCHAR ObjectType +* The type of the object we expected the handle contain +* value 0 is for getting ? +* value 1 is for getting EDD_DIRECTDRAW_LOCAL +* value 2 is for getting EDD_SURFACE +* value 3 is for getting ? +* value 4 is for getting EDD_VIDEOPORT +* value 5 is for getting EDD_MOTIONCOMP + +* @param BOOLEAN LockOwned +* if it need be EngAcquireSemaphore or not +* +* @return +* return a EDD_* object, or NULL depnes if it success or not. +* +* @remarks. +* Only use internal in dxg.sys +*--*/ PVOID FASTCALL DdHmgLock( HANDLE DdHandle, UCHAR ObjectType, BOOLEAN LockOwned) diff --git a/reactos/drivers/directx/dxg/dxg_int.h b/reactos/drivers/directx/dxg/dxg_int.h index 61bca927e1d..d832ef0af42 100644 --- a/reactos/drivers/directx/dxg/dxg_int.h +++ b/reactos/drivers/directx/dxg/dxg_int.h @@ -31,7 +31,9 @@ #include "tags.h" - +#define ObjType_DDSURFACE_TYPE 2 +#define ObjType_DDVIDEOPORT_TYPE 4 +#define ObjType_DDMOTIONCOMP_TYPE 5 typedef struct _DD_ENTRY { diff --git a/reactos/drivers/directx/dxg/eng.c b/reactos/drivers/directx/dxg/eng.c index 9b71e8db18e..0bff0c8d226 100644 --- a/reactos/drivers/directx/dxg/eng.c +++ b/reactos/drivers/directx/dxg/eng.c @@ -19,7 +19,7 @@ DxDdLockDirectDrawSurface(HANDLE hDdSurface) PEDD_SURFACE pEDDSurface = NULL; PDD_SURFACE_LOCAL pSurfacelcl = NULL; - pEDDSurface = DdHmgLock(hDdSurface, 2, FALSE); + pEDDSurface = DdHmgLock(hDdSurface, ObjType_DDSURFACE_TYPE, FALSE); if (pEDDSurface != NULL) { pSurfacelcl = &pEDDSurface->ddsSurfaceLocal; @@ -48,3 +48,7 @@ DxDdUnlockDirectDrawSurface(PDD_SURFACE_LOCAL pSurface) + + + +