summaryrefslogtreecommitdiffstats
path: root/src/emu/render.cpp
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2016-04-18 18:53:28 -0400
committer AJR <ajrhacker@users.noreply.github.com>2016-04-18 18:53:28 -0400
commit084d3654ca14a79d9ec173bad4ddf00ad0fb5a7f (patch)
tree197ae37b68f3169048fb3cadf6947353315f3608 /src/emu/render.cpp
parent55d3e544e013174880c8f208264683aac6d711f9 (diff)
Iterate over devices C++11 style
Replace the old device_iterator and its specialized versions with functionally equivalent classes that use standard operators to yield references to devices/interfaces rather than pointers. With range-based for loops, they no longer have to be stored in named variables, though they can also be reused concurrently since the iteration state is now maintained by a subclass. Add a few more typical getters to device_t::subdevice_list.
Diffstat (limited to 'src/emu/render.cpp')
-rw-r--r--src/emu/render.cpp16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/emu/render.cpp b/src/emu/render.cpp
index a26bab1849e..8cecb759b53 100644
--- a/src/emu/render.cpp
+++ b/src/emu/render.cpp
@@ -1103,11 +1103,14 @@ int render_target::configured_view(const char *viewname, int targetindex, int nu
break;
if (viewscreens.count() >= scrcount)
{
- screen_device *screen;
- for (screen = iter.first(); screen != nullptr; screen = iter.next())
- if (!viewscreens.contains(*screen))
+ bool has_screen = false;
+ for (screen_device &screen : iter)
+ if (!viewscreens.contains(screen))
+ {
+ has_screen = true;
break;
- if (screen == nullptr)
+ }
+ if (!has_screen)
break;
}
}
@@ -2567,9 +2570,8 @@ render_manager::render_manager(running_machine &machine)
machine.configuration().config_register("video", config_saveload_delegate(FUNC(render_manager::config_load), this), config_saveload_delegate(FUNC(render_manager::config_save), this));
// create one container per screen
- screen_device_iterator iter(machine.root_device());
- for (screen_device *screen = iter.first(); screen != nullptr; screen = iter.next())
- screen->set_container(*container_alloc(screen));
+ for (screen_device &screen : screen_device_iterator(machine.root_device()))
+ screen.set_container(*container_alloc(&screen));
}