diff options
Diffstat (limited to 'src/osd/modules/render/drawbgfx.h')
-rw-r--r-- | src/osd/modules/render/drawbgfx.h | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/src/osd/modules/render/drawbgfx.h b/src/osd/modules/render/drawbgfx.h index b2fe4abda78..d48bb5914e6 100644 --- a/src/osd/modules/render/drawbgfx.h +++ b/src/osd/modules/render/drawbgfx.h @@ -12,6 +12,7 @@ #include "binpacker.h" #include "bgfx/vertex.h" +#include "sliderdirtynotifier.h" class texture_manager; class target_manager; @@ -24,7 +25,7 @@ class bgfx_target; class bgfx_chain; /* sdl_info is the information about SDL for the current screen */ -class renderer_bgfx : public osd_renderer +class renderer_bgfx : public osd_renderer, public slider_dirty_notifier { public: renderer_bgfx(osd_window *w) @@ -39,9 +40,10 @@ public: static void exit(); virtual int create() override; - virtual slider_state* get_slider_list() override; - virtual bool multi_window_sliders() override { return true; } - virtual int draw(const int update) override; + virtual int draw(const int update) override; + + virtual std::vector<ui_menu_item> get_slider_list() override; + virtual void set_sliders_dirty() override; #ifdef OSD_SDL virtual int xy_to_render_target(const int x, const int y, int *xt, int *yt) override; @@ -58,11 +60,10 @@ public: return &window().target()->get_primitives(); } - static const char* WINDOW_PREFIX; + static const char* WINDOW_PREFIX; private: - int handle_screen_chains(); - void parse_screen_chains(std::string chain_str); + void handle_screen_chains(render_primitive *starting_prim); bgfx_chain* screen_chain(int32_t screen); bool update_dimensions(); @@ -81,7 +82,6 @@ private: }; buffer_status buffer_primitives(bool atlas_valid, render_primitive** prim, bgfx::TransientVertexBuffer* buffer, int32_t screen); - void process_screen_quad(int view, render_primitive* prim); void render_textured_quad(render_primitive* prim, bgfx::TransientVertexBuffer* buffer); void render_post_screen_quad(int view, render_primitive* prim, bgfx::TransientVertexBuffer* buffer, int32_t screen); @@ -90,14 +90,12 @@ private: void put_line(float x0, float y0, float x1, float y1, float r, UINT32 rgba, ScreenVertex* vertex, float fth = 1.0f); void set_bgfx_state(UINT32 blend); - uint64_t get_blend_state(UINT32 blend); static uint32_t u32Color(uint32_t r, uint32_t g, uint32_t b, uint32_t a); bool check_for_dirty_atlas(); bool update_atlas(); void process_atlas_packs(std::vector<std::vector<rectangle_packer::packed_rectangle>>& packed); - const bgfx::Memory* mame_texture_data_to_bgfx_texture_data(UINT32 format, int width, int height, int rowpixels, const rgb_t *palette, void *base); UINT32 get_texture_hash(render_primitive *prim); bgfx_target* m_framebuffer; @@ -114,7 +112,6 @@ private: bgfx_effect* m_gui_effect[4]; bgfx_effect* m_screen_effect[4]; - std::vector<std::vector<bgfx_chain*>> m_screen_chains; std::vector<uint32_t> m_seen_views; std::map<UINT32, rectangle_packer::packed_rectangle> m_hash_to_entry; |