summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/render.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/render.cpp')
-rw-r--r--src/emu/render.cpp272
1 files changed, 136 insertions, 136 deletions
diff --git a/src/emu/render.cpp b/src/emu/render.cpp
index a90c727e39a..0f9bc97d77d 100644
--- a/src/emu/render.cpp
+++ b/src/emu/render.cpp
@@ -182,7 +182,7 @@ inline item_layer get_layer_and_blendmode(const layout_view &view, int index, in
// screens (add) + overlays (RGB multiply) + backdrop (add) + bezels (alpha) + cpanels (alpha) + marquees (alpha)
const int *layer_order = layer_order_standard;
- if (view.first_item(ITEM_LAYER_BACKDROP) != NULL && view.first_item(ITEM_LAYER_BACKDROP)->next() != NULL && view.first_item(ITEM_LAYER_OVERLAY) == NULL)
+ if (view.first_item(ITEM_LAYER_BACKDROP) != nullptr && view.first_item(ITEM_LAYER_BACKDROP)->next() != nullptr && view.first_item(ITEM_LAYER_OVERLAY) == nullptr)
layer_order = layer_order_alternate;
// select the layer
@@ -268,7 +268,7 @@ inline void render_primitive_list::add_reference(void *refptr)
inline bool render_primitive_list::has_reference(void *refptr) const
{
// skip if we already have one
- for (reference *ref = m_reflist.first(); ref != NULL; ref = ref->next())
+ for (reference *ref = m_reflist.first(); ref != nullptr; ref = ref->next())
if (ref->m_refptr == refptr)
return true;
return false;
@@ -328,13 +328,13 @@ void render_primitive_list::append_or_return(render_primitive &prim, bool clippe
//-------------------------------------------------
render_texture::render_texture()
- : m_manager(NULL),
- m_next(NULL),
- m_bitmap(NULL),
+ : m_manager(nullptr),
+ m_next(nullptr),
+ m_bitmap(nullptr),
m_format(TEXFORMAT_ARGB32),
m_osddata(~0L),
- m_scaler(NULL),
- m_param(NULL),
+ m_scaler(nullptr),
+ m_param(nullptr),
m_curseq(0)
{
m_sbounds.set(0, -1, 0, -1);
@@ -360,7 +360,7 @@ render_texture::~render_texture()
void render_texture::reset(render_manager &manager, texture_scaler_func scaler, void *param)
{
m_manager = &manager;
- if (scaler != NULL)
+ if (scaler != nullptr)
{
assert(m_format == TEXFORMAT_ARGB32);
m_scaler = scaler;
@@ -377,17 +377,17 @@ void render_texture::reset(render_manager &manager, texture_scaler_func scaler,
void render_texture::release()
{
// free all scaled versions
- for (int scalenum = 0; scalenum < ARRAY_LENGTH(m_scaled); scalenum++)
+ for (auto & elem : m_scaled)
{
- m_manager->invalidate_all(m_scaled[scalenum].bitmap);
- global_free(m_scaled[scalenum].bitmap);
- m_scaled[scalenum].bitmap = NULL;
- m_scaled[scalenum].seqid = 0;
+ m_manager->invalidate_all(elem.bitmap);
+ global_free(elem.bitmap);
+ elem.bitmap = nullptr;
+ elem.seqid = 0;
}
// invalidate references to the original bitmap as well
m_manager->invalidate_all(m_bitmap);
- m_bitmap = NULL;
+ m_bitmap = nullptr;
m_sbounds.set(0, -1, 0, -1);
m_format = TEXFORMAT_ARGB32;
m_curseq = 0;
@@ -404,10 +404,10 @@ void render_texture::set_bitmap(bitmap_t &bitmap, const rectangle &sbounds, text
// ensure we have a valid palette for palettized modes
if (format == TEXFORMAT_PALETTE16 || format == TEXFORMAT_PALETTEA16)
- assert(bitmap.palette() != NULL);
+ assert(bitmap.palette() != nullptr);
// invalidate references to the old bitmap
- if (&bitmap != m_bitmap && m_bitmap != NULL)
+ if (&bitmap != m_bitmap && m_bitmap != nullptr)
m_manager->invalidate_all(m_bitmap);
// set the new bitmap/palette
@@ -416,15 +416,15 @@ void render_texture::set_bitmap(bitmap_t &bitmap, const rectangle &sbounds, text
m_format = format;
// invalidate all scaled versions
- for (int scalenum = 0; scalenum < ARRAY_LENGTH(m_scaled); scalenum++)
+ for (auto & elem : m_scaled)
{
- if (m_scaled[scalenum].bitmap != NULL)
+ if (elem.bitmap != nullptr)
{
- m_manager->invalidate_all(m_scaled[scalenum].bitmap);
- global_free(m_scaled[scalenum].bitmap);
+ m_manager->invalidate_all(elem.bitmap);
+ global_free(elem.bitmap);
}
- m_scaled[scalenum].bitmap = NULL;
- m_scaled[scalenum].seqid = 0;
+ elem.bitmap = nullptr;
+ elem.seqid = 0;
}
}
@@ -459,7 +459,7 @@ void render_texture::get_scaled(UINT32 dwidth, UINT32 dheight, render_texinfo &t
texinfo.osddata = m_osddata;
// are we scaler-free? if so, just return the source bitmap
- if (m_scaler == NULL || (m_bitmap != NULL && swidth == dwidth && sheight == dheight))
+ if (m_scaler == nullptr || (m_bitmap != nullptr && swidth == dwidth && sheight == dheight))
{
// add a reference and set up the source bitmap
primlist.add_reference(m_bitmap);
@@ -474,17 +474,17 @@ void render_texture::get_scaled(UINT32 dwidth, UINT32 dheight, render_texinfo &t
{
// make sure we can recover the original argb32 bitmap
bitmap_argb32 dummy;
- bitmap_argb32 &srcbitmap = (m_bitmap != NULL) ? downcast<bitmap_argb32 &>(*m_bitmap) : dummy;
+ bitmap_argb32 &srcbitmap = (m_bitmap != nullptr) ? downcast<bitmap_argb32 &>(*m_bitmap) : dummy;
// is it a size we already have?
- scaled_texture *scaled = NULL;
+ scaled_texture *scaled = nullptr;
int scalenum;
for (scalenum = 0; scalenum < ARRAY_LENGTH(m_scaled); scalenum++)
{
scaled = &m_scaled[scalenum];
// we need a non-NULL bitmap with matching dest size
- if (scaled->bitmap != NULL && dwidth == scaled->bitmap->width() && dheight == scaled->bitmap->height())
+ if (scaled->bitmap != nullptr && dwidth == scaled->bitmap->width() && dheight == scaled->bitmap->height())
break;
}
@@ -501,7 +501,7 @@ void render_texture::get_scaled(UINT32 dwidth, UINT32 dheight, render_texinfo &t
// throw out any existing entries
scaled = &m_scaled[lowest];
- if (scaled->bitmap != NULL)
+ if (scaled->bitmap != nullptr)
{
m_manager->invalidate_all(scaled->bitmap);
global_free(scaled->bitmap);
@@ -540,7 +540,7 @@ const rgb_t *render_texture::get_adjusted_palette(render_container &container)
case TEXFORMAT_PALETTE16:
case TEXFORMAT_PALETTEA16:
- assert(m_bitmap->palette() != NULL);
+ assert(m_bitmap->palette() != nullptr);
// return our adjusted palette
return container.bcg_lookup_table(m_format, m_bitmap->palette());
@@ -551,14 +551,14 @@ const rgb_t *render_texture::get_adjusted_palette(render_container &container)
// if no adjustment necessary, return NULL
if (!container.has_brightness_contrast_gamma_changes())
- return NULL;
+ return nullptr;
return container.bcg_lookup_table(m_format);
default:
assert(FALSE);
}
- return NULL;
+ return nullptr;
}
@@ -572,17 +572,17 @@ const rgb_t *render_texture::get_adjusted_palette(render_container &container)
//-------------------------------------------------
render_container::render_container(render_manager &manager, screen_device *screen)
- : m_next(NULL),
+ : m_next(nullptr),
m_manager(manager),
m_screen(screen),
- m_overlaybitmap(NULL),
- m_overlaytexture(NULL)
+ m_overlaybitmap(nullptr),
+ m_overlaytexture(nullptr)
{
// make sure it is empty
empty();
// if we have a screen, read and apply the options
- if (m_screen != NULL)
+ if (m_screen != nullptr)
{
// set the initial orientation and brightness/contrast/gamma
m_user.m_orientation = manager.machine().system().flags & ORIENTATION_MASK;
@@ -622,7 +622,7 @@ void render_container::set_overlay(bitmap_argb32 *bitmap)
// set the new data and allocate the texture
m_overlaybitmap = bitmap;
- if (m_overlaybitmap != NULL)
+ if (m_overlaybitmap != nullptr)
{
m_overlaytexture = m_manager.texture_alloc(render_container::overlay_scale);
m_overlaytexture->set_bitmap(*bitmap, bitmap->cliprect(), TEXFORMAT_ARGB32);
@@ -722,9 +722,9 @@ const rgb_t *render_container::bcg_lookup_table(int texformat, palette_t *palett
{
case TEXFORMAT_PALETTE16:
case TEXFORMAT_PALETTEA16:
- if (m_palclient == NULL) // if adjusted palette hasn't been created yet, create it
+ if (m_palclient == nullptr) // if adjusted palette hasn't been created yet, create it
{
- m_palclient.reset(global_alloc(palette_client(*palette)));
+ m_palclient = std::make_unique<palette_client>(*palette);
m_bcglookup.resize(palette->max_index());
recompute_lookups();
}
@@ -737,7 +737,7 @@ const rgb_t *render_container::bcg_lookup_table(int texformat, palette_t *palett
return m_bcglookup256;
default:
- return NULL;
+ return nullptr;
}
}
@@ -788,7 +788,7 @@ render_container::item &render_container::add_generic(UINT8 type, float x0, floa
newitem->m_flags = 0;
newitem->m_internal = 0;
newitem->m_width = 0;
- newitem->m_texture = NULL;
+ newitem->m_texture = nullptr;
// add the item to the container
return m_itemlist.append(*newitem);
@@ -813,7 +813,7 @@ void render_container::recompute_lookups()
}
// recompute the palette entries
- if (m_palclient != NULL)
+ if (m_palclient != nullptr)
{
palette_t &palette = m_palclient->palette();
const rgb_t *adjusted_palette = palette.entry_list_adjusted();
@@ -844,7 +844,7 @@ void render_container::recompute_lookups()
void render_container::update_palette()
{
// skip if no client
- if (m_palclient == NULL)
+ if (m_palclient == nullptr)
return;
// get the dirty list
@@ -852,7 +852,7 @@ void render_container::update_palette()
const UINT32 *dirty = m_palclient->dirty_list(mindirty, maxdirty);
// iterate over dirty items and update them
- if (dirty != NULL)
+ if (dirty != nullptr)
{
palette_t &palette = m_palclient->palette();
const rgb_t *adjusted_palette = palette.entry_list_adjusted();
@@ -911,9 +911,9 @@ render_container::user_settings::user_settings()
//-------------------------------------------------
render_target::render_target(render_manager &manager, const char *layoutfile, UINT32 flags)
- : m_next(NULL),
+ : m_next(nullptr),
m_manager(manager),
- m_curview(NULL),
+ m_curview(nullptr),
m_flags(flags),
m_listindex(0),
m_width(640),
@@ -921,7 +921,7 @@ render_target::render_target(render_manager &manager, const char *layoutfile, UI
m_pixel_aspect(0.0f),
m_max_refresh(0),
m_orientation(0),
- m_base_view(NULL),
+ m_base_view(nullptr),
m_base_orientation(ROT0),
m_maxtexwidth(65536),
m_maxtexheight(65536),
@@ -962,7 +962,7 @@ render_target::render_target(render_manager &manager, const char *layoutfile, UI
set_view(0);
// make us the UI target if there is none
- if (!hidden() && manager.m_ui_target == NULL)
+ if (!hidden() && manager.m_ui_target == nullptr)
manager.set_ui_target(*this);
}
@@ -1021,7 +1021,7 @@ void render_target::set_bounds(INT32 width, INT32 height, float pixel_aspect)
void render_target::set_view(int viewindex)
{
layout_view *view = view_by_index(viewindex);
- if (view != NULL)
+ if (view != nullptr)
{
m_curview = view;
view->recompute(m_layerconfig);
@@ -1048,14 +1048,14 @@ void render_target::set_max_texture_size(int maxwidth, int maxheight)
int render_target::configured_view(const char *viewname, int targetindex, int numtargets)
{
- layout_view *view = NULL;
+ layout_view *view = nullptr;
int viewindex;
// auto view just selects the nth view
if (strcmp(viewname, "auto") != 0)
{
// scan for a matching view name
- for (view = view_by_index(viewindex = 0); view != NULL; view = view_by_index(++viewindex))
+ for (view = view_by_index(viewindex = 0); view != nullptr; view = view_by_index(++viewindex))
if (core_strnicmp(view->name(), viewname, strlen(viewname)) == 0)
break;
}
@@ -1063,7 +1063,7 @@ int render_target::configured_view(const char *viewname, int targetindex, int nu
// if we don't have a match, default to the nth view
screen_device_iterator iter(m_manager.machine().root_device());
int scrcount = iter.count();
- if (view == NULL && scrcount > 0)
+ if (view == nullptr && scrcount > 0)
{
// if we have enough targets to be one per screen, assign in order
if (numtargets >= scrcount)
@@ -1072,12 +1072,12 @@ int render_target::configured_view(const char *viewname, int targetindex, int nu
screen_device *screen = iter.byindex(ourindex);
// find the first view with this screen and this screen only
- for (view = view_by_index(viewindex = 0); view != NULL; view = view_by_index(++viewindex))
+ 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)
{
- view = NULL;
+ view = nullptr;
break;
}
else if (viewscreens.count() == viewscreens.contains(*screen))
@@ -1086,9 +1086,9 @@ int render_target::configured_view(const char *viewname, int targetindex, int nu
}
// otherwise, find the first view that has all the screens
- if (view == NULL)
+ if (view == nullptr)
{
- for (view = view_by_index(viewindex = 0); view != NULL; view = view_by_index(++viewindex))
+ 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)
@@ -1096,10 +1096,10 @@ int render_target::configured_view(const char *viewname, int targetindex, int nu
if (viewscreens.count() >= scrcount)
{
screen_device *screen;
- for (screen = iter.first(); screen != NULL; screen = iter.next())
+ for (screen = iter.first(); screen != nullptr; screen = iter.next())
if (!viewscreens.contains(*screen))
break;
- if (screen == NULL)
+ if (screen == nullptr)
break;
}
}
@@ -1107,7 +1107,7 @@ int render_target::configured_view(const char *viewname, int targetindex, int nu
}
// make sure it's a valid view
- return (view != NULL) ? view_index(*view) : 0;
+ return (view != nullptr) ? view_index(*view) : 0;
}
@@ -1118,7 +1118,7 @@ int render_target::configured_view(const char *viewname, int targetindex, int nu
const char *render_target::view_name(int viewindex)
{
layout_view *view = view_by_index(viewindex);
- return (view != NULL) ? view->name() : NULL;
+ return (view != nullptr) ? view->name() : nullptr;
}
@@ -1131,7 +1131,7 @@ const char *render_target::view_name(int viewindex)
const render_screen_list &render_target::view_screens(int viewindex)
{
layout_view *view = view_by_index(viewindex);
- return (view != NULL) ? view->screens() : s_empty_screen_list;
+ return (view != nullptr) ? view->screens() : s_empty_screen_list;
}
@@ -1201,15 +1201,15 @@ void render_target::compute_minimum_size(INT32 &minwidth, INT32 &minheight)
return;
}
- if (m_curview == NULL)
+ if (m_curview == nullptr)
throw emu_fatalerror("Mandatory artwork is missing");
// scan the current view for all screens
for (item_layer layer = ITEM_LAYER_FIRST; layer < ITEM_LAYER_MAX; ++layer)
// iterate over items in the layer
- for (layout_view::item *curitem = m_curview->first_item(layer); curitem != NULL; curitem = curitem->next())
- if (curitem->screen() != NULL)
+ for (layout_view::item *curitem = m_curview->first_item(layer); curitem != nullptr; curitem = curitem->next())
+ if (curitem->screen() != nullptr)
{
// use a hard-coded default visible area for vector screens
screen_device *screen = curitem->screen();
@@ -1261,7 +1261,7 @@ void render_target::compute_minimum_size(INT32 &minwidth, INT32 &minheight)
render_primitive_list &render_target::get_primitives()
{
// remember the base values if this is the first frame
- if (m_base_view == NULL)
+ if (m_base_view == nullptr)
m_base_view = m_curview;
// switch to the next primitive list
@@ -1295,7 +1295,7 @@ render_primitive_list &render_target::get_primitives()
if (m_curview->layer_enabled(layer))
{
// iterate over items in the layer
- for (layout_view::item *curitem = m_curview->first_item(layer); curitem != NULL; curitem = curitem->next())
+ for (layout_view::item *curitem = m_curview->first_item(layer); curitem != nullptr; curitem = curitem->next())
{
// first apply orientation to the bounds
render_bounds bounds = curitem->bounds();
@@ -1316,7 +1316,7 @@ render_primitive_list &render_target::get_primitives()
item_xform.no_center = false;
// if there is no associated element, it must be a screen element
- if (curitem->screen() != NULL)
+ if (curitem->screen() != nullptr)
add_container_primitives(list, item_xform, curitem->screen()->container(), blendmode);
else
add_element_primitives(list, item_xform, *curitem->element(), curitem->state(), blendmode);
@@ -1330,7 +1330,7 @@ render_primitive_list &render_target::get_primitives()
render_primitive *prim = list.alloc(render_primitive::QUAD);
set_render_bounds_xy(&prim->bounds, 0.0f, 0.0f, (float)m_width, (float)m_height);
set_render_color(&prim->color, 1.0f, 1.0f, 1.0f, 1.0f);
- prim->texture.base = NULL;
+ prim->texture.base = nullptr;
prim->flags = PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA);
list.append(*prim);
@@ -1339,14 +1339,14 @@ render_primitive_list &render_target::get_primitives()
prim = list.alloc(render_primitive::QUAD);
set_render_bounds_xy(&prim->bounds, 1.0f, 1.0f, (float)(m_width - 1), (float)(m_height - 1));
set_render_color(&prim->color, 1.0f, 0.0f, 0.0f, 0.0f);
- prim->texture.base = NULL;
+ prim->texture.base = nullptr;
prim->flags = PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA);
list.append(*prim);
}
}
// process the debug containers
- for (render_container *debug = m_debug_containers.first(); debug != NULL; debug = debug->next())
+ for (render_container *debug = m_debug_containers.first(); debug != nullptr; debug = debug->next())
{
object_transform ui_xform;
ui_xform.xoffs = 0;
@@ -1408,7 +1408,7 @@ bool render_target::map_point_container(INT32 target_x, INT32 target_y, render_c
bool render_target::map_point_input(INT32 target_x, INT32 target_y, ioport_port *&input_port, ioport_value &input_mask, float &input_x, float &input_y)
{
- return map_point_internal(target_x, target_y, NULL, input_x, input_y, input_port, input_mask);;
+ return map_point_internal(target_x, target_y, nullptr, input_x, input_y, input_port, input_mask);;
}
@@ -1421,9 +1421,9 @@ bool render_target::map_point_input(INT32 target_x, INT32 target_y, ioport_port
void render_target::invalidate_all(void *refptr)
{
// iterate through all our primitive lists
- for (int listnum = 0; listnum < ARRAY_LENGTH(m_primlist); listnum++)
+ for (auto & list : m_primlist)
{
- render_primitive_list &list = m_primlist[listnum];
+
// if we have a reference to this object, release our list
list.acquire_lock();
@@ -1472,9 +1472,9 @@ void render_target::debug_top(render_container &container)
void render_target::resolve_tags()
{
- for (layout_file *file = m_filelist.first(); file != NULL; file = file->next())
+ for (layout_file *file = m_filelist.first(); file != nullptr; file = file->next())
{
- for (layout_view *view = file->first_view(); view != NULL; view = view->next())
+ for (layout_view *view = file->first_view(); view != nullptr; view = view->next())
{
view->resolve_tags();
}
@@ -1503,7 +1503,7 @@ void render_target::load_layout_files(const char *layoutfile, bool singlefile)
bool have_default = false;
// if there's an explicit file, load that first
const char *basename = m_manager.machine().basename();
- if (layoutfile != NULL)
+ if (layoutfile != nullptr)
have_default |= load_layout_file(basename, layoutfile);
// if we're only loading this file, we know our final result
@@ -1518,10 +1518,10 @@ void render_target::load_layout_files(const char *layoutfile, bool singlefile)
have_default |= true;
// if a default view has been specified, use that as a fallback
- if (system.default_layout != NULL)
- have_default |= load_layout_file(NULL, system.default_layout);
- if (m_manager.machine().config().m_default_layout != NULL)
- have_default |= load_layout_file(NULL, m_manager.machine().config().m_default_layout);
+ if (system.default_layout != nullptr)
+ have_default |= load_layout_file(nullptr, system.default_layout);
+ if (m_manager.machine().config().m_default_layout != nullptr)
+ have_default |= load_layout_file(nullptr, m_manager.machine().config().m_default_layout);
// try to load another file based on the parent driver name
int cloneof = driver_list::clone(system);
@@ -1537,34 +1537,34 @@ void render_target::load_layout_files(const char *layoutfile, bool singlefile)
if (screens == 1)
{
if (system.flags & ORIENTATION_SWAP_XY)
- load_layout_file(NULL, layout_vertical);
+ load_layout_file(nullptr, layout_vertical);
else
- load_layout_file(NULL, layout_horizont);
+ load_layout_file(nullptr, layout_horizont);
assert_always(m_filelist.count() > 0, "Couldn't parse default layout??");
}
if (!have_default)
{
if (screens == 0)
{
- load_layout_file(NULL, layout_noscreens);
+ load_layout_file(nullptr, layout_noscreens);
assert_always(m_filelist.count() > 0, "Couldn't parse default layout??");
}
else
if (screens == 2)
{
- load_layout_file(NULL, layout_dualhsxs);
+ load_layout_file(nullptr, layout_dualhsxs);
assert_always(m_filelist.count() > 0, "Couldn't parse default layout??");
}
else
if (screens == 3)
{
- load_layout_file(NULL, layout_triphsxs);
+ load_layout_file(nullptr, layout_triphsxs);
assert_always(m_filelist.count() > 0, "Couldn't parse default layout??");
}
else
if (screens == 4)
{
- load_layout_file(NULL, layout_quadhsxs);
+ load_layout_file(nullptr, layout_quadhsxs);
assert_always(m_filelist.count() > 0, "Couldn't parse default layout??");
}
}
@@ -1581,14 +1581,14 @@ bool render_target::load_layout_file(const char *dirname, const char *filename)
// if the first character of the "file" is an open brace, assume it is an XML string
xml_data_node *rootnode;
if (filename[0] == '<')
- rootnode = xml_string_read(filename, NULL);
+ rootnode = xml_string_read(filename, nullptr);
// otherwise, assume it is a file
else
{
// build the path and optionally prepend the directory
std::string fname = std::string(filename).append(".lay");
- if (dirname != NULL)
+ if (dirname != nullptr)
fname.insert(0, PATH_SEPARATOR).insert(0, dirname);
// attempt to open the file; bail if we can't
@@ -1598,11 +1598,11 @@ bool render_target::load_layout_file(const char *dirname, const char *filename)
return false;
// read the file
- rootnode = xml_file_read(layoutfile, NULL);
+ rootnode = xml_file_read(layoutfile, nullptr);
}
// if we didn't get a properly-formatted XML file, record a warning and exit
- if (rootnode == NULL)
+ if (rootnode == nullptr)
{
if (filename[0] != '<')
osd_printf_warning("Improperly formatted XML file '%s', ignoring\n", filename);
@@ -1683,7 +1683,7 @@ void render_target::add_container_primitives(render_primitive_list &list, const
}
// iterate over elements
- for (render_container::item *curitem = container.first_item(); curitem != NULL; curitem = curitem->next())
+ for (render_container::item *curitem = container.first_item(); curitem != nullptr; curitem = curitem->next())
{
// compute the oriented bounds
render_bounds bounds = curitem->bounds();
@@ -1745,7 +1745,7 @@ void render_target::add_container_primitives(render_primitive_list &list, const
normalize_bounds(prim->bounds);
// get the scaled bitmap and set the resulting palette
- if (curitem->texture() != NULL)
+ if (curitem->texture() != nullptr)
{
// determine the final orientation
int finalorient = orientation_add(PRIMFLAG_GET_TEXORIENT(curitem->flags()), container_xform.orientation);
@@ -1782,11 +1782,11 @@ void render_target::add_container_primitives(render_primitive_list &list, const
prim->color.b = container.apply_brightness_contrast_gamma_fp(prim->color.b);
// no texture -- set the basic flags
- prim->texture.base = NULL;
+ prim->texture.base = nullptr;
prim->flags = (curitem->flags() &~ PRIMFLAG_BLENDMODE_MASK) | PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA);
// apply clipping
- clipped = render_clip_quad(&prim->bounds, &cliprect, NULL);
+ clipped = render_clip_quad(&prim->bounds, &cliprect, nullptr);
}
break;
}
@@ -1796,7 +1796,7 @@ void render_target::add_container_primitives(render_primitive_list &list, const
}
// add the overlay if it exists
- if (container.overlay() != NULL && m_layerconfig.screen_overlay_enabled())
+ if (container.overlay() != nullptr && m_layerconfig.screen_overlay_enabled())
{
INT32 width, height;
@@ -1840,7 +1840,7 @@ void render_target::add_element_primitives(render_primitive_list &list, const ob
// get a pointer to the relevant texture
render_texture *texture = element.state_texture(state);
- if (texture != NULL)
+ if (texture != nullptr)
{
render_primitive *prim = list.alloc(render_primitive::QUAD);
@@ -1898,7 +1898,7 @@ bool render_target::map_point_internal(INT32 target_x, INT32 target_y, render_co
// default to point not mapped
mapped_x = -1.0;
mapped_y = -1.0;
- mapped_input_port = NULL;
+ mapped_input_port = nullptr;
mapped_input_mask = 0;
// convert target coordinates to float
@@ -1910,7 +1910,7 @@ bool render_target::map_point_internal(INT32 target_x, INT32 target_y, render_co
target_fy = (float)target_y / m_height;
}
// explicitly check for the UI container
- if (container != NULL && container == &m_manager.ui_container())
+ if (container != nullptr && container == &m_manager.ui_container())
{
// this hit test went against the UI container
if (target_fx >= 0.0f && target_fx < 1.0f && target_fy >= 0.0f && target_fy < 1.0f)
@@ -1931,13 +1931,13 @@ bool render_target::map_point_internal(INT32 target_x, INT32 target_y, render_co
if (m_curview->layer_enabled(layer))
{
// iterate over items in the layer
- for (layout_view::item *item = m_curview->first_item(layer); item != NULL; item = item->next())
+ for (layout_view::item *item = m_curview->first_item(layer); item != nullptr; item = item->next())
{
bool checkit;
// if we're looking for a particular container, verify that we have the right one
- if (container != NULL)
- checkit = (item->screen() != NULL && &item->screen()->container() == container);
+ if (container != nullptr)
+ checkit = (item->screen() != nullptr && &item->screen()->container() == container);
// otherwise, assume we're looking for an input
else
@@ -1967,12 +1967,12 @@ bool render_target::map_point_internal(INT32 target_x, INT32 target_y, render_co
layout_view *render_target::view_by_index(int index) const
{
// scan the list of views within each layout, skipping those that don't apply
- for (layout_file *file = m_filelist.first(); file != NULL; file = file->next())
- for (layout_view *view = file->first_view(); view != NULL; view = view->next())
+ for (layout_file *file = m_filelist.first(); file != nullptr; file = file->next())
+ for (layout_view *view = file->first_view(); view != nullptr; view = view->next())
if (!(m_flags & RENDER_CREATE_NO_ART) || !view->has_art())
if (index-- == 0)
return view;
- return NULL;
+ return nullptr;
}
@@ -1987,8 +1987,8 @@ int render_target::view_index(layout_view &targetview) const
int index = 0;
// scan the list of views within each layout, skipping those that don't apply
- for (layout_file *file = m_filelist.first(); file != NULL; file = file->next())
- for (layout_view *view = file->first_view(); view != NULL; view = view->next())
+ for (layout_file *file = m_filelist.first(); file != nullptr; file = file->next())
+ for (layout_view *view = file->first_view(); view != nullptr; view = view->next())
if (!(m_flags & RENDER_CREATE_NO_ART) || !view->has_art())
{
if (&targetview == view)
@@ -2006,12 +2006,12 @@ int render_target::view_index(layout_view &targetview) const
void render_target::config_load(xml_data_node &targetnode)
{
// find the view
- const char *viewname = xml_get_attribute_string(&targetnode, "view", NULL);
- if (viewname != NULL)
+ const char *viewname = xml_get_attribute_string(&targetnode, "view", nullptr);
+ if (viewname != nullptr)
for (int viewnum = 0; viewnum < 1000; viewnum++)
{
const char *testname = view_name(viewnum);
- if (testname == NULL)
+ if (testname == nullptr)
break;
if (!strcmp(viewname, testname))
{
@@ -2307,7 +2307,7 @@ void render_target::add_clear_extents(render_primitive_list &list)
render_primitive *prim = list.alloc(render_primitive::QUAD);
set_render_bounds_xy(&prim->bounds, (float)x0, (float)y0, (float)x1, (float)y1);
set_render_color(&prim->color, 1.0f, 0.0f, 0.0f, 0.0f);
- prim->texture.base = NULL;
+ prim->texture.base = nullptr;
prim->flags = PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA);
clearlist.append(*prim);
}
@@ -2338,7 +2338,7 @@ void render_target::add_clear_and_optimize_primitive_list(render_primitive_list
init_clear_extents();
// scan the list until we hit an intersection quad or a line
- for (render_primitive *prim = list.first(); prim != NULL; prim = prim->next())
+ for (render_primitive *prim = list.first(); prim != nullptr; prim = prim->next())
{
// switch off the type
switch (prim->type)
@@ -2361,7 +2361,7 @@ void render_target::add_clear_and_optimize_primitive_list(render_primitive_list
{
// RGB multiply will multiply against 0, leaving nothing
set_render_color(&prim->color, 1.0f, 0.0f, 0.0f, 0.0f);
- prim->texture.base = NULL;
+ prim->texture.base = nullptr;
prim->flags = (prim->flags & ~PRIMFLAG_BLENDMODE_MASK) | PRIMFLAG_BLENDMODE(BLENDMODE_NONE);
}
else
@@ -2400,7 +2400,7 @@ done:
render_manager::render_manager(running_machine &machine)
: m_machine(machine),
- m_ui_target(NULL),
+ m_ui_target(nullptr),
m_live_textures(0),
m_ui_container(global_alloc(render_container(*this)))
{
@@ -2409,7 +2409,7 @@ render_manager::render_manager(running_machine &machine)
// create one container per screen
screen_device_iterator iter(machine.root_device());
- for (screen_device *screen = iter.first(); screen != NULL; screen = iter.next())
+ for (screen_device *screen = iter.first(); screen != nullptr; screen = iter.next())
screen->set_container(*container_alloc(screen));
}
@@ -2436,7 +2436,7 @@ 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.first(); target != NULL; target = target->next())
+ for (render_target *target = m_targetlist.first(); target != nullptr; target = target->next())
if (!target->hidden() && target->view_screens(target->view()).contains(screen))
return true;
return false;
@@ -2452,7 +2452,7 @@ float render_manager::max_update_rate() const
{
// iterate over all live targets and or together their screen masks
float minimum = 0;
- for (render_target *target = m_targetlist.first(); target != NULL; target = target->next())
+ for (render_target *target = m_targetlist.first(); target != nullptr; target = target->next())
if (target->max_update_rate() != 0)
{
if (minimum == 0)
@@ -2481,7 +2481,7 @@ render_target *render_manager::target_alloc(const char *layoutfile, UINT32 flags
void render_manager::target_free(render_target *target)
{
- if (target != NULL)
+ if (target != nullptr)
m_targetlist.remove(*target);
}
@@ -2493,11 +2493,11 @@ void render_manager::target_free(render_target *target)
render_target *render_manager::target_by_index(int index) const
{
// count up the targets until we hit the requested index
- for (render_target *target = m_targetlist.first(); target != NULL; target = target->next())
+ for (render_target *target = m_targetlist.first(); target != nullptr; target = target->next())
if (!target->hidden())
if (index-- == 0)
return target;
- return NULL;
+ return nullptr;
}
@@ -2511,7 +2511,7 @@ float render_manager::ui_aspect(render_container *rc)
int orient;
float aspect;
- if (rc == m_ui_container || rc == NULL) {
+ if (rc == m_ui_container || rc == nullptr) {
// ui container, aggregated multi-screen target
orient = orientation_add(m_ui_target->orientation(), m_ui_container->orientation());
@@ -2565,7 +2565,7 @@ render_texture *render_manager::texture_alloc(texture_scaler_func scaler, void *
void render_manager::texture_free(render_texture *texture)
{
- if (texture != NULL)
+ if (texture != nullptr)
{
m_live_textures--;
texture->release();
@@ -2602,11 +2602,11 @@ void render_manager::font_free(render_font *font)
void render_manager::invalidate_all(void *refptr)
{
// permit NULL
- if (refptr == NULL)
+ if (refptr == nullptr)
return;
// loop over targets
- for (render_target *target = m_targetlist.first(); target != NULL; target = target->next())
+ for (render_target *target = m_targetlist.first(); target != nullptr; target = target->next())
target->invalidate_all(refptr);
}
@@ -2617,7 +2617,7 @@ void render_manager::invalidate_all(void *refptr)
void render_manager::resolve_tags()
{
- for (render_target *target = m_targetlist.first(); target != NULL; target = target->next())
+ for (render_target *target = m_targetlist.first(); target != nullptr; target = target->next())
{
target->resolve_tags();
}
@@ -2630,8 +2630,8 @@ void render_manager::resolve_tags()
render_container *render_manager::container_alloc(screen_device *screen)
{
- render_container *container = global_alloc(render_container(*this, screen));
- if (screen != NULL)
+ auto container = global_alloc(render_container(*this, screen));
+ if (screen != nullptr)
m_screen_container_list.append(*container);
return container;
}
@@ -2659,15 +2659,15 @@ void render_manager::config_load(int config_type, xml_data_node *parentnode)
return;
// might not have any data
- if (parentnode == NULL)
+ if (parentnode == nullptr)
return;
// check the UI target
xml_data_node *uinode = xml_get_sibling(parentnode->child, "interface");
- if (uinode != NULL)
+ if (uinode != nullptr)
{
render_target *target = target_by_index(xml_get_attribute_int(uinode, "target", 0));
- if (target != NULL)
+ if (target != nullptr)
set_ui_target(*target);
}
@@ -2675,7 +2675,7 @@ void render_manager::config_load(int config_type, xml_data_node *parentnode)
for (xml_data_node *targetnode = xml_get_sibling(parentnode->child, "target"); targetnode; targetnode = xml_get_sibling(targetnode->next, "target"))
{
render_target *target = target_by_index(xml_get_attribute_int(targetnode, "index", -1));
- if (target != NULL)
+ if (target != nullptr)
target->config_load(*targetnode);
}
@@ -2721,8 +2721,8 @@ void render_manager::config_save(int config_type, xml_data_node *parentnode)
if (m_ui_target->index() != 0)
{
// create a node for it
- xml_data_node *uinode = xml_add_child(parentnode, "interface", NULL);
- if (uinode != NULL)
+ xml_data_node *uinode = xml_add_child(parentnode, "interface", nullptr);
+ if (uinode != nullptr)
xml_set_attribute_int(uinode, "target", m_ui_target->index());
}
@@ -2731,22 +2731,22 @@ void render_manager::config_save(int config_type, xml_data_node *parentnode)
{
// get this target and break when we fail
render_target *target = target_by_index(targetnum);
- if (target == NULL)
+ if (target == nullptr)
break;
// create a node
- xml_data_node *targetnode = xml_add_child(parentnode, "target", NULL);
- if (targetnode != NULL && !target->config_save(*targetnode))
+ xml_data_node *targetnode = xml_add_child(parentnode, "target", nullptr);
+ if (targetnode != nullptr && !target->config_save(*targetnode))
xml_delete_node(targetnode);
}
// iterate over screen containers
int scrnum = 0;
- for (render_container *container = m_screen_container_list.first(); container != NULL; container = container->next(), scrnum++)
+ for (render_container *container = m_screen_container_list.first(); container != nullptr; container = container->next(), scrnum++)
{
// create a node
- xml_data_node *screennode = xml_add_child(parentnode, "screen", NULL);
- if (screennode != NULL)
+ xml_data_node *screennode = xml_add_child(parentnode, "screen", nullptr);
+ if (screennode != nullptr)
{
bool changed = false;