From e248b95f9d33160a298a64d2abf3be2ab1c2b534 Mon Sep 17 00:00:00 2001 From: Magnus Olsen Date: Fri, 8 Jun 2007 12:57:00 +0000 Subject: [PATCH] fixing a smaller bug extream hard to find, if we got two or more directdraw object we choice always the lates hDD not the object own hDD use This->lpLcl->lpGbl->hDD = This->lpLcl->hDD; to set the object own hDD before call any dxhal api svn path=/trunk/; revision=27070 --- reactos/dll/directx/ddraw/Ddraw/ddraw_displaymode.c | 3 +++ reactos/dll/directx/ddraw/Ddraw/ddraw_main.c | 2 ++ 2 files changed, 5 insertions(+) diff --git a/reactos/dll/directx/ddraw/Ddraw/ddraw_displaymode.c b/reactos/dll/directx/ddraw/Ddraw/ddraw_displaymode.c index 1359f5d8fb5..f97cfe0a2e7 100644 --- a/reactos/dll/directx/ddraw/Ddraw/ddraw_displaymode.c +++ b/reactos/dll/directx/ddraw/Ddraw/ddraw_displaymode.c @@ -177,6 +177,7 @@ Main_DirectDraw_SetDisplayMode (LPDIRECTDRAW7 iface, DWORD dwWidth, DWORD dwHeig { // Update Interals BOOL ModeChanged; + This->lpLcl->lpGbl->hDD = This->lpLcl->hDD; DdReenableDirectDrawObject(This->lpLcl->lpGbl, &ModeChanged); StartDirectDraw((LPDIRECTDRAW)iface, 0, TRUE); } @@ -203,6 +204,8 @@ Main_DirectDraw_RestoreDisplayMode (LPDIRECTDRAW7 iface) // Update Interals BOOL ModeChanged; + + This->lpLcl->lpGbl->hDD = This->lpLcl->hDD; DdReenableDirectDrawObject(This->lpLcl->lpGbl, &ModeChanged); StartDirectDraw((LPDIRECTDRAW)iface, 0, TRUE); } diff --git a/reactos/dll/directx/ddraw/Ddraw/ddraw_main.c b/reactos/dll/directx/ddraw/Ddraw/ddraw_main.c index 24497e2a4dc..3538c0c8d52 100644 --- a/reactos/dll/directx/ddraw/Ddraw/ddraw_main.c +++ b/reactos/dll/directx/ddraw/Ddraw/ddraw_main.c @@ -202,6 +202,8 @@ Main_DirectDraw_GetAvailableVidMem(LPDIRECTDRAW7 iface, LPDDSCAPS2 ddscaps, memdata.ddRVal = DDERR_INVALIDPARAMS; memcpy(&memdata.DDSCaps, ddscaps, sizeof(DDSCAPS2)); + This->lpLcl->lpGbl->hDD = This->lpLcl->hDD; + if (This->lpLcl->lpDDCB->HALDDMiscellaneous.GetAvailDriverMemory(&memdata) == DDHAL_DRIVER_NOTHANDLED) { retVal = DDERR_NODIRECTDRAWHW;