summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/modules/render/drawbgfx.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/osd/modules/render/drawbgfx.h')
-rw-r--r--src/osd/modules/render/drawbgfx.h19
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;