summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Couriersud <couriersud@users.noreply.github.com>2010-01-27 23:52:28 +0000
committer Couriersud <couriersud@users.noreply.github.com>2010-01-27 23:52:28 +0000
commit77cc6538e1473543a39f5292f246a17f7162827b (patch)
tree7b8385879edc9714dd1d001731893f0ae0fd910f
parent6660655ce53dc5571314d79cb2eca830e7dab366 (diff)
UI menu interface changes
- all ui functions now expect a render_container - removed all macros referencing render_container_get_ui - ui_menu_alloc now is passed a container to which to render the menu. This is a first round of changes to allow using ui_* functions in a more generic way.
-rw-r--r--src/emu/cheat.c4
-rw-r--r--src/emu/cheat.h2
-rw-r--r--src/emu/drivers/empty.c3
-rw-r--r--src/emu/mame.c4
-rw-r--r--src/emu/render.h7
-rw-r--r--src/emu/ui.c88
-rw-r--r--src/emu/ui.h12
-rw-r--r--src/emu/uigfx.c54
-rw-r--r--src/emu/uigfx.h2
-rw-r--r--src/emu/uimenu.c125
-rw-r--r--src/emu/uimenu.h9
-rw-r--r--src/emu/video.c2
-rw-r--r--src/mame/video/deco16ic.c2
-rw-r--r--src/mame/video/ssv.c4
-rw-r--r--src/mame/video/taito_f3.c2
15 files changed, 164 insertions, 156 deletions
diff --git a/src/emu/cheat.c b/src/emu/cheat.c
index b4a6bdc36cb..08cc50f6b8a 100644
--- a/src/emu/cheat.c
+++ b/src/emu/cheat.c
@@ -508,7 +508,7 @@ void cheat_set_global_enable(running_machine *machine, int enable)
to render text
-------------------------------------------------*/
-void cheat_render_text(running_machine *machine)
+void cheat_render_text(running_machine *machine, render_container *container)
{
cheat_private *cheatinfo = machine->cheat_data;
if (cheatinfo != NULL)
@@ -520,7 +520,7 @@ void cheat_render_text(running_machine *machine)
if (cheatinfo->output[linenum].len() != 0)
{
/* output the text */
- ui_draw_text_full(cheatinfo->output[linenum],
+ ui_draw_text_full(container, cheatinfo->output[linenum],
0.0f, (float)linenum * ui_get_line_height(), 1.0f,
cheatinfo->justify[linenum], WRAP_NEVER, DRAW_OPAQUE,
ARGB_WHITE, ARGB_BLACK, NULL, NULL);
diff --git a/src/emu/cheat.h b/src/emu/cheat.h
index 6d2d99600cd..91b28181a29 100644
--- a/src/emu/cheat.h
+++ b/src/emu/cheat.h
@@ -40,7 +40,7 @@ void cheat_set_global_enable(running_machine *machine, int enable);
/* ----- cheat UI helpers ----- */
/* render any text overlays */
-void cheat_render_text(running_machine *machine);
+void cheat_render_text(running_machine *machine, render_container *container);
/* return data about the next menu entry, or the first entry if previous == NULL */
void *cheat_get_next_menu_entry(running_machine *machine, void *previous, const char **description, const char **state, UINT32 *flags);
diff --git a/src/emu/drivers/empty.c b/src/emu/drivers/empty.c
index 78b295378b3..1cc24fb64a3 100644
--- a/src/emu/drivers/empty.c
+++ b/src/emu/drivers/empty.c
@@ -10,6 +10,7 @@
**************************************************************************/
#include "emu.h"
+#include "render.h"
#include "uimenu.h"
@@ -22,7 +23,7 @@
static MACHINE_START( empty )
{
/* force the UI to show the game select screen */
- ui_menu_force_game_select(machine);
+ ui_menu_force_game_select(machine, render_container_get_ui());
}
diff --git a/src/emu/mame.c b/src/emu/mame.c
index 09b639898e6..69aa08b0790 100644
--- a/src/emu/mame.c
+++ b/src/emu/mame.c
@@ -77,10 +77,10 @@
#include "emuopts.h"
#include "osdepend.h"
#include "config.h"
-#include "cheat.h"
#include "debugger.h"
#include "profiler.h"
#include "render.h"
+#include "cheat.h"
#include "ui.h"
#include "uimenu.h"
#include "uiinput.h"
@@ -540,7 +540,7 @@ void mame_schedule_exit(running_machine *machine)
if (started_empty && options_get_string(mame_options(), OPTION_GAMENAME)[0] != 0)
{
options_set_string(mame_options(), OPTION_GAMENAME, "", OPTION_PRIORITY_CMDLINE);
- ui_menu_force_game_select(machine);
+ ui_menu_force_game_select(machine, render_container_get_ui());
}
/* otherwise, exit for real */
diff --git a/src/emu/render.h b/src/emu/render.h
index f1ec29dfae4..ada70da2b50 100644
--- a/src/emu/render.h
+++ b/src/emu/render.h
@@ -145,11 +145,8 @@ enum
***************************************************************************/
/* convenience macros for adding items to the UI container */
-#define render_ui_add_point(x0,y0,diam,argb,flags) render_container_add_line(render_container_get_ui(), x0, y0, x0, y0, diam, argb, flags)
-#define render_ui_add_line(x0,y0,x1,y1,diam,argb,flags) render_container_add_line(render_container_get_ui(), x0, y0, x1, y1, diam, argb, flags)
-#define render_ui_add_rect(x0,y0,x1,y1,argb,flags) render_container_add_quad(render_container_get_ui(), x0, y0, x1, y1, argb, NULL, flags)
-#define render_ui_add_quad(x0,y0,x1,y1,argb,tex,flags) render_container_add_quad(render_container_get_ui(), x0, y0, x1, y1, argb, tex, flags)
-#define render_ui_add_char(x0,y0,ht,asp,argb,font,ch) render_container_add_char(render_container_get_ui(), x0, y0, ht, asp, argb, font, ch)
+#define render_container_add_point(c, x0,y0,diam,argb,flags) render_container_add_line(c, x0, y0, x0, y0, diam, argb, flags)
+#define render_container_add_rect(c, x0,y0,x1,y1,argb,flags) render_container_add_quad(c, x0, y0, x1, y1, argb, NULL, flags)
/* convenience macros for adding items to a screen container */
#define render_screen_add_point(scr,x0,y0,diam,argb,flags) render_container_add_line(render_container_get_screen(scr), x0, y0, x0, y0, diam, argb, flags)
diff --git a/src/emu/ui.c b/src/emu/ui.c
index 61bbdda5788..49975851f57 100644
--- a/src/emu/ui.c
+++ b/src/emu/ui.c
@@ -14,8 +14,8 @@
#include "video/vector.h"
#include "machine/laserdsc.h"
#include "profiler.h"
-#include "cheat.h"
#include "render.h"
+#include "cheat.h"
#include "rendfont.h"
#include "ui.h"
#include "uiinput.h"
@@ -54,7 +54,7 @@ enum
static render_font *ui_font;
/* current UI handler */
-static UINT32 (*ui_handler_callback)(running_machine *, UINT32);
+static UINT32 (*ui_handler_callback)(running_machine *, render_container *, UINT32);
static UINT32 ui_handler_param;
/* flag to track single stepping */
@@ -91,11 +91,11 @@ static astring &disclaimer_string(running_machine *machine, astring &buffer);
static astring &warnings_string(running_machine *machine, astring &buffer);
/* UI handlers */
-static UINT32 handler_messagebox(running_machine *machine, UINT32 state);
-static UINT32 handler_messagebox_ok(running_machine *machine, UINT32 state);
-static UINT32 handler_messagebox_anykey(running_machine *machine, UINT32 state);
-static UINT32 handler_ingame(running_machine *machine, UINT32 state);
-static UINT32 handler_load_save(running_machine *machine, UINT32 state);
+static UINT32 handler_messagebox(running_machine *machine, render_container *container, UINT32 state);
+static UINT32 handler_messagebox_ok(running_machine *machine, render_container *container, UINT32 state);
+static UINT32 handler_messagebox_anykey(running_machine *machine, render_container *container, UINT32 state);
+static UINT32 handler_ingame(running_machine *machine, render_container *container, UINT32 state);
+static UINT32 handler_load_save(running_machine *machine, render_container *container, UINT32 state);
/* slider controls */
static slider_state *slider_alloc(running_machine *machine, const char *title, INT32 minval, INT32 defval, INT32 maxval, INT32 incval, slider_update update, void *arg);
@@ -135,7 +135,7 @@ static INT32 slider_crossoffset(running_machine *machine, void *arg, astring *st
pair for the current UI handler
-------------------------------------------------*/
-INLINE UINT32 ui_set_handler(UINT32 (*callback)(running_machine *, UINT32), UINT32 param)
+INLINE UINT32 ui_set_handler(UINT32 (*callback)(running_machine *, render_container *, UINT32), UINT32 param)
{
ui_handler_callback = callback;
ui_handler_param = param;
@@ -340,10 +340,10 @@ void ui_set_startup_text(running_machine *machine, const char *text, int force)
render it; called by video.c
-------------------------------------------------*/
-void ui_update_and_render(running_machine *machine)
+void ui_update_and_render(running_machine *machine, render_container *container)
{
/* always start clean */
- render_container_empty(render_container_get_ui());
+ render_container_empty(container);
/* if we're paused, dim the whole screen */
if (mame_get_phase(machine) >= MAME_PHASE_RESET && (single_step || mame_is_paused(machine)))
@@ -354,19 +354,19 @@ void ui_update_and_render(running_machine *machine)
if (alpha > 255)
alpha = 255;
if (alpha >= 0)
- render_ui_add_rect(0.0f, 0.0f, 1.0f, 1.0f, MAKE_ARGB(alpha,0x00,0x00,0x00), PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
+ render_container_add_rect(container, 0.0f, 0.0f, 1.0f, 1.0f, MAKE_ARGB(alpha,0x00,0x00,0x00), PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
}
/* render any cheat stuff at the bottom */
- cheat_render_text(machine);
+ cheat_render_text(machine, container);
/* call the current UI handler */
assert(ui_handler_callback != NULL);
- ui_handler_param = (*ui_handler_callback)(machine, ui_handler_param);
+ ui_handler_param = (*ui_handler_callback)(machine, container, ui_handler_param);
/* display any popup messages */
if (osd_ticks() < popup_text_end)
- ui_draw_text_box(messagebox_text, JUSTIFY_CENTER, 0.5f, 0.9f, messagebox_backcolor);
+ ui_draw_text_box(container, messagebox_text, JUSTIFY_CENTER, 0.5f, 0.9f, messagebox_backcolor);
else
popup_text_end = 0;
@@ -462,13 +462,13 @@ float ui_get_string_width(const char *s)
color
-------------------------------------------------*/
-void ui_draw_outlined_box(float x0, float y0, float x1, float y1, rgb_t backcolor)
+void ui_draw_outlined_box(render_container *container, float x0, float y0, float x1, float y1, rgb_t backcolor)
{
- render_ui_add_rect(x0, y0, x1, y1, backcolor, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
- render_ui_add_line(x0, y0, x1, y0, UI_LINE_WIDTH, UI_BORDER_COLOR, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
- render_ui_add_line(x1, y0, x1, y1, UI_LINE_WIDTH, UI_BORDER_COLOR, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
- render_ui_add_line(x1, y1, x0, y1, UI_LINE_WIDTH, UI_BORDER_COLOR, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
- render_ui_add_line(x0, y1, x0, y0, UI_LINE_WIDTH, UI_BORDER_COLOR, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
+ render_container_add_rect(container, x0, y0, x1, y1, backcolor, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
+ render_container_add_line(container, x0, y0, x1, y0, UI_LINE_WIDTH, UI_BORDER_COLOR, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
+ render_container_add_line(container, x1, y0, x1, y1, UI_LINE_WIDTH, UI_BORDER_COLOR, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
+ render_container_add_line(container, x1, y1, x0, y1, UI_LINE_WIDTH, UI_BORDER_COLOR, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
+ render_container_add_line(container, x0, y1, x0, y0, UI_LINE_WIDTH, UI_BORDER_COLOR, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
}
@@ -476,9 +476,9 @@ void ui_draw_outlined_box(float x0, float y0, float x1, float y1, rgb_t backcolo
ui_draw_text - simple text renderer
-------------------------------------------------*/
-void ui_draw_text(const char *buf, float x, float y)
+void ui_draw_text(render_container *container, const char *buf, float x, float y)
{
- ui_draw_text_full(buf, x, y, 1.0f - x, JUSTIFY_LEFT, WRAP_WORD, DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, NULL, NULL);
+ ui_draw_text_full(container, buf, x, y, 1.0f - x, JUSTIFY_LEFT, WRAP_WORD, DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, NULL, NULL);
}
@@ -488,7 +488,7 @@ void ui_draw_text(const char *buf, float x, float y)
and full size computation
-------------------------------------------------*/
-void ui_draw_text_full(const char *origs, float x, float y, float origwrapwidth, int justify, int wrap, int draw, rgb_t fgcolor, rgb_t bgcolor, float *totalwidth, float *totalheight)
+void ui_draw_text_full(render_container *container, const char *origs, float x, float y, float origwrapwidth, int justify, int wrap, int draw, rgb_t fgcolor, rgb_t bgcolor, float *totalwidth, float *totalheight)
{
float lineheight = ui_get_line_height();
const char *ends = origs + strlen(origs);
@@ -625,7 +625,7 @@ void ui_draw_text_full(const char *origs, float x, float y, float origwrapwidth,
/* if opaque, add a black box */
if (draw == DRAW_OPAQUE)
- render_ui_add_rect(curx, cury, curx + curwidth, cury + lineheight, bgcolor, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
+ render_container_add_rect(container, curx, cury, curx + curwidth, cury + lineheight, bgcolor, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
/* loop from the line start and add the characters */
while (linestart < s)
@@ -638,7 +638,7 @@ void ui_draw_text_full(const char *origs, float x, float y, float origwrapwidth,
if (draw != DRAW_NONE)
{
- render_ui_add_char(curx, cury, lineheight, render_get_ui_aspect(), fgcolor, ui_font, linechar);
+ render_container_add_char(container, curx, cury, lineheight, render_get_ui_aspect(), fgcolor, ui_font, linechar);
curx += ui_get_char_width(linechar);
}
linestart += linecharcount;
@@ -647,11 +647,11 @@ void ui_draw_text_full(const char *origs, float x, float y, float origwrapwidth,
/* append ellipses if needed */
if (wrap == WRAP_TRUNCATE && *s != 0 && draw != DRAW_NONE)
{
- render_ui_add_char(curx, cury, lineheight, render_get_ui_aspect(), fgcolor, ui_font, '.');
+ render_container_add_char(container, curx, cury, lineheight, render_get_ui_aspect(), fgcolor, ui_font, '.');
curx += ui_get_char_width('.');
- render_ui_add_char(curx, cury, lineheight, render_get_ui_aspect(), fgcolor, ui_font, '.');
+ render_container_add_char(container, curx, cury, lineheight, render_get_ui_aspect(), fgcolor, ui_font, '.');
curx += ui_get_char_width('.');
- render_ui_add_char(curx, cury, lineheight, render_get_ui_aspect(), fgcolor, ui_font, '.');
+ render_container_add_char(container, curx, cury, lineheight, render_get_ui_aspect(), fgcolor, ui_font, '.');
curx += ui_get_char_width('.');
}
@@ -692,13 +692,13 @@ void ui_draw_text_full(const char *origs, float x, float y, float origwrapwidth,
message with a box around it
-------------------------------------------------*/
-void ui_draw_text_box(const char *text, int justify, float xpos, float ypos, rgb_t backcolor)
+void ui_draw_text_box(render_container *container, const char *text, int justify, float xpos, float ypos, rgb_t backcolor)
{
float target_width, target_height;
float target_x, target_y;
/* compute the multi-line target width/height */
- ui_draw_text_full(text, 0, 0, 1.0f - 2.0f * UI_BOX_LR_BORDER,
+ ui_draw_text_full(container, text, 0, 0, 1.0f - 2.0f * UI_BOX_LR_BORDER,
justify, WRAP_WORD, DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &target_width, &target_height);
if (target_height > 1.0f - 2.0f * UI_BOX_TB_BORDER)
target_height = floor((1.0f - 2.0f * UI_BOX_TB_BORDER) / ui_get_line_height()) * ui_get_line_height();
@@ -718,11 +718,11 @@ void ui_draw_text_box(const char *text, int justify, float xpos, float ypos, rgb
target_y = 1.0f - UI_BOX_TB_BORDER - target_height;
/* add a box around that */
- ui_draw_outlined_box(target_x - UI_BOX_LR_BORDER,
+ ui_draw_outlined_box(container, target_x - UI_BOX_LR_BORDER,
target_y - UI_BOX_TB_BORDER,
target_x + target_width + UI_BOX_LR_BORDER,
target_y + target_height + UI_BOX_TB_BORDER, backcolor);
- ui_draw_text_full(text, target_x, target_y, target_width,
+ ui_draw_text_full(container, text, target_x, target_y, target_width,
justify, WRAP_WORD, DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, NULL, NULL);
}
@@ -1080,9 +1080,9 @@ astring &game_info_astring(running_machine *machine, astring &string)
messagebox_text string but handles no input
-------------------------------------------------*/
-static UINT32 handler_messagebox(running_machine *machine, UINT32 state)
+static UINT32 handler_messagebox(running_machine *machine, render_container *container, UINT32 state)
{
- ui_draw_text_box(messagebox_text, JUSTIFY_LEFT, 0.5f, 0.5f, messagebox_backcolor);
+ ui_draw_text_box(container, messagebox_text, JUSTIFY_LEFT, 0.5f, 0.5f, messagebox_backcolor);
return 0;
}
@@ -1092,10 +1092,10 @@ static UINT32 handler_messagebox(running_machine *machine, UINT32 state)
messagebox_text string and waits for an OK
-------------------------------------------------*/
-static UINT32 handler_messagebox_ok(running_machine *machine, UINT32 state)
+static UINT32 handler_messagebox_ok(running_machine *machine, render_container *container, UINT32 state)
{
/* draw a standard message window */
- ui_draw_text_box(messagebox_text, JUSTIFY_LEFT, 0.5f, 0.5f, messagebox_backcolor);
+ ui_draw_text_box(container, messagebox_text, JUSTIFY_LEFT, 0.5f, 0.5f, messagebox_backcolor);
/* an 'O' or left joystick kicks us to the next state */
if (state == 0 && (input_code_pressed_once(machine, KEYCODE_O) || ui_input_pressed(machine, IPT_UI_LEFT)))
@@ -1122,10 +1122,10 @@ static UINT32 handler_messagebox_ok(running_machine *machine, UINT32 state)
any keypress
-------------------------------------------------*/
-static UINT32 handler_messagebox_anykey(running_machine *machine, UINT32 state)
+static UINT32 handler_messagebox_anykey(running_machine *machine, render_container *container, UINT32 state)
{
/* draw a standard message window */
- ui_draw_text_box(messagebox_text, JUSTIFY_LEFT, 0.5f, 0.5f, messagebox_backcolor);
+ ui_draw_text_box(container, messagebox_text, JUSTIFY_LEFT, 0.5f, 0.5f, messagebox_backcolor);
/* if the user cancels, exit out completely */
if (ui_input_pressed(machine, IPT_UI_CANCEL))
@@ -1147,14 +1147,14 @@ static UINT32 handler_messagebox_anykey(running_machine *machine, UINT32 state)
of the standard keypresses
-------------------------------------------------*/
-static UINT32 handler_ingame(running_machine *machine, UINT32 state)
+static UINT32 handler_ingame(running_machine *machine, render_container *container, UINT32 state)
{
int is_paused = mame_is_paused(machine);
/* first draw the FPS counter */
if (showfps || osd_ticks() < showfps_end)
{
- ui_draw_text_full(video_get_speed_text(machine), 0.0f, 0.0f, 1.0f,
+ ui_draw_text_full(container, video_get_speed_text(machine), 0.0f, 0.0f, 1.0f,
JUSTIFY_RIGHT, WRAP_WORD, DRAW_OPAQUE, ARGB_WHITE, ARGB_BLACK, NULL, NULL);
}
else
@@ -1165,7 +1165,7 @@ static UINT32 handler_ingame(running_machine *machine, UINT32 state)
{
astring profilertext;
profiler_get_text(machine, profilertext);
- ui_draw_text_full(profilertext, 0.0f, 0.0f, 1.0f, JUSTIFY_LEFT, WRAP_WORD, DRAW_OPAQUE, ARGB_WHITE, ARGB_BLACK, NULL, NULL);
+ ui_draw_text_full(container, profilertext, 0.0f, 0.0f, 1.0f, JUSTIFY_LEFT, WRAP_WORD, DRAW_OPAQUE, ARGB_WHITE, ARGB_BLACK, NULL, NULL);
}
/* if we're single-stepping, pause now */
@@ -1312,7 +1312,7 @@ static UINT32 handler_ingame(running_machine *machine, UINT32 state)
specifying a game to save or load
-------------------------------------------------*/
-static UINT32 handler_load_save(running_machine *machine, UINT32 state)
+static UINT32 handler_load_save(running_machine *machine, render_container *container, UINT32 state)
{
char filename[20];
input_code code;
@@ -1324,9 +1324,9 @@ static UINT32 handler_load_save(running_machine *machine, UINT32 state)
/* okay, we're waiting for a key to select a slot; display a message */
if (state == LOADSAVE_SAVE)
- ui_draw_message_window("Select position to save to");
+ ui_draw_message_window(container, "Select position to save to");
else
- ui_draw_message_window("Select position to load from");
+ ui_draw_message_window(container, "Select position to load from");
/* check for cancel key */
if (ui_input_pressed(machine, IPT_UI_CANCEL))
diff --git a/src/emu/ui.h b/src/emu/ui.h
index f90a958fa60..51665b9579d 100644
--- a/src/emu/ui.h
+++ b/src/emu/ui.h
@@ -112,7 +112,7 @@ struct _slider_state
MACROS
***************************************************************************/
-#define ui_draw_message_window(text) ui_draw_text_box(text, JUSTIFY_LEFT, 0.5f, 0.5f, UI_BACKGROUND_COLOR)
+#define ui_draw_message_window(c, text) ui_draw_text_box(c, text, JUSTIFY_LEFT, 0.5f, 0.5f, UI_BACKGROUND_COLOR)
@@ -130,7 +130,7 @@ int ui_display_startup_screens(running_machine *machine, int first_time, int sho
void ui_set_startup_text(running_machine *machine, const char *text, int force);
/* once-per-frame update and render */
-void ui_update_and_render(running_machine *machine);
+void ui_update_and_render(running_machine *machine, render_container *container);
/* returns the current UI font */
render_font *ui_get_font(void);
@@ -143,16 +143,16 @@ float ui_get_char_width(unicode_char ch);
float ui_get_string_width(const char *s);
/* draw an outlined box filled with a given color */
-void ui_draw_outlined_box(float x0, float y0, float x1, float y1, rgb_t backcolor);
+void ui_draw_outlined_box(render_container *container, float x0, float y0, float x1, float y1, rgb_t backcolor);
/* simple text draw at the given coordinates */
-void ui_draw_text(const char *buf, float x, float y);
+void ui_draw_text(render_container *container, const char *buf, float x, float y);
/* full-on text draw with all the options */
-void ui_draw_text_full(const char *origs, float x, float y, float wrapwidth, int justify, int wrap, int draw, rgb_t fgcolor, rgb_t bgcolor, float *totalwidth, float *totalheight);
+void ui_draw_text_full(render_container *container, const char *origs, float x, float y, float wrapwidth, int justify, int wrap, int draw, rgb_t fgcolor, rgb_t bgcolor, float *totalwidth, float *totalheight);
/* draw a multi-line message with a box around it */
-void ui_draw_text_box(const char *text, int justify, float xpos, float ypos, rgb_t backcolor);
+void ui_draw_text_box(render_container *container, const char *text, int justify, float xpos, float ypos, rgb_t backcolor);
/* display a temporary message at the bottom of the screen */
void CLIB_DECL ui_popup_time(int seconds, const char *text, ...) ATTR_PRINTF(2,3);
diff --git a/src/emu/uigfx.c b/src/emu/uigfx.c
index 1eacbafee91..0b37046707a 100644
--- a/src/emu/uigfx.c
+++ b/src/emu/uigfx.c
@@ -80,18 +80,18 @@ static void ui_gfx_exit(running_machine *machine);
/* palette handling */
static void palette_handle_keys(running_machine *machine, ui_gfx_state *state);
-static void palette_handler(running_machine *machine, ui_gfx_state *state);
+static void palette_handler(running_machine *machine, render_container *container, ui_gfx_state *state);
/* graphics set handling */
static void gfxset_handle_keys(running_machine *machine, ui_gfx_state *state, int xcells, int ycells);
static void gfxset_draw_item(running_machine *machine, const gfx_element *gfx, int index, bitmap_t *bitmap, int dstx, int dsty, int color, int rotate);
static void gfxset_update_bitmap(running_machine *machine, ui_gfx_state *state, int xcells, int ycells, gfx_element *gfx);
-static void gfxset_handler(running_machine *machine, ui_gfx_state *state);
+static void gfxset_handler(running_machine *machine, render_container *container, ui_gfx_state *state);
/* tilemap handling */
static void tilemap_handle_keys(running_machine *machine, ui_gfx_state *state, int viswidth, int visheight);
static void tilemap_update_bitmap(running_machine *machine, ui_gfx_state *state, int width, int height);
-static void tilemap_handler(running_machine *machine, ui_gfx_state *state);
+static void tilemap_handler(running_machine *machine, render_container *container, ui_gfx_state *state);
@@ -151,7 +151,7 @@ static void ui_gfx_exit(running_machine *machine)
ui_gfx_ui_handler - primary UI handler
-------------------------------------------------*/
-UINT32 ui_gfx_ui_handler(running_machine *machine, UINT32 uistate)
+UINT32 ui_gfx_ui_handler(running_machine *machine, render_container *container, UINT32 uistate)
{
ui_gfx_state *state = &ui_gfx;
@@ -171,7 +171,7 @@ again:
/* if we have a palette, display it */
if (machine->config->total_colors > 0)
{
- palette_handler(machine, state);
+ palette_handler(machine, container, state);
break;
}
@@ -182,7 +182,7 @@ again:
/* if we have graphics sets, display them */
if (machine->gfx[0] != NULL)
{
- gfxset_handler(machine, state);
+ gfxset_handler(machine, container, state);
break;
}
@@ -193,7 +193,7 @@ again:
/* if we have tilemaps, display them */
if (tilemap_count(machine) > 0)
{
- tilemap_handler(machine, state);
+ tilemap_handler(machine, container, state);
break;
}
@@ -234,7 +234,7 @@ cancel:
viewer
-------------------------------------------------*/
-static void palette_handler(running_machine *machine, ui_gfx_state *state)
+static void palette_handler(running_machine *machine, render_container *container, ui_gfx_state *state)
{
int total = state->palette.which ? colortable_palette_get_size(machine->colortable) : machine->config->total_colors;
const char *title = state->palette.which ? "COLORTABLE" : "PALETTE";
@@ -276,14 +276,14 @@ static void palette_handler(running_machine *machine, ui_gfx_state *state)
x0 = boxbounds.x0 - (0.5f - 0.5f * (titlewidth + chwidth));
/* go ahead and draw the outer box now */
- ui_draw_outlined_box(boxbounds.x0 - x0, boxbounds.y0, boxbounds.x1 + x0, boxbounds.y1, UI_GFXVIEWER_BG_COLOR);
+ ui_draw_outlined_box(container, boxbounds.x0 - x0, boxbounds.y0, boxbounds.x1 + x0, boxbounds.y1, UI_GFXVIEWER_BG_COLOR);
/* draw the title */
x0 = 0.5f - 0.5f * titlewidth;
y0 = boxbounds.y0 + 0.5f * chheight;
for (x = 0; title[x] != 0; x++)
{
- render_ui_add_char(x0, y0, chheight, render_get_ui_aspect(), ARGB_WHITE, ui_font, title[x]);
+ render_container_add_char(container, x0, y0, chheight, render_get_ui_aspect(), ARGB_WHITE, ui_font, title[x]);
x0 += render_font_get_char_width(ui_font, chheight, render_get_ui_aspect(), title[x]);
}
@@ -297,12 +297,12 @@ static void palette_handler(running_machine *machine, ui_gfx_state *state)
{
x0 = boxbounds.x0 + 6.0f * chwidth + (float)x * cellwidth;
y0 = boxbounds.y0 + 2.0f * chheight;
- render_ui_add_char(x0 + 0.5f * (cellwidth - chwidth), y0, chheight, render_get_ui_aspect(), ARGB_WHITE, ui_font, "0123456789ABCDEF"[x & 0xf]);
+ render_container_add_char(container, x0 + 0.5f * (cellwidth - chwidth), y0, chheight, render_get_ui_aspect(), ARGB_WHITE, ui_font, "0123456789ABCDEF"[x & 0xf]);
/* if we're skipping, draw a point between the character and the box to indicate which */
/* one it's referring to */
if (skip != 0)
- render_ui_add_point(x0 + 0.5f * cellwidth, 0.5f * (y0 + chheight + cellboxbounds.y0), UI_LINE_WIDTH, ARGB_WHITE, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
+ render_container_add_point(container, x0 + 0.5f * cellwidth, 0.5f * (y0 + chheight + cellboxbounds.y0), UI_LINE_WIDTH, ARGB_WHITE, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
}
/* draw the side column headers */
@@ -319,14 +319,14 @@ static void palette_handler(running_machine *machine, ui_gfx_state *state)
x0 = boxbounds.x0 + 5.5f * chwidth;
y0 = boxbounds.y0 + 3.5f * chheight + (float)y * cellheight;
if (skip != 0)
- render_ui_add_point(0.5f * (x0 + cellboxbounds.x0), y0 + 0.5f * cellheight, UI_LINE_WIDTH, ARGB_WHITE, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
+ render_container_add_point(container, 0.5f * (x0 + cellboxbounds.x0), y0 + 0.5f * cellheight, UI_LINE_WIDTH, ARGB_WHITE, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
/* draw the row header */
sprintf(buffer, "%5X", state->palette.offset + y * state->palette.count);
for (x = 4; x >= 0; x--)
{
x0 -= render_font_get_char_width(ui_font, chheight, render_get_ui_aspect(), buffer[x]);
- render_ui_add_char(x0, y0 + 0.5f * (cellheight - chheight), chheight, render_get_ui_aspect(), ARGB_WHITE, ui_font, buffer[x]);
+ render_container_add_char(container, x0, y0 + 0.5f * (cellheight - chheight), chheight, render_get_ui_aspect(), ARGB_WHITE, ui_font, buffer[x]);
}
}
@@ -338,7 +338,7 @@ static void palette_handler(running_machine *machine, ui_gfx_state *state)
if (index < total)
{
pen_t pen = state->palette.which ? colortable_palette_get_color(machine->colortable, index) : raw_color[index];
- render_ui_add_rect(cellboxbounds.x0 + x * cellwidth, cellboxbounds.y0 + y * cellheight,
+ render_container_add_rect(container, cellboxbounds.x0 + x * cellwidth, cellboxbounds.y0 + y * cellheight,
cellboxbounds.x0 + (x + 1) * cellwidth, cellboxbounds.y0 + (y + 1) * cellheight,
0xff000000 | pen, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
}
@@ -422,7 +422,7 @@ static void palette_handle_keys(running_machine *machine, ui_gfx_state *state)
viewer
-------------------------------------------------*/
-static void gfxset_handler(running_machine *machine, ui_gfx_state *state)
+static void gfxset_handler(running_machine *machine, render_container *container, ui_gfx_state *state)
{
render_font *ui_font = ui_get_font();
int set = state->gfxset.set;
@@ -519,14 +519,14 @@ static void gfxset_handler(running_machine *machine, ui_gfx_state *state)
x0 = boxbounds.x0 - (0.5f - 0.5f * (titlewidth + chwidth));
/* go ahead and draw the outer box now */
- ui_draw_outlined_box(boxbounds.x0 - x0, boxbounds.y0, boxbounds.x1 + x0, boxbounds.y1, UI_GFXVIEWER_BG_COLOR);
+ ui_draw_outlined_box(container, boxbounds.x0 - x0, boxbounds.y0, boxbounds.x1 + x0, boxbounds.y1, UI_GFXVIEWER_BG_COLOR);
/* draw the title */
x0 = 0.5f - 0.5f * titlewidth;
y0 = boxbounds.y0 + 0.5f * chheight;
for (x = 0; title[x] != 0; x++)
{
- render_ui_add_char(x0, y0, chheight, render_get_ui_aspect(), ARGB_WHITE, ui_font, title[x]);
+ render_container_add_char(container, x0, y0, chheight, render_get_ui_aspect(), ARGB_WHITE, ui_font, title[x]);
x0 += render_font_get_char_width(ui_font, chheight, render_get_ui_aspect(), title[x]);
}
@@ -536,12 +536,12 @@ static void gfxset_handler(running_machine *machine, ui_gfx_state *state)
{
x0 = boxbounds.x0 + 6.0f * chwidth + (float)x * cellwidth;
y0 = boxbounds.y0 + 2.0f * chheight;
- render_ui_add_char(x0 + 0.5f * (cellwidth - chwidth), y0, chheight, render_get_ui_aspect(), ARGB_WHITE, ui_font, "0123456789ABCDEF"[x & 0xf]);
+ render_container_add_char(container, x0 + 0.5f * (cellwidth - chwidth), y0, chheight, render_get_ui_aspect(), ARGB_WHITE, ui_font, "0123456789ABCDEF"[x & 0xf]);
/* if we're skipping, draw a point between the character and the box to indicate which */
/* one it's referring to */
if (skip != 0)
- render_ui_add_point(x0 + 0.5f * cellwidth, 0.5f * (y0 + chheight + boxbounds.y0 + 3.5f * chheight), UI_LINE_WIDTH, ARGB_WHITE, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
+ render_container_add_point(container, x0 + 0.5f * cellwidth, 0.5f * (y0 + chheight + boxbounds.y0 + 3.5f * chheight), UI_LINE_WIDTH, ARGB_WHITE, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
}
/* draw the side column headers */
@@ -558,14 +558,14 @@ static void gfxset_handler(running_machine *machine, ui_gfx_state *state)
x0 = boxbounds.x0 + 5.5f * chwidth;
y0 = boxbounds.y0 + 3.5f * chheight + (float)y * cellheight;
if (skip != 0)
- render_ui_add_point(0.5f * (x0 + boxbounds.x0 + 6.0f * chwidth), y0 + 0.5f * cellheight, UI_LINE_WIDTH, ARGB_WHITE, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
+ render_container_add_point(container, 0.5f * (x0 + boxbounds.x0 + 6.0f * chwidth), y0 + 0.5f * cellheight, UI_LINE_WIDTH, ARGB_WHITE, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
/* draw the row header */
sprintf(buffer, "%5X", state->gfxset.offset[set] + y * xcells);
for (x = 4; x >= 0; x--)
{
x0 -= render_font_get_char_width(ui_font, chheight, render_get_ui_aspect(), buffer[x]);
- render_ui_add_char(x0, y0 + 0.5f * (cellheight - chheight), chheight, render_get_ui_aspect(), ARGB_WHITE, ui_font, buffer[x]);
+ render_container_add_char(container, x0, y0 + 0.5f * (cellheight - chheight), chheight, render_get_ui_aspect(), ARGB_WHITE, ui_font, buffer[x]);
}
}
@@ -573,7 +573,7 @@ static void gfxset_handler(running_machine *machine, ui_gfx_state *state)
gfxset_update_bitmap(machine, state, xcells, ycells, gfx);
/* add the final quad */
- render_ui_add_quad(boxbounds.x0 + 6.0f * chwidth, boxbounds.y0 + 3.5f * chheight,
+ render_container_add_quad(container, boxbounds.x0 + 6.0f * chwidth, boxbounds.y0 + 3.5f * chheight,
boxbounds.x0 + 6.0f * chwidth + (float)cellboxwidth / (float)targwidth,
boxbounds.y0 + 3.5f * chheight + (float)cellboxheight / (float)targheight,
ARGB_WHITE, state->texture, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
@@ -839,7 +839,7 @@ static void gfxset_draw_item(running_machine *machine, const gfx_element *gfx, i
viewer
-------------------------------------------------*/
-static void tilemap_handler(running_machine *machine, ui_gfx_state *state)
+static void tilemap_handler(running_machine *machine, render_container *container, ui_gfx_state *state)
{
render_font *ui_font = ui_get_font();
float chwidth, chheight;
@@ -919,14 +919,14 @@ static void tilemap_handler(running_machine *machine, ui_gfx_state *state)
}
/* go ahead and draw the outer box now */
- ui_draw_outlined_box(boxbounds.x0, boxbounds.y0, boxbounds.x1, boxbounds.y1, UI_GFXVIEWER_BG_COLOR);
+ ui_draw_outlined_box(container, boxbounds.x0, boxbounds.y0, boxbounds.x1, boxbounds.y1, UI_GFXVIEWER_BG_COLOR);
/* draw the title */
x0 = 0.5f - 0.5f * titlewidth;
y0 = boxbounds.y0 + 0.5f * chheight;
for (x = 0; title[x] != 0; x++)
{
- render_ui_add_char(x0, y0, chheight, render_get_ui_aspect(), ARGB_WHITE, ui_font, title[x]);
+ render_container_add_char(container, x0, y0, chheight, render_get_ui_aspect(), ARGB_WHITE, ui_font, title[x]);
x0 += render_font_get_char_width(ui_font, chheight, render_get_ui_aspect(), title[x]);
}
@@ -934,7 +934,7 @@ static void tilemap_handler(running_machine *machine, ui_gfx_state *state)
tilemap_update_bitmap(machine, state, mapboxwidth / pixelscale, mapboxheight / pixelscale);
/* add the final quad */
- render_ui_add_quad(mapboxbounds.x0, mapboxbounds.y0,
+ render_container_add_quad(container, mapboxbounds.x0, mapboxbounds.y0,
mapboxbounds.x1, mapboxbounds.y1,
ARGB_WHITE, state->texture,
PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA) | PRIMFLAG_TEXORIENT(state->tilemap.rotate));
diff --git a/src/emu/uigfx.h b/src/emu/uigfx.h
index b87aa6a6e21..d7d1d2c42e8 100644
--- a/src/emu/uigfx.h
+++ b/src/emu/uigfx.h
@@ -24,7 +24,7 @@
void ui_gfx_init(running_machine *machine);
/* master handler */
-UINT32 ui_gfx_ui_handler(running_machine *machine, UINT32 state);
+UINT32 ui_gfx_ui_handler(running_machine *machine, render_container *container, UINT32 state);
#endif /* __UIGFX_H__ */
diff --git a/src/emu/uimenu.c b/src/emu/uimenu.c
index 5134680c4fc..a0ccc569a93 100644
--- a/src/emu/uimenu.c
+++ b/src/emu/uimenu.c
@@ -117,6 +117,7 @@ struct _ui_menu_item
struct _ui_menu
{
running_machine * machine; /* machine we are attached to */
+ render_container * container; /* render_container we render to */
ui_menu_handler_func handler; /* handler callback */
void * parameter; /* parameter */
ui_menu_event event; /* the UI event that occurred */
@@ -302,7 +303,7 @@ static void menu_select_game_custom_render(running_machine *machine, ui_menu *me
/* menu helpers */
static void menu_render_triangle(bitmap_t *dest, const bitmap_t *source, const rectangle *sbounds, void *param);
-static void menu_settings_custom_render_one(float x1, float y1, float x2, float y2, const dip_descriptor *dip, UINT32 selectedmask);
+static void menu_settings_custom_render_one(render_container *container, float x1, float y1, float x2, float y2, const dip_descriptor *dip, UINT32 selectedmask);
static void menu_settings_custom_render(running_machine *machine, ui_menu *menu, void *state, void *selectedref, float top, float bottom, float x, float y, float x2, float y2);
@@ -431,7 +432,7 @@ static void ui_menu_exit(running_machine *machine)
ui_menu_alloc - allocate a new menu
-------------------------------------------------*/
-ui_menu *ui_menu_alloc(running_machine *machine, ui_menu_handler_func handler, void *parameter)
+ui_menu *ui_menu_alloc(running_machine *machine, render_container *container, ui_menu_handler_func handler, void *parameter)
{
ui_menu *menu;
@@ -440,6 +441,7 @@ ui_menu *ui_menu_alloc(running_machine *machine, ui_menu_handler_func handler, v
/* initialize the state */
menu->machine = machine;
+ menu->container = container;
menu->handler = handler;
menu->parameter = parameter;
@@ -808,7 +810,7 @@ static void ui_menu_draw(running_machine *machine, ui_menu *menu, int customonly
x2 = visible_left + visible_width + UI_BOX_LR_BORDER;
y2 = visible_top + visible_main_menu_height + UI_BOX_TB_BORDER;
if (!customonly)
- ui_draw_outlined_box(x1, y1, x2, y2, UI_BACKGROUND_COLOR);
+ ui_draw_outlined_box(menu->container, x1, y1, x2, y2, UI_BACKGROUND_COLOR);
/* determine the first visible line based on the current selection */
top_line = menu->selected - visible_lines / 2;
@@ -828,7 +830,7 @@ static void ui_menu_draw(running_machine *machine, ui_menu *menu, int customonly
{
mouse_target = ui_input_find_mouse(machine, &mouse_target_x, &mouse_target_y, &mouse_button);
if (mouse_target != NULL)
- if (render_target_map_point_container(mouse_target, mouse_target_x, mouse_target_y, render_container_get_ui(), &mouse_x, &mouse_y))
+ if (render_target_map_point_container(mouse_target, mouse_target_x, mouse_target_y, menu->container, &mouse_x, &mouse_y))
mouse_hit = TRUE;
}
@@ -874,13 +876,14 @@ static void ui_menu_draw(running_machine *machine, ui_menu *menu, int customonly
/* if we have some background hilighting to do, add a quad behind everything else */
if (bgcolor != UI_TEXT_BG_COLOR)
- render_ui_add_quad(line_x0, line_y0, line_x1, line_y1, bgcolor, hilight_texture,
+ render_container_add_quad(menu->container, line_x0, line_y0, line_x1, line_y1, bgcolor, hilight_texture,
PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA) | PRIMFLAG_TEXWRAP(TRUE));
/* if we're on the top line, display the up arrow */
if (linenum == 0 && top_line != 0)
{
- render_ui_add_quad( 0.5f * (x1 + x2) - 0.5f * ud_arrow_width,
+ render_container_add_quad( menu->container,
+ 0.5f * (x1 + x2) - 0.5f * ud_arrow_width,
line_y + 0.25f * line_height,
0.5f * (x1 + x2) + 0.5f * ud_arrow_width,
line_y + 0.75f * line_height,
@@ -894,7 +897,8 @@ static void ui_menu_draw(running_machine *machine, ui_menu *menu, int customonly
/* if we're on the bottom line, display the down arrow */
else if (linenum == visible_lines - 1 && itemnum != menu->numitems - 1)
{
- render_ui_add_quad( 0.5f * (x1 + x2) - 0.5f * ud_arrow_width,
+ render_container_add_quad( menu->container,
+ 0.5f * (x1 + x2) - 0.5f * ud_arrow_width,
line_y + 0.25f * line_height,
0.5f * (x1 + x2) + 0.5f * ud_arrow_width,
line_y + 0.75f * line_height,
@@ -907,11 +911,11 @@ static void ui_menu_draw(running_machine *machine, ui_menu *menu, int customonly
/* if we're just a divider, draw a line */
else if (strcmp(itemtext, MENU_SEPARATOR_ITEM) == 0)
- render_ui_add_line(visible_left, line_y + 0.5f * line_height, visible_left + visible_width, line_y + 0.5f * line_height, UI_LINE_WIDTH, UI_BORDER_COLOR, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
+ render_container_add_line(menu->container, visible_left, line_y + 0.5f * line_height, visible_left + visible_width, line_y + 0.5f * line_height, UI_LINE_WIDTH, UI_BORDER_COLOR, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
/* if we don't have a subitem, just draw the string centered */
else if (item->subtext == NULL)
- ui_draw_text_full(itemtext, effective_left, line_y, effective_width,
+ ui_draw_text_full(menu->container, itemtext, effective_left, line_y, effective_width,
JUSTIFY_CENTER, WRAP_TRUNCATE, DRAW_NORMAL, fgcolor, bgcolor, NULL, NULL);
/* otherwise, draw the item on the left and the subitem text on the right */
@@ -922,7 +926,7 @@ static void ui_menu_draw(running_machine *machine, ui_menu *menu, int customonly
float item_width, subitem_width;
/* draw the left-side text */
- ui_draw_text_full(itemtext, effective_left, line_y, effective_width,
+ ui_draw_text_full(menu->container, itemtext, effective_left, line_y, effective_width,
JUSTIFY_LEFT, WRAP_TRUNCATE, DRAW_NORMAL, fgcolor, bgcolor, &item_width, NULL);
/* give 2 spaces worth of padding */
@@ -937,13 +941,14 @@ static void ui_menu_draw(running_machine *machine, ui_menu *menu, int customonly
}
/* draw the subitem right-justified */
- ui_draw_text_full(subitem_text, effective_left + item_width, line_y, effective_width - item_width,
+ ui_draw_text_full(menu->container, subitem_text, effective_left + item_width, line_y, effective_width - item_width,
JUSTIFY_RIGHT, WRAP_TRUNCATE, DRAW_NORMAL, subitem_invert ? fgcolor3 : fgcolor2, bgcolor, &subitem_width, NULL);
/* apply arrows */
if (itemnum == menu->selected && (item->flags & MENU_FLAG_LEFT_ARROW))
{
- render_ui_add_quad( effective_left + effective_width - subitem_width - gutter_width,
+ render_container_add_quad( menu->container,
+ effective_left + effective_width - subitem_width - gutter_width,
line_y + 0.1f * line_height,
effective_left + effective_width - subitem_width - gutter_width + lr_arrow_width,
line_y + 0.9f * line_height,
@@ -953,7 +958,8 @@ static void ui_menu_draw(running_machine *machine, ui_menu *menu, int customonly
}
if (itemnum == menu->selected && (item->flags & MENU_FLAG_RIGHT_ARROW))
{
- render_ui_add_quad( effective_left + effective_width + gutter_width - lr_arrow_width,
+ render_container_add_quad( menu->container,
+ effective_left + effective_width + gutter_width - lr_arrow_width,
line_y + 0.1f * line_height,
effective_left + effective_width + gutter_width,
line_y + 0.9f * line_height,
@@ -975,7 +981,7 @@ static void ui_menu_draw(running_machine *machine, ui_menu *menu, int customonly
float target_x, target_y;
/* compute the multi-line target width/height */
- ui_draw_text_full(item->subtext, 0, 0, visible_width * 0.75f,
+ ui_draw_text_full(menu->container, item->subtext, 0, 0, visible_width * 0.75f,
JUSTIFY_RIGHT, WRAP_WORD, DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &target_width, &target_height);
/* determine the target location */
@@ -985,11 +991,11 @@ static void ui_menu_draw(running_machine *machine, ui_menu *menu, int customonly
target_y = line_y - target_height - UI_BOX_TB_BORDER;
/* add a box around that */
- ui_draw_outlined_box(target_x - UI_BOX_LR_BORDER,
+ ui_draw_outlined_box(menu->container, target_x - UI_BOX_LR_BORDER,
target_y - UI_BOX_TB_BORDER,
target_x + target_width + UI_BOX_LR_BORDER,
target_y + target_height + UI_BOX_TB_BORDER, subitem_invert ? UI_SELECTED_BG_COLOR : UI_BACKGROUND_COLOR);
- ui_draw_text_full(item->subtext, target_x, target_y, target_width,
+ ui_draw_text_full(menu->container, item->subtext, target_x, target_y, target_width,
JUSTIFY_RIGHT, WRAP_WORD, DRAW_NORMAL, UI_SELECTED_COLOR, UI_SELECTED_BG_COLOR, NULL, NULL);
}
@@ -1022,7 +1028,7 @@ static void ui_menu_draw_text_box(ui_menu *menu)
float target_x, target_y;
/* compute the multi-line target width/height */
- ui_draw_text_full(text, 0, 0, 1.0f - 2.0f * UI_BOX_LR_BORDER - 2.0f * gutter_width,
+ ui_draw_text_full(menu->container, text, 0, 0, 1.0f - 2.0f * UI_BOX_LR_BORDER - 2.0f * gutter_width,
JUSTIFY_LEFT, WRAP_WORD, DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &target_width, &target_height);
target_height += 2.0f * line_height;
if (target_height > 1.0f - 2.0f * UI_BOX_TB_BORDER)
@@ -1047,22 +1053,23 @@ static void ui_menu_draw_text_box(ui_menu *menu)
target_y = 1.0f - UI_BOX_TB_BORDER - target_height;
/* add a box around that */
- ui_draw_outlined_box(target_x - UI_BOX_LR_BORDER - gutter_width,
+ ui_draw_outlined_box(menu->container, target_x - UI_BOX_LR_BORDER - gutter_width,
target_y - UI_BOX_TB_BORDER,
target_x + target_width + gutter_width + UI_BOX_LR_BORDER,
target_y + target_height + UI_BOX_TB_BORDER, (menu->item[0].flags & MENU_FLAG_REDTEXT) ? UI_RED_COLOR : UI_BACKGROUND_COLOR);
- ui_draw_text_full(text, target_x, target_y, target_width,
+ ui_draw_text_full(menu->container, text, target_x, target_y, target_width,
JUSTIFY_LEFT, WRAP_WORD, DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, NULL, NULL);
/* draw the "return to prior menu" text with a hilight behind it */
- render_ui_add_quad( target_x + 0.5f * UI_LINE_WIDTH,
+ render_container_add_quad(menu->container,
+ target_x + 0.5f * UI_LINE_WIDTH,
target_y + target_height - line_height,
target_x + target_width - 0.5f * UI_LINE_WIDTH,
target_y + target_height,
UI_SELECTED_BG_COLOR,
hilight_texture,
PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA) | PRIMFLAG_TEXWRAP(TRUE));
- ui_draw_text_full(backtext, target_x, target_y + target_height - line_height, target_width,
+ ui_draw_text_full(menu->container, backtext, target_x, target_y + target_height - line_height, target_width,
JUSTIFY_CENTER, WRAP_TRUNCATE, DRAW_NORMAL, UI_SELECTED_COLOR, UI_SELECTED_BG_COLOR, NULL, NULL);
/* artificially set the hover to the last item so a double-click exits */
@@ -1337,11 +1344,11 @@ void ui_menu_stack_pop(running_machine *machine)
and calls the menu handler
-------------------------------------------------*/
-UINT32 ui_menu_ui_handler(running_machine *machine, UINT32 state)
+UINT32 ui_menu_ui_handler(running_machine *machine, render_container *container, UINT32 state)
{
/* if we have no menus stacked up, start with the main menu */
if (menu_stack == NULL)
- ui_menu_stack_push(ui_menu_alloc(machine, menu_main, NULL));
+ ui_menu_stack_push(ui_menu_alloc(machine, container, menu_main, NULL));
/* update the menu state */
if (menu_stack != NULL)
@@ -1367,16 +1374,16 @@ UINT32 ui_menu_ui_handler(running_machine *machine, UINT32 state)
standard menu handler
-------------------------------------------------*/
-UINT32 ui_slider_ui_handler(running_machine *machine, UINT32 state)
+UINT32 ui_slider_ui_handler(running_machine *machine, render_container *container, UINT32 state)
{
UINT32 result;
/* if this is the first call, push the sliders menu */
if (state)
- ui_menu_stack_push(ui_menu_alloc(machine, menu_sliders, (void *)1));
+ ui_menu_stack_push(ui_menu_alloc(machine, container, menu_sliders, (void *)1));
/* handle standard menus */
- result = ui_menu_ui_handler(machine, state);
+ result = ui_menu_ui_handler(machine, container, state);
/* if we are cancelled, pop the sliders menu */
if (result == UI_HANDLER_CANCEL)
@@ -1391,7 +1398,7 @@ UINT32 ui_slider_ui_handler(running_machine *machine, UINT32 state)
select menu to be visible and inescapable
-------------------------------------------------*/
-void ui_menu_force_game_select(running_machine *machine)
+void ui_menu_force_game_select(running_machine *machine, render_container *container)
{
char *gamename = (char *)options_get_string(mame_options(), OPTION_GAMENAME);
@@ -1399,8 +1406,8 @@ void ui_menu_force_game_select(running_machine *machine)
ui_menu_stack_reset(machine);
/* add the quit entry followed by the game select entry */
- ui_menu_stack_push(ui_menu_alloc(machine, menu_quit_game, NULL));
- ui_menu_stack_push(ui_menu_alloc(machine, menu_select_game, gamename));
+ ui_menu_stack_push(ui_menu_alloc(machine, container, menu_quit_game, NULL));
+ ui_menu_stack_push(ui_menu_alloc(machine, container, menu_select_game, gamename));
/* force the menus on */
ui_show_menu();
@@ -1448,7 +1455,7 @@ static void menu_main(running_machine *machine, ui_menu *menu, void *parameter,
/* process the menu */
event = ui_menu_process(machine, menu, 0);
if (event != NULL && event->iptkey == IPT_UI_SELECT)
- ui_menu_stack_push(ui_menu_alloc(machine, (ui_menu_handler_func)event->itemref, NULL));
+ ui_menu_stack_push(ui_menu_alloc(machine, menu->container, (ui_menu_handler_func)event->itemref, NULL));
}
@@ -1545,7 +1552,7 @@ static void menu_input_groups(running_machine *machine, ui_menu *menu, void *par
/* process the menu */
event = ui_menu_process(machine, menu, 0);
if (event != NULL && event->iptkey == IPT_UI_SELECT)
- ui_menu_stack_push(ui_menu_alloc(machine, menu_input_general, event->itemref));
+ ui_menu_stack_push(ui_menu_alloc(machine, menu->container, menu_input_general, event->itemref));
}
@@ -2101,7 +2108,7 @@ static void menu_settings_custom_render(running_machine *machine, ui_menu *menu,
y2 = y1 + bottom;
/* draw extra menu area */
- ui_draw_outlined_box(x1, y1, x2, y2, UI_BACKGROUND_COLOR);
+ ui_draw_outlined_box(menu->container, x1, y1, x2, y2, UI_BACKGROUND_COLOR);
y1 += (float)DIP_SWITCH_SPACING;
/* iterate over DIP switches */
@@ -2117,7 +2124,7 @@ static void menu_settings_custom_render(running_machine *machine, ui_menu *menu,
selectedmask |= 1 << (diploc->swnum - 1);
/* draw one switch */
- menu_settings_custom_render_one(x1, y1, x2, y1 + DIP_SWITCH_HEIGHT, dip, selectedmask);
+ menu_settings_custom_render_one(menu->container, x1, y1, x2, y1 + DIP_SWITCH_HEIGHT, dip, selectedmask);
y1 += (float)(DIP_SWITCH_SPACING + DIP_SWITCH_HEIGHT);
}
}
@@ -2128,7 +2135,7 @@ static void menu_settings_custom_render(running_machine *machine, ui_menu *menu,
DIP switch
-------------------------------------------------*/
-static void menu_settings_custom_render_one(float x1, float y1, float x2, float y2, const dip_descriptor *dip, UINT32 selectedmask)
+static void menu_settings_custom_render_one(render_container *container, float x1, float y1, float x2, float y2, const dip_descriptor *dip, UINT32 selectedmask)
{
float switch_field_width = SINGLE_TOGGLE_SWITCH_FIELD_WIDTH * render_get_ui_aspect();
float switch_width = SINGLE_TOGGLE_SWITCH_WIDTH * render_get_ui_aspect();
@@ -2143,7 +2150,8 @@ static void menu_settings_custom_render_one(float x1, float y1, float x2, float
x1 += (x2 - x1 - numtoggles * switch_field_width) / 2;
/* draw the dip switch name */
- ui_draw_text_full( dip->name,
+ ui_draw_text_full( container,
+ dip->name,
0,
y1 + (DIP_SWITCH_HEIGHT - UI_TARGET_FONT_HEIGHT) / 2,
x1 - ui_get_string_width(" "),
@@ -2166,7 +2174,7 @@ static void menu_settings_custom_render_one(float x1, float y1, float x2, float
float innerx1;
/* first outline the switch */
- ui_draw_outlined_box(x1, y1, x1 + switch_field_width, y2, UI_BACKGROUND_COLOR);
+ ui_draw_outlined_box(container, x1, y1, x1 + switch_field_width, y2, UI_BACKGROUND_COLOR);
/* compute x1/x2 for the inner filled in switch */
innerx1 = x1 + (switch_field_width - switch_width) / 2;
@@ -2175,13 +2183,13 @@ static void menu_settings_custom_render_one(float x1, float y1, float x2, float
if (dip->mask & (1 << toggle))
{
float innery1 = (dip->state & (1 << toggle)) ? y1_on : y1_off;
- render_ui_add_rect(innerx1, innery1, innerx1 + switch_width, innery1 + SINGLE_TOGGLE_SWITCH_HEIGHT,
+ render_container_add_rect(container, innerx1, innery1, innerx1 + switch_width, innery1 + SINGLE_TOGGLE_SWITCH_HEIGHT,
(selectedmask & (1 << toggle)) ? UI_DIPSW_COLOR : UI_TEXT_COLOR,
PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
}
else
{
- render_ui_add_rect(innerx1, y1_off, innerx1 + switch_width, y1_on + SINGLE_TOGGLE_SWITCH_HEIGHT,
+ render_container_add_rect(container, innerx1, y1_off, innerx1 + switch_width, y1_on + SINGLE_TOGGLE_SWITCH_HEIGHT,
UI_UNAVAILABLE_COLOR,
PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
}
@@ -2865,11 +2873,11 @@ static void menu_sliders_custom_render(running_machine *machine, ui_menu *menu,
x2 = 1.0f - UI_BOX_LR_BORDER;
/* draw extra menu area */
- ui_draw_outlined_box(x1, y1, x2, y2, UI_BACKGROUND_COLOR);
+ ui_draw_outlined_box(menu->container, x1, y1, x2, y2, UI_BACKGROUND_COLOR);
y1 += UI_BOX_TB_BORDER;
/* determine the text height */
- ui_draw_text_full(tempstring, 0, 0, x2 - x1 - 2.0f * UI_BOX_LR_BORDER,
+ ui_draw_text_full(menu->container, tempstring, 0, 0, x2 - x1 - 2.0f * UI_BOX_LR_BORDER,
JUSTIFY_CENTER, WRAP_TRUNCATE, DRAW_NONE, ARGB_WHITE, ARGB_BLACK, NULL, &text_height);
/* draw the thermometer */
@@ -2885,18 +2893,18 @@ static void menu_sliders_custom_render(running_machine *machine, ui_menu *menu,
current_x = bar_left + bar_width * percentage;
/* fill in the percentage */
- render_ui_add_rect(bar_left, bar_top, current_x, bar_bottom, UI_SLIDER_COLOR, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
+ render_container_add_rect(menu->container, bar_left, bar_top, current_x, bar_bottom, UI_SLIDER_COLOR, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
/* draw the top and bottom lines */
- render_ui_add_line(bar_left, bar_top, bar_left + bar_width, bar_top, UI_LINE_WIDTH, UI_BORDER_COLOR, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
- render_ui_add_line(bar_left, bar_bottom, bar_left + bar_width, bar_bottom, UI_LINE_WIDTH, UI_BORDER_COLOR, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
+ render_container_add_line(menu->container, bar_left, bar_top, bar_left + bar_width, bar_top, UI_LINE_WIDTH, UI_BORDER_COLOR, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
+ render_container_add_line(menu->container, bar_left, bar_bottom, bar_left + bar_width, bar_bottom, UI_LINE_WIDTH, UI_BORDER_COLOR, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
/* draw default marker */
- render_ui_add_line(default_x, bar_area_top, default_x, bar_top, UI_LINE_WIDTH, UI_BORDER_COLOR, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
- render_ui_add_line(default_x, bar_bottom, default_x, bar_area_top + bar_area_height, UI_LINE_WIDTH, UI_BORDER_COLOR, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
+ render_container_add_line(menu->container, default_x, bar_area_top, default_x, bar_top, UI_LINE_WIDTH, UI_BORDER_COLOR, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
+ render_container_add_line(menu->container, default_x, bar_bottom, default_x, bar_area_top + bar_area_height, UI_LINE_WIDTH, UI_BORDER_COLOR, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
/* draw the actual text */
- ui_draw_text_full(tempstring, x1 + UI_BOX_LR_BORDER, y1 + line_height, x2 - x1 - 2.0f * UI_BOX_LR_BORDER,
+ ui_draw_text_full(menu->container, tempstring, x1 + UI_BOX_LR_BORDER, y1 + line_height, x2 - x1 - 2.0f * UI_BOX_LR_BORDER,
JUSTIFY_CENTER, WRAP_WORD, DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, NULL, &text_height);
}
}
@@ -2918,7 +2926,7 @@ static void menu_video_targets(running_machine *machine, ui_menu *menu, void *pa
/* process the menu */
event = ui_menu_process(machine, menu, 0);
if (event != NULL && event->iptkey == IPT_UI_SELECT)
- ui_menu_stack_push(ui_menu_alloc(machine, menu_video_options, event->itemref));
+ ui_menu_stack_push(ui_menu_alloc(machine, menu->container, menu_video_options, event->itemref));
}
@@ -2978,9 +2986,9 @@ static void menu_video_options(running_machine *machine, ui_menu *menu, void *pa
if (target == render_get_ui_target())
{
render_container_user_settings settings;
- render_container_get_user_settings(render_container_get_ui(), &settings);
+ render_container_get_user_settings(menu->container, &settings);
settings.orientation = orientation_add(delta ^ ROT180, settings.orientation);
- render_container_set_user_settings(render_container_get_ui(), &settings);
+ render_container_set_user_settings(menu->container, &settings);
}
changed = TRUE;
}
@@ -3392,7 +3400,7 @@ static void menu_select_game(running_machine *machine, ui_menu *menu, void *para
/* special case for configure inputs */
if ((FPTR)driver == 1)
- ui_menu_stack_push(ui_menu_alloc(menu->machine, menu_input_groups, NULL));
+ ui_menu_stack_push(ui_menu_alloc(menu->machine, menu->container, menu_input_groups, NULL));
/* anything else is a driver */
else
@@ -3427,7 +3435,7 @@ static void menu_select_game(running_machine *machine, ui_menu *menu, void *para
else if (event->iptkey == IPT_UI_CANCEL && menustate->search[0] != 0)
{
/* since we have already been popped, we must recreate ourself from scratch */
- ui_menu_stack_push(ui_menu_alloc(menu->machine, menu_select_game, NULL));
+ ui_menu_stack_push(ui_menu_alloc(menu->machine, menu->container, menu_select_game, NULL));
}
/* typed characters append to the buffer */
@@ -3455,7 +3463,8 @@ static void menu_select_game(running_machine *machine, ui_menu *menu, void *para
/* if we're in an error state, overlay an error message */
if (menustate->error)
- ui_draw_text_box("The selected game is missing one or more required ROM or CHD images. "
+ ui_draw_text_box(menu->container,
+ "The selected game is missing one or more required ROM or CHD images. "
"Please select a different game.\n\nPress any key to continue.",
JUSTIFY_CENTER, 0.5f, 0.5f, UI_RED_COLOR);
}
@@ -3621,7 +3630,7 @@ static void menu_select_game_custom_render(running_machine *machine, ui_menu *me
sprintf(&tempbuf[0][0], "Type name or select: (random)");
/* get the size of the text */
- ui_draw_text_full(&tempbuf[0][0], 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE,
+ ui_draw_text_full(menu->container, &tempbuf[0][0], 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE,
DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &width, NULL);
width += 2 * UI_BOX_LR_BORDER;
maxwidth = MAX(width, origx2 - origx1);
@@ -3633,7 +3642,7 @@ static void menu_select_game_custom_render(running_machine *machine, ui_menu *me
y2 = origy1 - UI_BOX_TB_BORDER;
/* draw a box */
- ui_draw_outlined_box(x1, y1, x2, y2, UI_BACKGROUND_COLOR);
+ ui_draw_outlined_box(menu->container, x1, y1, x2, y2, UI_BACKGROUND_COLOR);
/* take off the borders */
x1 += UI_BOX_LR_BORDER;
@@ -3642,7 +3651,7 @@ static void menu_select_game_custom_render(running_machine *machine, ui_menu *me
y2 -= UI_BOX_TB_BORDER;
/* draw the text within it */
- ui_draw_text_full(&tempbuf[0][0], x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_TRUNCATE,
+ ui_draw_text_full(menu->container, &tempbuf[0][0], x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_TRUNCATE,
DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, NULL, NULL);
/* determine the text to render below */
@@ -3709,7 +3718,7 @@ static void menu_select_game_custom_render(running_machine *machine, ui_menu *me
maxwidth = origx2 - origx1;
for (line = 0; line < 4; line++)
{
- ui_draw_text_full(&tempbuf[line][0], 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE,
+ ui_draw_text_full(menu->container, &tempbuf[line][0], 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE,
DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &width, NULL);
width += 2 * UI_BOX_LR_BORDER;
maxwidth = MAX(maxwidth, width);
@@ -3729,7 +3738,7 @@ static void menu_select_game_custom_render(running_machine *machine, ui_menu *me
color = UI_YELLOW_COLOR;
if (driver != NULL && (driver->flags & (GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION)) != 0)
color = UI_RED_COLOR;
- ui_draw_outlined_box(x1, y1, x2, y2, color);
+ ui_draw_outlined_box(menu->container, x1, y1, x2, y2, color);
/* take off the borders */
x1 += UI_BOX_LR_BORDER;
@@ -3740,7 +3749,7 @@ static void menu_select_game_custom_render(running_machine *machine, ui_menu *me
/* draw all lines */
for (line = 0; line < 4; line++)
{
- ui_draw_text_full(&tempbuf[line][0], x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_TRUNCATE,
+ ui_draw_text_full(menu->container, &tempbuf[line][0], x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_TRUNCATE,
DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, NULL, NULL);
y1 += ui_get_line_height();
}
diff --git a/src/emu/uimenu.h b/src/emu/uimenu.h
index 24ad7d3a9fe..b58dd9f2b33 100644
--- a/src/emu/uimenu.h
+++ b/src/emu/uimenu.h
@@ -14,6 +14,7 @@
#ifndef __UIMENU_H__
#define __UIMENU_H__
+#include "render.h"
/***************************************************************************
@@ -87,7 +88,7 @@ void ui_menu_init(running_machine *machine);
/* ----- core menu management ----- */
/* allocate a new menu */
-ui_menu *ui_menu_alloc(running_machine *machine, ui_menu_handler_func handler, void *parameter);
+ui_menu *ui_menu_alloc(running_machine *machine, render_container *container, ui_menu_handler_func handler, void *parameter);
/* free a menu */
void ui_menu_free(ui_menu *menu);
@@ -140,13 +141,13 @@ void ui_menu_stack_pop(running_machine *machine);
/* ----- UI system interaction ----- */
/* master handler */
-UINT32 ui_menu_ui_handler(running_machine *machine, UINT32 state);
+UINT32 ui_menu_ui_handler(running_machine *machine, render_container *container, UINT32 state);
/* slider handler */
-UINT32 ui_slider_ui_handler(running_machine *machine, UINT32 state);
+UINT32 ui_slider_ui_handler(running_machine *machine, render_container *container, UINT32 state);
/* force game select menu */
-void ui_menu_force_game_select(running_machine *machine);
+void ui_menu_force_game_select(running_machine *machine, render_container *container);
int ui_menu_is_force_game_select(void);
diff --git a/src/emu/video.c b/src/emu/video.c
index edfcc9044e7..7b8c8691bcf 100644
--- a/src/emu/video.c
+++ b/src/emu/video.c
@@ -1299,7 +1299,7 @@ void video_frame_update(running_machine *machine, int debug)
}
/* draw the user interface */
- ui_update_and_render(machine);
+ ui_update_and_render(machine, render_container_get_ui());
/* if we're throttling, synchronize before rendering */
if (!debug && !skipped_it && effective_throttle(machine))
diff --git a/src/mame/video/deco16ic.c b/src/mame/video/deco16ic.c
index 5832b5066ea..f84363978eb 100644
--- a/src/mame/video/deco16ic.c
+++ b/src/mame/video/deco16ic.c
@@ -823,7 +823,7 @@ void deco16_print_debug_info(running_machine *machine, bitmap_t *bitmap)
sprintf(&buf[strlen(buf)],"%04X",deco16_priority);
- ui_draw_text(buf,60,40);
+ ui_draw_text(render_container_get_ui(), buf,60,40);
}
/*****************************************************************************************/
diff --git a/src/mame/video/ssv.c b/src/mame/video/ssv.c
index dbfb12835df..c04afa08b53 100644
--- a/src/mame/video/ssv.c
+++ b/src/mame/video/ssv.c
@@ -905,7 +905,7 @@ static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const recta
if (input_code_pressed(machine, KEYCODE_Z)) /* Display some info on each sprite */
{ char buf[30];
sprintf(buf, "%02X",/*(s2[2] & ~0x3ff)>>8*/mode>>8);
- ui_draw_text(buf, sx, sy);
+ ui_draw_text(render_container_get_ui(), buf, sx, sy);
}
#endif
@@ -1085,7 +1085,7 @@ static void gdfs_draw_zooming_sprites(running_machine *machine, bitmap_t *bitmap
{
char buf[10];
sprintf(buf, "%X",size);
- ui_draw_text(buf, sx / 0x10000, sy / 0x10000);
+ ui_draw_text(render_container_get_ui(), buf, sx / 0x10000, sy / 0x10000);
}
#endif
} /* single-sprites */
diff --git a/src/mame/video/taito_f3.c b/src/mame/video/taito_f3.c
index ab10c9fcb74..b54cd5d14dd 100644
--- a/src/mame/video/taito_f3.c
+++ b/src/mame/video/taito_f3.c
@@ -480,7 +480,7 @@ static void print_debug_info(bitmap_t *bitmap)
l[3]=f3_line_ram[0x15e0]&0xffff;
bufptr += sprintf(bufptr,"5000: %04x %04x %04x %04x\n",l[0],l[1],l[2],l[3]);
- ui_draw_text(buf, 60, 40);
+ ui_draw_text(render_container_get_ui(), buf, 60, 40);
}
/******************************************************************************/