From a4f927b09510407c6e3a1ce0f2e36b73fcadc162 Mon Sep 17 00:00:00 2001 From: FunkyFr3sh Date: Fri, 18 Oct 2024 18:02:30 +0200 Subject: [PATCH] add a check for DDSCAPS_OWNDC --- src/ddsurface.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/ddsurface.c b/src/ddsurface.c index 2f87cf0..20ddd4f 100644 --- a/src/ddsurface.c +++ b/src/ddsurface.c @@ -917,7 +917,8 @@ HRESULT dds_GetDC(IDirectDrawSurfaceImpl* This, HDC FAR* lpHDC) if (lpHDC) *lpHDC = dc; - InterlockedExchange((LONG*)&This->dc_state, SaveDC(dc)); + if (!(This->caps & DDSCAPS_OWNDC)) + InterlockedExchange((LONG*)&This->dc_state, SaveDC(dc)); return DD_OK; } @@ -1025,7 +1026,8 @@ HRESULT dds_ReleaseDC(IDirectDrawSurfaceImpl* This, HDC hDC) } } - RestoreDC(hDC, InterlockedExchangeAdd((LONG*)&This->dc_state, 0)); + if (!(This->caps & DDSCAPS_OWNDC)) + RestoreDC(hDC, InterlockedExchangeAdd((LONG*)&This->dc_state, 0)); return DD_OK; }