diff options
Diffstat (limited to 'src/osd/modules/render/bgfx/targetmanager.cpp')
-rw-r--r-- | src/osd/modules/render/bgfx/targetmanager.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/osd/modules/render/bgfx/targetmanager.cpp b/src/osd/modules/render/bgfx/targetmanager.cpp new file mode 100644 index 00000000000..8f9a0a6bf8b --- /dev/null +++ b/src/osd/modules/render/bgfx/targetmanager.cpp @@ -0,0 +1,33 @@ +#include <bgfx/bgfx.h> + +#include "targetmanager.h" +#include "target.h" + +target_manager::~target_manager() +{ + for (std::pair<std::string, bgfx_target*> target : m_targets) + { + delete target.second; + } + m_targets.clear(); +} + +bgfx_target* target_manager::create_target(std::string name, bgfx::TextureFormat::Enum format, uint32_t width, uint32_t height, bool filter) +{ + bgfx_target* target = new bgfx_target(name, format, width, height, filter); + m_targets[name] = target; + + m_textures.add_texture(name, target); + return target; +} + +bgfx_target* target_manager::target(std::string name) +{ + std::map<std::string, bgfx_target*>::iterator iter = m_targets.find(name); + if (iter != m_targets.end()) + { + return iter->second; + } + + return nullptr; +} |