summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/render.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/render.h')
-rw-r--r--src/emu/render.h51
1 files changed, 4 insertions, 47 deletions
diff --git a/src/emu/render.h b/src/emu/render.h
index 572b29e0933..3a34066b096 100644
--- a/src/emu/render.h
+++ b/src/emu/render.h
@@ -222,49 +222,6 @@ struct render_texinfo
};
-// ======================> render_screen_list
-
-// a render_screen_list is a list of screen_devices
-class render_screen_list
-{
- // screen list item
- class item
- {
- friend class simple_list<item>;
- friend class render_screen_list;
-
- public:
- // construction/destruction
- item(screen_device &screen) : m_screen(screen) { }
-
- // state
- item * m_next = nullptr; // next screen in list
- screen_device & m_screen; // reference to screen device
- };
-
-public:
- // getters
- int count() const { return m_list.count(); }
-
- // operations
- void add(screen_device &screen) { m_list.append(*global_alloc(item(screen))); }
- void reset() { m_list.reset(); }
-
- // query
- int contains(screen_device &screen) const
- {
- int count = 0;
- for (item *curitem = m_list.first(); curitem; curitem = curitem->m_next)
- if (&curitem->m_screen == &screen) count++;
- return count;
- }
-
-private:
- // internal state
- simple_list<item> m_list;
-};
-
-
// ======================> render_layer_config
// render_layer_config - describes the state of layers
@@ -771,6 +728,7 @@ public:
using environment = emu::render::detail::layout_environment;
using element_map = std::unordered_map<std::string, layout_element>;
using group_map = std::unordered_map<std::string, layout_group>;
+ using render_screen_list = std::list<std::reference_wrapper<screen_device>>;
/// \brief A single backdrop/screen/overlay/bezel/cpanel/marquee item
///
@@ -855,10 +813,12 @@ public:
const render_bounds &bounds() const { return m_bounds; }
const render_bounds &screen_bounds() const { return m_scrbounds; }
const render_screen_list &screens() const { return m_screens; }
+ size_t screen_count() const { return m_screens.size(); }
+ bool has_screen(screen_device &screen) const;
//
bool has_art() const { return m_has_art; }
- float effective_aspect(render_layer_config config) const { return (config.zoom_to_screen() && m_screens.count() != 0) ? m_scraspect : m_aspect; }
+ float effective_aspect(render_layer_config config) const { return (config.zoom_to_screen() && !m_screens.empty()) ? m_scraspect : m_aspect; }
// operations
void recompute(render_layer_config layerconfig);
@@ -989,7 +949,6 @@ public:
// view information
const char *view_name(int viewindex);
- const render_screen_list &view_screens(int viewindex);
// bounds computations
void compute_visible_area(s32 target_width, s32 target_height, float target_pixel_aspect, int target_orientation, s32 &visible_width, s32 &visible_height);
@@ -1079,8 +1038,6 @@ private:
s32 m_clear_extents[MAX_CLEAR_EXTENTS]; // array of clear extents
bool m_transform_container; // determines whether the screen container is transformed by the core renderer,
// otherwise the respective render API will handle the transformation (scale, offset)
-
- static render_screen_list s_empty_screen_list;
};