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/modules/render/drawbgfx.cpp | |
parent | 3be56e3cef6e7778c0ad5b7aac253e6da2876cd2 (diff) | |
parent | 72dd79838fc7b942cedc9099a9cffb01b3bb8637 (diff) |
Merge pull request #13 from mamedev/master
Sync to base master
Diffstat (limited to 'src/osd/modules/render/drawbgfx.cpp')
-rw-r--r-- | src/osd/modules/render/drawbgfx.cpp | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/src/osd/modules/render/drawbgfx.cpp b/src/osd/modules/render/drawbgfx.cpp index f2d58f4e4d5..e359de4624a 100644 --- a/src/osd/modules/render/drawbgfx.cpp +++ b/src/osd/modules/render/drawbgfx.cpp @@ -62,6 +62,7 @@ // TYPES //============================================================ +bool renderer_bgfx::s_window_set = false; //============================================================ // renderer_bgfx::create @@ -100,6 +101,18 @@ int renderer_bgfx::create() m_height[window().m_index] = wdim.height(); if (window().m_index == 0) { + if (!s_window_set) + { + s_window_set = true; + ScreenVertex::init(); + } + else + { + bgfx::shutdown(); + bgfx::PlatformData blank_pd; + memset(&blank_pd, 0, sizeof(bgfx::PlatformData)); + bgfx::setPlatformData(blank_pd); + } #ifdef OSD_WINDOWS bgfx::winSetHwnd(window().m_hwnd); #else @@ -110,8 +123,6 @@ int renderer_bgfx::create() // Enable debug text. bgfx::setDebug(BGFX_DEBUG_TEXT); //BGFX_DEBUG_STATS m_dimensions = osd_dim(m_width[0], m_height[0]); - - ScreenVertex::init(); } m_textures = new texture_manager(); @@ -160,11 +171,14 @@ renderer_bgfx::~renderer_bgfx() delete m_textures; delete m_effects; delete m_shaders; +} +void renderer_bgfx::exit() +{ bgfx::shutdown(); + s_window_set = false; } - //============================================================ // drawsdl_xy_to_render_target //============================================================ |