summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--video/out/opengl/context_dxinterop.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/video/out/opengl/context_dxinterop.c b/video/out/opengl/context_dxinterop.c
index a23318a6a4..507c150d15 100644
--- a/video/out/opengl/context_dxinterop.c
+++ b/video/out/opengl/context_dxinterop.c
@@ -565,12 +565,6 @@ static void dxinterop_swap_buffers(MPGLContext *ctx)
return;
}
- if (!gl->DXLockObjectsNV(p->device_h, 1, &p->rtarget_h)) {
- MP_ERR(ctx->vo, "Couldn't lock rendertarget after stretchrect: %s\n",
- mp_LastError_to_str());
- return;
- }
-
hr = IDirect3DDevice9Ex_PresentEx(p->device, NULL, NULL, NULL, NULL, 0);
switch (hr) {
case D3DERR_DEVICELOST:
@@ -578,11 +572,16 @@ static void dxinterop_swap_buffers(MPGLContext *ctx)
MP_VERBOSE(ctx->vo, "Direct3D device lost! Resetting.\n");
p->lost_device = true;
dxinterop_reset(ctx);
- break;
+ return;
default:
if (FAILED(hr))
MP_ERR(ctx->vo, "Failed to present: %s\n", mp_HRESULT_to_str(hr));
}
+
+ if (!gl->DXLockObjectsNV(p->device_h, 1, &p->rtarget_h)) {
+ MP_ERR(ctx->vo, "Couldn't lock rendertarget after present: %s\n",
+ mp_LastError_to_str());
+ }
}
static int dxinterop_control(MPGLContext *ctx, int *events, int request,