Only carry one input overlay state
This commit is contained in:
parent
0ea6a28b6b
commit
d327863d0f
1
driver.h
1
driver.h
|
@ -283,7 +283,6 @@ typedef struct driver
|
||||||
|
|
||||||
#ifdef HAVE_OVERLAY
|
#ifdef HAVE_OVERLAY
|
||||||
input_overlay_t *overlay;
|
input_overlay_t *overlay;
|
||||||
input_overlay_t *osk_overlay;
|
|
||||||
input_overlay_state_t overlay_state;
|
input_overlay_state_t overlay_state;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -850,6 +850,7 @@ void input_overlay_poll_clear(input_overlay_t *ol, float opacity)
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
ol->blocked = false;
|
ol->blocked = false;
|
||||||
|
|
||||||
input_overlay_set_alpha_mod(ol, opacity);
|
input_overlay_set_alpha_mod(ol, opacity);
|
||||||
|
|
||||||
for (i = 0; i < ol->active->size; i++)
|
for (i = 0; i < ol->active->size; i++)
|
||||||
|
|
|
@ -51,7 +51,8 @@ void input_keyboard_line_free(input_keyboard_line_t *state)
|
||||||
free(state->buffer);
|
free(state->buffer);
|
||||||
free(state);
|
free(state);
|
||||||
|
|
||||||
rarch_main_command(RARCH_CMD_OSK_OVERLAY_STOP);
|
rarch_main_command(RARCH_CMD_OVERLAY_DEINIT);
|
||||||
|
driver.osk_active = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -76,7 +77,8 @@ input_keyboard_line_t *input_keyboard_line_new(void *userdata,
|
||||||
state->cb = cb;
|
state->cb = cb;
|
||||||
state->userdata = userdata;
|
state->userdata = userdata;
|
||||||
|
|
||||||
rarch_main_command(RARCH_CMD_OSK_OVERLAY_START);
|
driver.osk_active = true;
|
||||||
|
rarch_main_command(RARCH_CMD_OVERLAY_INIT);
|
||||||
|
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|
|
@ -602,19 +602,15 @@ static inline void input_poll_overlay(input_overlay_t *overlay_device, float opa
|
||||||
static void input_poll(void)
|
static void input_poll(void)
|
||||||
{
|
{
|
||||||
#ifdef HAVE_OVERLAY
|
#ifdef HAVE_OVERLAY
|
||||||
input_overlay_t *overlay_device = driver.overlay;
|
|
||||||
float opacity = g_settings.input.overlay_opacity;
|
float opacity = g_settings.input.overlay_opacity;
|
||||||
if (driver.osk_active)
|
if (driver.osk_active)
|
||||||
{
|
|
||||||
overlay_device = driver.osk_overlay;
|
|
||||||
opacity = g_settings.osk.opacity;
|
opacity = g_settings.osk.opacity;
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
driver.input->poll(driver.input_data);
|
driver.input->poll(driver.input_data);
|
||||||
|
|
||||||
#ifdef HAVE_OVERLAY
|
#ifdef HAVE_OVERLAY
|
||||||
if (overlay_device)
|
if (driver.overlay)
|
||||||
input_poll_overlay(overlay_device, opacity);
|
input_poll_overlay(driver.overlay, opacity);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_COMMAND
|
#ifdef HAVE_COMMAND
|
||||||
|
|
58
retroarch.c
58
retroarch.c
|
@ -2676,53 +2676,23 @@ bool rarch_main_command(unsigned cmd)
|
||||||
case RARCH_CMD_OVERLAY_INIT:
|
case RARCH_CMD_OVERLAY_INIT:
|
||||||
rarch_main_command(RARCH_CMD_OVERLAY_DEINIT);
|
rarch_main_command(RARCH_CMD_OVERLAY_DEINIT);
|
||||||
#ifdef HAVE_OVERLAY
|
#ifdef HAVE_OVERLAY
|
||||||
if (!*g_settings.input.overlay)
|
if (driver.osk_active)
|
||||||
break;
|
{
|
||||||
|
if (!*g_settings.osk.overlay)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (!*g_settings.input.overlay)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
driver.overlay = input_overlay_new(g_settings.input.overlay, g_settings.input.overlay_enable,
|
driver.overlay = input_overlay_new(driver.osk_active ? g_settings.osk.overlay : g_settings.input.overlay,
|
||||||
g_settings.input.overlay_opacity, g_settings.input.overlay_scale);
|
driver.osk_active ? g_settings.osk.enable : g_settings.input.overlay_enable,
|
||||||
|
driver.osk_active ? g_settings.osk.opacity : g_settings.input.overlay_opacity,
|
||||||
|
driver.osk_active ? g_settings.osk.scale : g_settings.input.overlay_scale);
|
||||||
if (!driver.overlay)
|
if (!driver.overlay)
|
||||||
RARCH_ERR("Failed to load overlay.\n");
|
RARCH_ERR("Failed to load overlay.\n");
|
||||||
#endif
|
|
||||||
break;
|
|
||||||
case RARCH_CMD_OSK_OVERLAY_STOP:
|
|
||||||
#ifdef HAVE_OVERLAY
|
|
||||||
|
|
||||||
driver.osk_active = false;
|
|
||||||
|
|
||||||
rarch_main_command(RARCH_CMD_OSK_OVERLAY_DEINIT);
|
|
||||||
|
|
||||||
if (g_settings.input.overlay_enable)
|
|
||||||
rarch_main_command(RARCH_CMD_OSK_OVERLAY_INIT);
|
|
||||||
|
|
||||||
#endif
|
|
||||||
break;
|
|
||||||
case RARCH_CMD_OSK_OVERLAY_START:
|
|
||||||
#ifdef HAVE_OVERLAY
|
|
||||||
if (!g_settings.osk.enable)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
rarch_main_command(RARCH_CMD_OVERLAY_DEINIT);
|
|
||||||
rarch_main_command(RARCH_CMD_OSK_OVERLAY_INIT);
|
|
||||||
|
|
||||||
driver.osk_active = true;
|
|
||||||
#endif
|
|
||||||
break;
|
|
||||||
case RARCH_CMD_OSK_OVERLAY_DEINIT:
|
|
||||||
#ifdef HAVE_OVERLAY
|
|
||||||
if (driver.osk_overlay)
|
|
||||||
input_overlay_free(driver.osk_overlay);
|
|
||||||
driver.osk_overlay = NULL;
|
|
||||||
#endif
|
|
||||||
break;
|
|
||||||
case RARCH_CMD_OSK_OVERLAY_INIT:
|
|
||||||
#ifdef HAVE_OVERLAY
|
|
||||||
rarch_main_command(RARCH_CMD_OSK_OVERLAY_DEINIT);
|
|
||||||
|
|
||||||
driver.osk_overlay = input_overlay_new(g_settings.osk.overlay, g_settings.osk.enable,
|
|
||||||
100, g_settings.osk.scale);
|
|
||||||
if (!driver.osk_overlay)
|
|
||||||
RARCH_ERR("Failed to load OSK overlay.\n");
|
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
case RARCH_CMD_OVERLAY_NEXT:
|
case RARCH_CMD_OVERLAY_NEXT:
|
||||||
|
|
|
@ -70,14 +70,6 @@ enum basic_event
|
||||||
RARCH_CMD_OVERLAY_SET_ALPHA_MOD,
|
RARCH_CMD_OVERLAY_SET_ALPHA_MOD,
|
||||||
/* Cycle to next overlay. */
|
/* Cycle to next overlay. */
|
||||||
RARCH_CMD_OVERLAY_NEXT,
|
RARCH_CMD_OVERLAY_NEXT,
|
||||||
/* Start OSK overlay. */
|
|
||||||
RARCH_CMD_OSK_OVERLAY_START,
|
|
||||||
/* Stops OSK overlay. */
|
|
||||||
RARCH_CMD_OSK_OVERLAY_STOP,
|
|
||||||
/* Initializes graphics filter. */
|
|
||||||
RARCH_CMD_OSK_OVERLAY_INIT,
|
|
||||||
/* Initializes overlay. */
|
|
||||||
RARCH_CMD_OSK_OVERLAY_DEINIT,
|
|
||||||
/* Deinitializes overlay. */
|
/* Deinitializes overlay. */
|
||||||
RARCH_CMD_DSP_FILTER_INIT,
|
RARCH_CMD_DSP_FILTER_INIT,
|
||||||
/* Deinitializes graphics filter. */
|
/* Deinitializes graphics filter. */
|
||||||
|
|
|
@ -1984,7 +1984,7 @@ bool config_save_file(const char *path)
|
||||||
|
|
||||||
config_set_path(conf, "osk_overlay_directory",
|
config_set_path(conf, "osk_overlay_directory",
|
||||||
*g_extern.osk_overlay_dir ? g_extern.osk_overlay_dir : "default");
|
*g_extern.osk_overlay_dir ? g_extern.osk_overlay_dir : "default");
|
||||||
config_set_path(conf, "input_osk_overlay", g_settings.input.overlay);
|
config_set_path(conf, "input_osk_overlay", g_settings.osk.overlay);
|
||||||
config_set_bool(conf, "input_osk_overlay_enable", g_settings.osk.enable);
|
config_set_bool(conf, "input_osk_overlay_enable", g_settings.osk.enable);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -3311,19 +3311,6 @@ static void load_content_change_handler(void *data)
|
||||||
rarch_main_command(RARCH_CMD_LOAD_CONTENT);
|
rarch_main_command(RARCH_CMD_LOAD_CONTENT);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void osk_overlay_enable_toggle_change_handler(void *data)
|
|
||||||
{
|
|
||||||
rarch_setting_t *setting = (rarch_setting_t *)data;
|
|
||||||
|
|
||||||
if (!setting)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (setting->value.boolean)
|
|
||||||
rarch_main_command(RARCH_CMD_OSK_OVERLAY_INIT);
|
|
||||||
else
|
|
||||||
rarch_main_command(RARCH_CMD_OSK_OVERLAY_DEINIT);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void overlay_enable_toggle_change_handler(void *data)
|
static void overlay_enable_toggle_change_handler(void *data)
|
||||||
{
|
{
|
||||||
rarch_setting_t *setting = (rarch_setting_t *)data;
|
rarch_setting_t *setting = (rarch_setting_t *)data;
|
||||||
|
@ -5249,7 +5236,6 @@ static bool setting_data_append_list_osk_overlay_options(
|
||||||
subgroup_info.name,
|
subgroup_info.name,
|
||||||
general_write_handler,
|
general_write_handler,
|
||||||
general_read_handler);
|
general_read_handler);
|
||||||
(*list)[list_info->index - 1].change_handler = osk_overlay_enable_toggle_change_handler;
|
|
||||||
|
|
||||||
CONFIG_PATH(
|
CONFIG_PATH(
|
||||||
g_settings.osk.overlay,
|
g_settings.osk.overlay,
|
||||||
|
@ -5261,7 +5247,6 @@ static bool setting_data_append_list_osk_overlay_options(
|
||||||
general_write_handler,
|
general_write_handler,
|
||||||
general_read_handler);
|
general_read_handler);
|
||||||
settings_list_current_add_values(list, list_info, "cfg");
|
settings_list_current_add_values(list, list_info, "cfg");
|
||||||
settings_list_current_add_cmd(list, list_info, RARCH_CMD_OSK_OVERLAY_INIT);
|
|
||||||
settings_data_list_current_add_flags(list, list_info, SD_FLAG_ALLOW_EMPTY);
|
settings_data_list_current_add_flags(list, list_info, SD_FLAG_ALLOW_EMPTY);
|
||||||
|
|
||||||
END_SUB_GROUP(list, list_info);
|
END_SUB_GROUP(list, list_info);
|
||||||
|
|
Loading…
Reference in New Issue