diff options
Diffstat (limited to 'src/osd/modules/render/bgfx/targetmanager.cpp')
-rw-r--r-- | src/osd/modules/render/bgfx/targetmanager.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/osd/modules/render/bgfx/targetmanager.cpp b/src/osd/modules/render/bgfx/targetmanager.cpp index e61bda90747..b04a280eb1d 100644 --- a/src/osd/modules/render/bgfx/targetmanager.cpp +++ b/src/osd/modules/render/bgfx/targetmanager.cpp @@ -58,19 +58,20 @@ void target_manager::update_guest_targets(uint16_t width, uint16_t height) { m_guest_width = width; m_guest_height = height; - std::vector<bgfx_target*> to_resize; for (std::pair<std::string, bgfx_target*> target : m_targets) { if ((target.second)->style() == TARGET_STYLE_GUEST) { - to_resize.push_back(target.second); + bgfx_target* target_ptr = target.second; + std::string name = target_ptr->name(); + const bgfx::TextureFormat::Enum format = target_ptr->format(); + const bool double_buffered = target_ptr->double_buffered(); + const bool filter = target_ptr->filter(); + delete target_ptr; + + target.second = new bgfx_target(name, format, width, height, TARGET_STYLE_GUEST, double_buffered, filter); + m_textures.add_provider(name, target.second); } } - - for (bgfx_target* target : to_resize) - { - m_targets[target->name()] = new bgfx_target(target->name(), target->format(), width, height, TARGET_STYLE_GUEST, target->double_buffered(), target->filter()); - delete target; - } } } |