diff options
author | 2016-02-22 18:29:53 +0100 | |
---|---|---|
committer | 2016-02-22 18:29:53 +0100 | |
commit | d44f8f4c2bdf19fdd55a45c779b746160d90d4fa (patch) | |
tree | 16d68eab6a3734ac0aaad0a6bc35e764a5a6fde9 /src/osd/windows/window.cpp | |
parent | 3be56e3cef6e7778c0ad5b7aac253e6da2876cd2 (diff) | |
parent | 72dd79838fc7b942cedc9099a9cffb01b3bb8637 (diff) |
Merge pull request #13 from mamedev/master
Sync to base master
Diffstat (limited to 'src/osd/windows/window.cpp')
-rw-r--r-- | src/osd/windows/window.cpp | 35 |
1 files changed, 29 insertions, 6 deletions
diff --git a/src/osd/windows/window.cpp b/src/osd/windows/window.cpp index ee78e574a67..bb81f0b9de5 100644 --- a/src/osd/windows/window.cpp +++ b/src/osd/windows/window.cpp @@ -325,6 +325,29 @@ void windows_osd_interface::window_exit() global_free(temp); } + switch(video_config.mode) + { + case VIDEO_MODE_NONE: + renderer_none::exit(); + break; + case VIDEO_MODE_GDI: + renderer_gdi::exit(); + break; + case VIDEO_MODE_BGFX: + renderer_bgfx::exit(); + break; +#if (USE_OPENGL) + case VIDEO_MODE_OPENGL: + renderer_ogl::exit(); + break; +#endif + case VIDEO_MODE_D3D: + renderer_d3d9::exit(); + break; + default: + break; + } + // if we're multithreaded, clean up the window thread if (multithreading_enabled) { @@ -375,6 +398,10 @@ win_window_info::win_window_info(running_machine &machine) win_window_info::~win_window_info() { + if (m_renderer != nullptr) + { + delete m_renderer; + } } @@ -1283,7 +1310,7 @@ int win_window_info::complete_create() // finish off by trying to initialize DirectX; if we fail, ignore it if (m_renderer != nullptr) { - global_free(m_renderer); + delete m_renderer; } m_renderer = osd_renderer::make_for_type(video_config.mode, reinterpret_cast<osd_window *>(this)); if (m_renderer->create()) @@ -1938,7 +1965,7 @@ void win_window_info::set_fullscreen(int fullscreen) m_fullscreen = fullscreen; // kill off the drawers - global_free(m_renderer); + delete m_renderer; m_renderer = nullptr; // hide ourself @@ -1996,10 +2023,6 @@ void win_window_info::set_fullscreen(int fullscreen) if (video_config.mode != VIDEO_MODE_NONE) ShowWindow(m_hwnd, SW_SHOW); - if (m_renderer != nullptr) - { - delete m_renderer; - } m_renderer = reinterpret_cast<osd_renderer *>(osd_renderer::make_for_type(video_config.mode, reinterpret_cast<osd_window *>(this))); if (m_renderer->create()) exit(1); |