From 56a17b21f102af55f9b866831f8cea7686548964 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Thu, 7 Jan 2016 00:19:27 +0100 Subject: [PATCH] Create d3d_device_free --- gfx/common/d3d_common.cpp | 13 +++++++++++++ gfx/common/d3d_common.h | 2 ++ gfx/d3d/d3d.cpp | 5 +---- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/gfx/common/d3d_common.cpp b/gfx/common/d3d_common.cpp index 63c5b148db..8e71debb4c 100644 --- a/gfx/common/d3d_common.cpp +++ b/gfx/common/d3d_common.cpp @@ -502,3 +502,16 @@ bool d3d_reset(LPDIRECT3DDEVICE dev, D3DPRESENT_PARAMETERS *d3dpp) return false; } + +void d3d_device_free(LPDIRECT3DDEVICE dev, LPDIRECT3D pd3d) +{ + if (!dev) + return; + + dev->Release(); + + if (!pd3d) + return; + + pd3d->Release(); +} diff --git a/gfx/common/d3d_common.h b/gfx/common/d3d_common.h index 82c63a451f..c4fef15ea3 100644 --- a/gfx/common/d3d_common.h +++ b/gfx/common/d3d_common.h @@ -111,6 +111,8 @@ void d3d_set_render_state(void *data, D3DRENDERSTATETYPE state, DWORD value); bool d3d_reset(LPDIRECT3DDEVICE dev, D3DPRESENT_PARAMETERS *d3dpp); +void d3d_device_free(LPDIRECT3DDEVICE dev, LPDIRECT3D pd3d); + #ifdef __cplusplus } #endif diff --git a/gfx/d3d/d3d.cpp b/gfx/d3d/d3d.cpp index cc300db18e..9c4092a7b8 100644 --- a/gfx/d3d/d3d.cpp +++ b/gfx/d3d/d3d.cpp @@ -834,10 +834,7 @@ static void d3d_free(void *data) #endif #endif - if (d3d->dev) - d3d->dev->Release(); - if (d3d->g_pD3D) - d3d->g_pD3D->Release(); + d3d_device_free(d3d->dev); win32_monitor_from_window(window, true);