summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/render.c
diff options
context:
space:
mode:
author Aaron Giles <aaron@aarongiles.com>2008-05-15 16:25:03 +0000
committer Aaron Giles <aaron@aarongiles.com>2008-05-15 16:25:03 +0000
commit096331c8562467a67fb5674f46dbb26bb032d2a6 (patch)
tree1f9329631b6fb62a81f4bdd894403389d2f70759 /src/emu/render.c
parentbc4b470ebbee405c6f48253acc225451f52a9b70 (diff)
Restructured input port internals and cleaned up inptport.c:
* Input ports are now maintained hierarchically. At the top level are input ports, which contain a list of fields. Each field represents one or more bits of the port. Certain fields such as DIP switches and configuration switches contain a list of settings, which can be selected. DIP switch fields can also contain a list of DIP switch locations. * Normalized behavior of port overrides (via PORT_INCLUDE or by defining multiple overlapping bits). All fields within a port are kept in strict increasing bit order, so altered DIP switches are now kept in the appropriate order. This addresses MAMETesters bug 01671. * Live port state is now fully separate from configured state. This is manifested in a similar way to devices, where a const list of ports can be managed either offline or live. Each port has a pointer to an opaque set of live state which is NULL when offline or valid when live. Each port also has a running_machine * which is also NULL when offline. * Because of this new arrangement, the conversion from tokens to a list of ports now requires reasonably complex memory allocation, so these port lists must be explicitly allocated and freed (they are not mantained by automatic resource allocation). * Custom and changed callbacks now take a pointer to a field config instead of a running machine. This provides more information about what field triggered the change notification. The machine can be found by referenced field->port->machine. * The inptport.c module has been cleaned up and many ambiguities resolved. Most of this is internal, though it did result in osd_customize_inputport_list() being changed to osd_customize_input_type_list(). The parameter to this function is now a linked list instead of an array, and the structures referenced have been reorganized somewhat. * Updated config.c to pass machine parameters to its callbacks. * Updated validity checks, XML output, and UI system to handle the new structures. * Moved large table of default input settings to a separate include file inpttype.h. * Removed gross hacks in trackfld and hyperspt NVRAM. These may be broken as a result.
Diffstat (limited to 'src/emu/render.c')
-rw-r--r--src/emu/render.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/emu/render.c b/src/emu/render.c
index 8425e4892cf..75933a435fe 100644
--- a/src/emu/render.c
+++ b/src/emu/render.c
@@ -252,8 +252,8 @@ static const render_quad_texuv oriented_texcoords[8] =
/* core system */
static void render_exit(running_machine *machine);
-static void render_load(int config_type, xml_data_node *parentnode);
-static void render_save(int config_type, xml_data_node *parentnode);
+static void render_load(running_machine *machine, int config_type, xml_data_node *parentnode);
+static void render_save(running_machine *machine, int config_type, xml_data_node *parentnode);
/* render targets */
static void release_render_list(render_primitive_list *list);
@@ -537,7 +537,7 @@ void render_init(running_machine *machine)
*current_container_ptr = NULL;
/* register callbacks */
- config_register("video", render_load, render_save);
+ config_register(machine, "video", render_load, render_save);
}
@@ -615,7 +615,7 @@ static void render_exit(running_machine *machine)
configuration file
-------------------------------------------------*/
-static void render_load(int config_type, xml_data_node *parentnode)
+static void render_load(running_machine *machine, int config_type, xml_data_node *parentnode)
{
xml_data_node *targetnode;
xml_data_node *screennode;
@@ -733,7 +733,7 @@ static void render_load(int config_type, xml_data_node *parentnode)
file
-------------------------------------------------*/
-static void render_save(int config_type, xml_data_node *parentnode)
+static void render_save(running_machine *machine, int config_type, xml_data_node *parentnode)
{
render_target *target;
render_container *container;