diff options
Diffstat (limited to 'src/osd/windows/drawd3d.c')
-rw-r--r-- | src/osd/windows/drawd3d.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/osd/windows/drawd3d.c b/src/osd/windows/drawd3d.c index ea99ee2259d..250d7b953db 100644 --- a/src/osd/windows/drawd3d.c +++ b/src/osd/windows/drawd3d.c @@ -250,7 +250,7 @@ static void drawd3d_window_destroy(win_window_info *window) if (d3d == NULL) return; - if (d3d->get_shaders()->recording()) + if (d3d->get_shaders() != NULL && d3d->get_shaders()->recording()) d3d->get_shaders()->window_record(); // free the memory in the window @@ -1040,11 +1040,14 @@ renderer::~renderer() void renderer::device_delete() { - // free our effects - m_shaders->delete_resources(false); + if (m_shaders != NULL) + { + // free our effects + m_shaders->delete_resources(false); - // delete the HLSL interface - global_free(m_shaders); + // delete the HLSL interface + global_free(m_shaders); + } // free our base resources device_delete_resources(); @@ -1070,7 +1073,8 @@ void renderer::device_delete() void renderer::device_delete_resources() { - m_texture_manager->delete_resources(); + if (m_texture_manager != NULL) + m_texture_manager->delete_resources(); // free the vertex buffer if (m_vertexbuf != NULL) (*d3dintf->vertexbuf.release)(m_vertexbuf); |