diff options
Diffstat (limited to 'src/emu/render.c')
-rw-r--r-- | src/emu/render.c | 43 |
1 files changed, 36 insertions, 7 deletions
diff --git a/src/emu/render.c b/src/emu/render.c index 57fcc418e97..6ee9e871c43 100644 --- a/src/emu/render.c +++ b/src/emu/render.c @@ -1394,9 +1394,9 @@ render_primitive_list &render_target::get_primitives() bool render_target::map_point_container(INT32 target_x, INT32 target_y, render_container &container, float &container_x, float &container_y) { - const char *input_tag; + ioport_port *input_port; ioport_value input_mask; - return map_point_internal(target_x, target_y, &container, container_x, container_y, input_tag, input_mask); + return map_point_internal(target_x, target_y, &container, container_x, container_y, input_port, input_mask); } @@ -1406,9 +1406,9 @@ bool render_target::map_point_container(INT32 target_x, INT32 target_y, render_c // container, if possible //------------------------------------------------- -bool render_target::map_point_input(INT32 target_x, INT32 target_y, const char *&input_tag, ioport_value &input_mask, float &input_x, float &input_y) +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_tag, input_mask); + return map_point_internal(target_x, target_y, NULL, input_x, input_y, input_port, input_mask);; } @@ -1467,6 +1467,22 @@ void render_target::debug_top(render_container &container) //------------------------------------------------- +// resolve_tags - resolve tag lookups +//------------------------------------------------- + +void render_target::resolve_tags() +{ + for (layout_file *file = m_filelist.first(); file != NULL; file = file->next()) + { + for (layout_view *view = file->first_view(); view != NULL; view = view->next()) + { + view->resolve_tags(); + } + } +} + + +//------------------------------------------------- // update_layer_config - recompute after a layer // config change //------------------------------------------------- @@ -1861,7 +1877,7 @@ void render_target::add_element_primitives(render_primitive_list &list, const ob // mapping points //------------------------------------------------- -bool render_target::map_point_internal(INT32 target_x, INT32 target_y, render_container *container, float &mapped_x, float &mapped_y, const char *&mapped_input_tag, ioport_value &mapped_input_mask) +bool render_target::map_point_internal(INT32 target_x, INT32 target_y, render_container *container, float &mapped_x, float &mapped_y, ioport_port *&mapped_input_port, ioport_value &mapped_input_mask) { // compute the visible width/height INT32 viswidth, visheight; @@ -1875,7 +1891,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_tag = NULL; + mapped_input_port = NULL; mapped_input_mask = 0; // convert target coordinates to float @@ -1926,7 +1942,7 @@ bool render_target::map_point_internal(INT32 target_x, INT32 target_y, render_co // point successfully mapped mapped_x = (target_fx - item->bounds().x0) / (item->bounds().x1 - item->bounds().x0); mapped_y = (target_fy - item->bounds().y0) / (item->bounds().y1 - item->bounds().y0); - mapped_input_tag = item->input_tag_and_mask(mapped_input_mask); + mapped_input_port = item->input_tag_and_mask(mapped_input_mask); return true; } } @@ -2589,6 +2605,19 @@ void render_manager::invalidate_all(void *refptr) //------------------------------------------------- +// resolve_tags - resolve tag lookups +//------------------------------------------------- + +void render_manager::resolve_tags() +{ + for (render_target *target = m_targetlist.first(); target != NULL; target = target->next()) + { + target->resolve_tags(); + } +} + + +//------------------------------------------------- // container_alloc - allocate a new container //------------------------------------------------- |