summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/modules/render/bgfx/chain.cpp
diff options
context:
space:
mode:
author therealmogminer@gmail.com <therealmogminer@gmail.com>2016-05-26 21:53:48 +0200
committer therealmogminer@gmail.com <therealmogminer@gmail.com>2016-05-26 21:54:03 +0200
commit1f1ccd9b7d14d84a13d3950c2de7dfa3afaef638 (patch)
tree0fdfae36fd6abbe778726c7cf9b2a2f7357393ff /src/osd/modules/render/bgfx/chain.cpp
parent87429e74d90481317db41dfc45c7751039cd8b48 (diff)
Fix debug crash with bgfx screen chains
Diffstat (limited to 'src/osd/modules/render/bgfx/chain.cpp')
-rw-r--r--src/osd/modules/render/bgfx/chain.cpp20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/osd/modules/render/bgfx/chain.cpp b/src/osd/modules/render/bgfx/chain.cpp
index 9e399fef255..b056037aba9 100644
--- a/src/osd/modules/render/bgfx/chain.cpp
+++ b/src/osd/modules/render/bgfx/chain.cpp
@@ -34,10 +34,11 @@ bgfx_chain::bgfx_chain(std::string name, std::string author, bool transform, tar
, m_current_time(0)
, m_screen_index(screen_index)
{
- for (bgfx_slider* slider : m_sliders)
- {
- m_slider_map[slider->name()] = slider;
- }
+ for (bgfx_target* target : m_target_list)
+ {
+ m_target_map[target->name()] = target;
+ m_target_names.push_back(target->name());
+ }
}
bgfx_chain::~bgfx_chain()
@@ -60,6 +61,17 @@ bgfx_chain::~bgfx_chain()
}
}
+void bgfx_chain::repopulate_targets()
+{
+ for (size_t i = 0; i < m_target_names.size(); i++)
+ {
+ bgfx_target* target = m_targets.target(m_screen_index, m_target_names[i]);
+ if (target != nullptr) {
+ m_target_list[i] = target;
+ }
+ }
+}
+
void bgfx_chain::process(render_primitive* prim, int view, int screen, texture_manager& textures, osd_window& window, uint64_t blend)
{
screen_device_iterator screen_iterator(window.machine().root_device());