summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/modules/render/drawbgfx.cpp
diff options
context:
space:
mode:
author ImJezze <jezze@gmx.net>2016-02-22 18:29:53 +0100
committer ImJezze <jezze@gmx.net>2016-02-22 18:29:53 +0100
commitd44f8f4c2bdf19fdd55a45c779b746160d90d4fa (patch)
tree16d68eab6a3734ac0aaad0a6bc35e764a5a6fde9 /src/osd/modules/render/drawbgfx.cpp
parent3be56e3cef6e7778c0ad5b7aac253e6da2876cd2 (diff)
parent72dd79838fc7b942cedc9099a9cffb01b3bb8637 (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.cpp20
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
//============================================================