mirror of
https://github.com/libretro/RetroArch
synced 2025-04-07 13:23:32 +00:00
Try to avoid countless string_is_equal function calls
being called multiple times per frame render - prebake these decisions instead inside list_insert
This commit is contained in:
parent
f608ac3556
commit
db24e4da42
@ -62,6 +62,11 @@ typedef struct
|
|||||||
{
|
{
|
||||||
float line_height;
|
float line_height;
|
||||||
float y;
|
float y;
|
||||||
|
intptr_t texture_switch;
|
||||||
|
intptr_t texture_switch2;
|
||||||
|
bool switch_is_on;
|
||||||
|
bool do_draw_text;
|
||||||
|
bool values_set;
|
||||||
} mui_node_t;
|
} mui_node_t;
|
||||||
|
|
||||||
/* Textures used for the tabs and the switches */
|
/* Textures used for the tabs and the switches */
|
||||||
@ -715,8 +720,8 @@ static void mui_render_label_value(mui_handle_t *mui, mui_node_t *node,
|
|||||||
bool switch_is_on = true;
|
bool switch_is_on = true;
|
||||||
int value_len = (int)utf8len(value);
|
int value_len = (int)utf8len(value);
|
||||||
int ticker_limit = 0;
|
int ticker_limit = 0;
|
||||||
uintptr_t texture_switch = 0;
|
intptr_t texture_switch = 0;
|
||||||
uintptr_t texture_switch2 = 0;
|
intptr_t texture_switch2 = 0;
|
||||||
bool do_draw_text = false;
|
bool do_draw_text = false;
|
||||||
size_t usable_width = width - (mui->margin * 2);
|
size_t usable_width = width - (mui->margin * 2);
|
||||||
uint32_t sublabel_color = 0x888888ff;
|
uint32_t sublabel_color = 0x888888ff;
|
||||||
@ -745,26 +750,45 @@ static void mui_render_label_value(mui_handle_t *mui, mui_node_t *node,
|
|||||||
|
|
||||||
menu_animation_ticker(&ticker);
|
menu_animation_ticker(&ticker);
|
||||||
|
|
||||||
|
/* set switch_is_on */
|
||||||
if (string_is_equal(value, msg_hash_to_str(MENU_ENUM_LABEL_DISABLED)) ||
|
if (string_is_equal(value, msg_hash_to_str(MENU_ENUM_LABEL_DISABLED)) ||
|
||||||
(string_is_equal(value, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_OFF))))
|
(string_is_equal(value, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_OFF))))
|
||||||
{
|
{
|
||||||
if (mui->textures.list[MUI_TEXTURE_SWITCH_OFF])
|
if (mui->textures.list[MUI_TEXTURE_SWITCH_OFF])
|
||||||
{
|
|
||||||
texture_switch = mui->textures.list[MUI_TEXTURE_SWITCH_OFF];
|
|
||||||
switch_is_on = false;
|
switch_is_on = false;
|
||||||
}
|
|
||||||
else
|
|
||||||
do_draw_text = true;
|
|
||||||
}
|
}
|
||||||
else if (string_is_equal(value, msg_hash_to_str(MENU_ENUM_LABEL_ENABLED)) ||
|
else if (string_is_equal(value, msg_hash_to_str(MENU_ENUM_LABEL_ENABLED)) ||
|
||||||
(string_is_equal(value, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ON))))
|
(string_is_equal(value, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ON))))
|
||||||
{
|
{
|
||||||
if (mui->textures.list[MUI_TEXTURE_SWITCH_ON])
|
if (mui->textures.list[MUI_TEXTURE_SWITCH_ON])
|
||||||
{
|
|
||||||
texture_switch = mui->textures.list[MUI_TEXTURE_SWITCH_ON];
|
|
||||||
switch_is_on = true;
|
switch_is_on = true;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
/* set texture_switch */
|
||||||
|
if (string_is_equal(value, msg_hash_to_str(MENU_ENUM_LABEL_DISABLED)) ||
|
||||||
|
(string_is_equal(value, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_OFF))))
|
||||||
|
{
|
||||||
|
if (mui->textures.list[MUI_TEXTURE_SWITCH_OFF])
|
||||||
|
texture_switch = mui->textures.list[MUI_TEXTURE_SWITCH_OFF];
|
||||||
|
}
|
||||||
|
else if (string_is_equal(value, msg_hash_to_str(MENU_ENUM_LABEL_ENABLED)) ||
|
||||||
|
(string_is_equal(value, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ON))))
|
||||||
|
{
|
||||||
|
if (mui->textures.list[MUI_TEXTURE_SWITCH_ON])
|
||||||
|
texture_switch = mui->textures.list[MUI_TEXTURE_SWITCH_ON];
|
||||||
|
}
|
||||||
|
|
||||||
|
/* set do_draw_text */
|
||||||
|
if (string_is_equal(value, msg_hash_to_str(MENU_ENUM_LABEL_DISABLED)) ||
|
||||||
|
(string_is_equal(value, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_OFF))))
|
||||||
|
{
|
||||||
|
if (!mui->textures.list[MUI_TEXTURE_SWITCH_OFF])
|
||||||
|
do_draw_text = true;
|
||||||
|
}
|
||||||
|
else if (string_is_equal(value, msg_hash_to_str(MENU_ENUM_LABEL_ENABLED)) ||
|
||||||
|
(string_is_equal(value, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ON))))
|
||||||
|
{
|
||||||
|
if (!mui->textures.list[MUI_TEXTURE_SWITCH_ON])
|
||||||
do_draw_text = true;
|
do_draw_text = true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -789,93 +813,22 @@ static void mui_render_label_value(mui_handle_t *mui, mui_node_t *node,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (type)
|
/* set texture_switch2 */
|
||||||
|
if (node->texture_switch2 != -1)
|
||||||
|
texture_switch2 = node->texture_switch2;
|
||||||
|
else
|
||||||
{
|
{
|
||||||
case FILE_TYPE_PLAIN:
|
switch (type)
|
||||||
texture_switch2 = mui->textures.list[MUI_TEXTURE_FILE];
|
{
|
||||||
break;
|
case FILE_TYPE_COMPRESSED:
|
||||||
case FILE_TYPE_COMPRESSED:
|
texture_switch2 = mui->textures.list[MUI_TEXTURE_ARCHIVE];
|
||||||
texture_switch2 = mui->textures.list[MUI_TEXTURE_ARCHIVE];
|
break;
|
||||||
break;
|
case FILE_TYPE_IMAGE:
|
||||||
case FILE_TYPE_IMAGE:
|
texture_switch2 = mui->textures.list[MUI_TEXTURE_IMAGE];
|
||||||
texture_switch2 = mui->textures.list[MUI_TEXTURE_IMAGE];
|
break;
|
||||||
break;
|
default:
|
||||||
case FILE_TYPE_MOVIE:
|
break;
|
||||||
texture_switch2 = mui->textures.list[MUI_TEXTURE_VIDEO];
|
}
|
||||||
break;
|
|
||||||
case FILE_TYPE_DIRECTORY:
|
|
||||||
texture_switch2 = mui->textures.list[MUI_TEXTURE_FOLDER];
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_INFORMATION)))
|
|
||||||
texture_switch2 = mui->textures.list[MUI_TEXTURE_INFO];
|
|
||||||
else if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_HELP)))
|
|
||||||
texture_switch2 = mui->textures.list[MUI_TEXTURE_HELP];
|
|
||||||
else if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SCAN_DIRECTORY)) ||
|
|
||||||
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SCAN_FILE))
|
|
||||||
)
|
|
||||||
texture_switch2 = mui->textures.list[MUI_TEXTURE_ADD];
|
|
||||||
else if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_QUIT_RETROARCH)))
|
|
||||||
texture_switch2 = mui->textures.list[MUI_TEXTURE_QUIT];
|
|
||||||
else if (
|
|
||||||
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DRIVER_SETTINGS))
|
|
||||||
||
|
|
||||||
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_SETTINGS))
|
|
||||||
||
|
|
||||||
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_AUDIO_SETTINGS))
|
|
||||||
||
|
|
||||||
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_INPUT_SETTINGS))
|
|
||||||
||
|
|
||||||
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CORE_SETTINGS))
|
|
||||||
||
|
|
||||||
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CONFIGURATION_SETTINGS))
|
|
||||||
||
|
|
||||||
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SAVING_SETTINGS))
|
|
||||||
||
|
|
||||||
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LOGGING_SETTINGS))
|
|
||||||
||
|
|
||||||
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_FRAME_THROTTLE_SETTINGS))
|
|
||||||
||
|
|
||||||
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_RECORDING_SETTINGS))
|
|
||||||
||
|
|
||||||
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ONSCREEN_DISPLAY_SETTINGS))
|
|
||||||
||
|
|
||||||
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_USER_INTERFACE_SETTINGS))
|
|
||||||
||
|
|
||||||
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_RETRO_ACHIEVEMENTS_SETTINGS))
|
|
||||||
||
|
|
||||||
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_WIFI_SETTINGS))
|
|
||||||
||
|
|
||||||
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NETWORK_SETTINGS))
|
|
||||||
||
|
|
||||||
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NETPLAY_LAN_SCAN_SETTINGS))
|
|
||||||
||
|
|
||||||
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LAKKA_SERVICES))
|
|
||||||
||
|
|
||||||
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_PLAYLIST_SETTINGS))
|
|
||||||
||
|
|
||||||
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_USER_SETTINGS))
|
|
||||||
||
|
|
||||||
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DIRECTORY_SETTINGS))
|
|
||||||
||
|
|
||||||
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_PRIVACY_SETTINGS))
|
|
||||||
||
|
|
||||||
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_MENU_VIEWS_SETTINGS))
|
|
||||||
||
|
|
||||||
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_MENU_SETTINGS))
|
|
||||||
||
|
|
||||||
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ONSCREEN_OVERLAY_SETTINGS))
|
|
||||||
||
|
|
||||||
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ONSCREEN_NOTIFICATIONS_SETTINGS))
|
|
||||||
||
|
|
||||||
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ACCOUNTS_LIST))
|
|
||||||
||
|
|
||||||
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_REWIND_SETTINGS))
|
|
||||||
)
|
|
||||||
{
|
|
||||||
texture_switch2 = mui->textures.list[MUI_TEXTURE_SETTINGS];
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Sublabel */
|
/* Sublabel */
|
||||||
@ -903,7 +856,7 @@ static void mui_render_label_value(mui_handle_t *mui, mui_node_t *node,
|
|||||||
if (texture_switch2)
|
if (texture_switch2)
|
||||||
mui_draw_icon(
|
mui_draw_icon(
|
||||||
mui->icon_size,
|
mui->icon_size,
|
||||||
texture_switch2,
|
(uintptr_t)texture_switch2,
|
||||||
0,
|
0,
|
||||||
y + (scale_factor / 6) - mui->icon_size/2,
|
y + (scale_factor / 6) - mui->icon_size/2,
|
||||||
width,
|
width,
|
||||||
@ -916,7 +869,7 @@ static void mui_render_label_value(mui_handle_t *mui, mui_node_t *node,
|
|||||||
if (texture_switch)
|
if (texture_switch)
|
||||||
mui_draw_icon(
|
mui_draw_icon(
|
||||||
mui->icon_size,
|
mui->icon_size,
|
||||||
texture_switch,
|
(uintptr_t)texture_switch,
|
||||||
width - mui->margin - mui->icon_size,
|
width - mui->margin - mui->icon_size,
|
||||||
y + (scale_factor / 6) - mui->icon_size/2,
|
y + (scale_factor / 6) - mui->icon_size/2,
|
||||||
width,
|
width,
|
||||||
@ -2192,15 +2145,19 @@ static int mui_pointer_up(void *userdata,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* The menu system can insert menu entries on the fly. It is used in the shaders
|
/* The menu system can insert menu entries on the fly.
|
||||||
UI, the wifi UI, the netplay lobby, etc. This function allocates the mui_node_t
|
* It is used in the shaders UI, the wifi UI,
|
||||||
for the new entry. */
|
* the netplay lobby, etc.
|
||||||
|
*
|
||||||
|
* This function allocates the mui_node_t
|
||||||
|
*for the new entry. */
|
||||||
static void mui_list_insert(void *userdata,
|
static void mui_list_insert(void *userdata,
|
||||||
file_list_t *list,
|
file_list_t *list,
|
||||||
const char *path,
|
const char *path,
|
||||||
const char *fullpath,
|
const char *fullpath,
|
||||||
const char *unused,
|
const char *label,
|
||||||
size_t list_size)
|
size_t list_size,
|
||||||
|
unsigned type)
|
||||||
{
|
{
|
||||||
float scale_factor;
|
float scale_factor;
|
||||||
int i = (int)list_size;
|
int i = (int)list_size;
|
||||||
@ -2223,8 +2180,95 @@ static void mui_list_insert(void *userdata,
|
|||||||
|
|
||||||
scale_factor = menu_display_get_dpi();
|
scale_factor = menu_display_get_dpi();
|
||||||
|
|
||||||
node->line_height = scale_factor / 3;
|
node->line_height = scale_factor / 3;
|
||||||
node->y = 0;
|
node->y = 0;
|
||||||
|
node->texture_switch = -1;
|
||||||
|
node->texture_switch2 = -1;
|
||||||
|
node->switch_is_on = false;
|
||||||
|
node->do_draw_text = false;
|
||||||
|
|
||||||
|
switch (type)
|
||||||
|
{
|
||||||
|
case FILE_TYPE_PLAIN:
|
||||||
|
node->texture_switch2 = mui->textures.list[MUI_TEXTURE_FILE];
|
||||||
|
break;
|
||||||
|
case FILE_TYPE_MOVIE:
|
||||||
|
node->texture_switch2 = mui->textures.list[MUI_TEXTURE_VIDEO];
|
||||||
|
break;
|
||||||
|
case FILE_TYPE_DIRECTORY:
|
||||||
|
node->texture_switch2 = mui->textures.list[MUI_TEXTURE_FOLDER];
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_INFORMATION_LIST)))
|
||||||
|
node->texture_switch2 = mui->textures.list[MUI_TEXTURE_INFO];
|
||||||
|
else if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_HELP_LIST)))
|
||||||
|
node->texture_switch2 = mui->textures.list[MUI_TEXTURE_HELP];
|
||||||
|
else if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_SCAN_DIRECTORY)) ||
|
||||||
|
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_SCAN_FILE))
|
||||||
|
)
|
||||||
|
node->texture_switch2 = mui->textures.list[MUI_TEXTURE_ADD];
|
||||||
|
else if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_QUIT_RETROARCH)))
|
||||||
|
node->texture_switch2 = mui->textures.list[MUI_TEXTURE_QUIT];
|
||||||
|
else if (
|
||||||
|
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DRIVER_SETTINGS))
|
||||||
|
||
|
||||||
|
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_VIDEO_SETTINGS))
|
||||||
|
||
|
||||||
|
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_AUDIO_SETTINGS))
|
||||||
|
||
|
||||||
|
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_INPUT_SETTINGS))
|
||||||
|
||
|
||||||
|
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_CORE_SETTINGS))
|
||||||
|
||
|
||||||
|
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_CONFIGURATION_SETTINGS))
|
||||||
|
||
|
||||||
|
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_SAVING_SETTINGS))
|
||||||
|
||
|
||||||
|
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_LOGGING_SETTINGS))
|
||||||
|
||
|
||||||
|
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_FRAME_THROTTLE_SETTINGS))
|
||||||
|
||
|
||||||
|
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_RECORDING_SETTINGS))
|
||||||
|
||
|
||||||
|
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_ONSCREEN_DISPLAY_SETTINGS))
|
||||||
|
||
|
||||||
|
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_USER_INTERFACE_SETTINGS))
|
||||||
|
||
|
||||||
|
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_RETRO_ACHIEVEMENTS_SETTINGS))
|
||||||
|
||
|
||||||
|
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_WIFI_SETTINGS))
|
||||||
|
||
|
||||||
|
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_NETWORK_SETTINGS))
|
||||||
|
||
|
||||||
|
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_NETPLAY_LAN_SCAN_SETTINGS))
|
||||||
|
||
|
||||||
|
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_LAKKA_SERVICES))
|
||||||
|
||
|
||||||
|
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_PLAYLIST_SETTINGS))
|
||||||
|
||
|
||||||
|
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_USER_SETTINGS))
|
||||||
|
||
|
||||||
|
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DIRECTORY_SETTINGS))
|
||||||
|
||
|
||||||
|
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_PRIVACY_SETTINGS))
|
||||||
|
||
|
||||||
|
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_MENU_VIEWS_SETTINGS))
|
||||||
|
||
|
||||||
|
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_MENU_SETTINGS))
|
||||||
|
||
|
||||||
|
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_ONSCREEN_OVERLAY_SETTINGS))
|
||||||
|
||
|
||||||
|
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_ONSCREEN_NOTIFICATIONS_SETTINGS))
|
||||||
|
||
|
||||||
|
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_ACCOUNTS_LIST))
|
||||||
|
||
|
||||||
|
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_REWIND_SETTINGS))
|
||||||
|
)
|
||||||
|
{
|
||||||
|
node->texture_switch2 = mui->textures.list[MUI_TEXTURE_SETTINGS];
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
file_list_set_userdata(list, i, node);
|
file_list_set_userdata(list, i, node);
|
||||||
}
|
}
|
||||||
|
@ -3728,7 +3728,8 @@ static void xmb_list_insert(void *userdata,
|
|||||||
const char *path,
|
const char *path,
|
||||||
const char *fullpath,
|
const char *fullpath,
|
||||||
const char *unused,
|
const char *unused,
|
||||||
size_t list_size)
|
size_t list_size,
|
||||||
|
unsigned entry_type)
|
||||||
{
|
{
|
||||||
int current = 0;
|
int current = 0;
|
||||||
int i = (int)list_size;
|
int i = (int)list_size;
|
||||||
|
@ -2044,7 +2044,7 @@ bool menu_driver_ctl(enum rarch_menu_ctl_state state, void *data)
|
|||||||
return false;
|
return false;
|
||||||
menu_driver_ctx->list_insert(menu_userdata,
|
menu_driver_ctx->list_insert(menu_userdata,
|
||||||
list->list, list->path, list->fullpath,
|
list->list, list->path, list->fullpath,
|
||||||
list->label, list->idx);
|
list->label, list->idx, list->entry_type);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case RARCH_MENU_CTL_ENVIRONMENT:
|
case RARCH_MENU_CTL_ENVIRONMENT:
|
||||||
|
@ -449,7 +449,8 @@ typedef struct menu_ctx_driver
|
|||||||
/* Initializes a new menu list. */
|
/* Initializes a new menu list. */
|
||||||
bool (*lists_init)(void*);
|
bool (*lists_init)(void*);
|
||||||
void (*list_insert)(void *userdata,
|
void (*list_insert)(void *userdata,
|
||||||
file_list_t *list, const char *, const char *, const char *, size_t);
|
file_list_t *list, const char *, const char *, const char *, size_t,
|
||||||
|
unsigned);
|
||||||
int (*list_prepend)(void *userdata,
|
int (*list_prepend)(void *userdata,
|
||||||
file_list_t *list, const char *, const char *, size_t);
|
file_list_t *list, const char *, const char *, size_t);
|
||||||
void (*list_free)(file_list_t *list, size_t, size_t);
|
void (*list_free)(file_list_t *list, size_t, size_t);
|
||||||
|
@ -383,8 +383,9 @@ void menu_entries_append(file_list_t *list, const char *path, const char *label,
|
|||||||
if (!string_is_empty(menu_path))
|
if (!string_is_empty(menu_path))
|
||||||
list_info.fullpath = strdup(menu_path);
|
list_info.fullpath = strdup(menu_path);
|
||||||
|
|
||||||
list_info.label = label;
|
list_info.label = label;
|
||||||
list_info.idx = idx;
|
list_info.idx = idx;
|
||||||
|
list_info.entry_type = type;
|
||||||
|
|
||||||
menu_driver_ctl(RARCH_MENU_CTL_LIST_INSERT, &list_info);
|
menu_driver_ctl(RARCH_MENU_CTL_LIST_INSERT, &list_info);
|
||||||
|
|
||||||
@ -432,6 +433,7 @@ void menu_entries_append_enum(file_list_t *list, const char *path,
|
|||||||
list_info.path = path;
|
list_info.path = path;
|
||||||
list_info.label = label;
|
list_info.label = label;
|
||||||
list_info.idx = idx;
|
list_info.idx = idx;
|
||||||
|
list_info.entry_type = type;
|
||||||
|
|
||||||
menu_driver_ctl(RARCH_MENU_CTL_LIST_INSERT, &list_info);
|
menu_driver_ctl(RARCH_MENU_CTL_LIST_INSERT, &list_info);
|
||||||
|
|
||||||
@ -482,6 +484,7 @@ void menu_entries_prepend(file_list_t *list, const char *path, const char *label
|
|||||||
list_info.path = path;
|
list_info.path = path;
|
||||||
list_info.label = label;
|
list_info.label = label;
|
||||||
list_info.idx = idx;
|
list_info.idx = idx;
|
||||||
|
list_info.entry_type = type;
|
||||||
|
|
||||||
menu_driver_ctl(RARCH_MENU_CTL_LIST_INSERT, &list_info);
|
menu_driver_ctl(RARCH_MENU_CTL_LIST_INSERT, &list_info);
|
||||||
|
|
||||||
|
@ -42,6 +42,7 @@ typedef struct menu_ctx_list
|
|||||||
char *fullpath;
|
char *fullpath;
|
||||||
const char *label;
|
const char *label;
|
||||||
size_t idx;
|
size_t idx;
|
||||||
|
unsigned entry_type;
|
||||||
enum menu_list_type type;
|
enum menu_list_type type;
|
||||||
unsigned action;
|
unsigned action;
|
||||||
size_t selection;
|
size_t selection;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user