summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/render.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/render.c')
-rw-r--r--src/emu/render.c43
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
//-------------------------------------------------