From d8d12fa215c21b9e021966ca67361dff605b4851 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sun, 24 Nov 2024 17:03:01 -0500 Subject: [PATCH] renderDX9: handle more present errors --- src/gui/render/renderDX9.cpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/gui/render/renderDX9.cpp b/src/gui/render/renderDX9.cpp index 9595c90ee..9b8c386f9 100644 --- a/src/gui/render/renderDX9.cpp +++ b/src/gui/render/renderDX9.cpp @@ -276,10 +276,26 @@ void FurnaceGUIRenderDX9::present() { inScene=false; } - if (device->Present(NULL,NULL,NULL,NULL)==D3DERR_DEVICEREMOVED) { + HRESULT result=device->Present(NULL,NULL,NULL,NULL); + + if (result==D3DERR_DEVICEREMOVED) { logI("device is gone"); dead=true; return; + } else if (result==D3DERR_DEVICEHUNG) { + logI("device has been executed"); + dead=true; + return; + } else if (result==D3DERR_DEVICELOST) { + logI("device lost"); + dead=true; + return; + } else if (result==D3DERR_DEVICENOTRESET) { + logI("device not reset"); + dead=true; + return; + } else if (result!=D3D_OK) { + logE("DX9: Present ERROR! %x",result); } if (mustResize) {