summaryrefslogtreecommitdiffstatshomepage
path: root/src/frontend/mame/ui/widgets.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/frontend/mame/ui/widgets.h')
-rw-r--r--src/frontend/mame/ui/widgets.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/frontend/mame/ui/widgets.h b/src/frontend/mame/ui/widgets.h
index 45f1725d7ec..567b0a4e499 100644
--- a/src/frontend/mame/ui/widgets.h
+++ b/src/frontend/mame/ui/widgets.h
@@ -21,6 +21,7 @@
namespace ui {
+
/***************************************************************************
TYPE DEFINITIONS
***************************************************************************/
@@ -34,8 +35,17 @@ public:
render_texture *hilight_main_texture() { return m_hilight_main_texture.get(); }
render_texture *arrow_texture() { return m_arrow_texture.get(); }
+ class texture_destroyer
+ {
+ public:
+ texture_destroyer(render_manager &manager) : m_manager(manager) { }
+ void operator()(render_texture *texture) const { m_manager.get().texture_free(texture); }
+ private:
+ std::reference_wrapper<render_manager> m_manager;
+ };
+
using bitmap_ptr = std::unique_ptr<bitmap_argb32>;
- using texture_ptr = std::unique_ptr<render_texture, std::function<void(render_texture *)> >;
+ using texture_ptr = std::unique_ptr<render_texture, texture_destroyer>;
private:
static void render_triangle(bitmap_argb32 &dest, bitmap_argb32 &source, const rectangle &sbounds, void *param);