diff options
author | 2019-11-24 16:46:03 -0500 | |
---|---|---|
committer | 2019-11-24 16:46:03 -0500 | |
commit | aadd818687caa73d2748d63c725d0794724f99ae (patch) | |
tree | 96087728738844040a0c09b1bf9780a1e0a01d7f /src/emu/render.cpp | |
parent | e2fcccbd101b7c92376eb750c6870e941d316b52 (diff) |
Clean up render_screen_list code, replacing simple_list with std::list (nw)
Diffstat (limited to 'src/emu/render.cpp')
-rw-r--r-- | src/emu/render.cpp | 42 |
1 files changed, 17 insertions, 25 deletions
diff --git a/src/emu/render.cpp b/src/emu/render.cpp index f20650fb4be..b25e18fa968 100644 --- a/src/emu/render.cpp +++ b/src/emu/render.cpp @@ -1062,17 +1062,18 @@ int render_target::configured_view(const char *viewname, int targetindex, int nu { int ourindex = index() % scrcount; screen_device *screen = iter.byindex(ourindex); + assert(screen != nullptr); // find the first view with this screen and this screen only for (view = view_by_index(viewindex = 0); view != nullptr; view = view_by_index(++viewindex)) { - const render_screen_list &viewscreens = view->screens(); - if (viewscreens.count() == 0) + auto const &viewscreens = view->screens(); + if (viewscreens.empty()) { view = nullptr; break; } - else if (viewscreens.count() == viewscreens.contains(*screen)) + else if (std::find_if(viewscreens.begin(), viewscreens.end(), [&screen](auto const &scr) { return &scr.get() != screen; }) == viewscreens.end()) break; } } @@ -1082,13 +1083,12 @@ int render_target::configured_view(const char *viewname, int targetindex, int nu { for (view = view_by_index(viewindex = 0); view != nullptr; view = view_by_index(++viewindex)) { - render_screen_list const &viewscreens(view->screens()); - if (viewscreens.count() >= scrcount) + if (view->screen_count() >= scrcount) { bool screen_missing(false); for (screen_device &screen : iter) { - if (!viewscreens.contains(screen)) + if (!view->has_screen(screen)) { screen_missing = true; break; @@ -1118,19 +1118,6 @@ const char *render_target::view_name(int viewindex) //------------------------------------------------- -// render_target_get_view_screens - return a -// bitmask of which screens are visible on a -// given view -//------------------------------------------------- - -const render_screen_list &render_target::view_screens(int viewindex) -{ - layout_view *view = view_by_index(viewindex); - return (view != nullptr) ? view->screens() : s_empty_screen_list; -} - - -//------------------------------------------------- // compute_visible_area - compute the visible // area for the given target with the current // layout and proposed new parameters @@ -1797,13 +1784,12 @@ void render_target::load_additional_layout_files(const char *basename, bool have int viewindex(0); for (layout_view *view = view_by_index(viewindex); need_tiles && view; view = view_by_index(++viewindex)) { - render_screen_list const &viewscreens(view->screens()); - if (viewscreens.count() >= screens.size()) + if (view->screen_count() >= screens.size()) { bool screen_missing(false); for (screen_device &screen : iter) { - if (!viewscreens.contains(screen)) + if (!view->has_screen(screen)) { screen_missing = true; break; @@ -2977,9 +2963,15 @@ render_manager::~render_manager() bool render_manager::is_live(screen_device &screen) const { // iterate over all live targets and or together their screen masks - for (render_target &target : m_targetlist) - if (!target.hidden() && target.view_screens(target.view()).contains(screen)) - return true; + for (render_target const &target : m_targetlist) + { + if (!target.hidden()) + { + layout_view const *view = target.current_view(); + if (view != nullptr && view->has_screen(screen)) + return true; + } + } return false; } |