mirror of
https://github.com/libretro/RetroArch
synced 2025-02-28 12:40:23 +00:00
Refactor this code
This commit is contained in:
parent
9af5b44453
commit
dd0136e2d5
@ -58,7 +58,6 @@ static const menu_ctx_driver_t *menu_ctx_drivers[] = {
|
||||
|
||||
static menu_handle_t *menu_driver_data = NULL;
|
||||
static const menu_ctx_driver_t *menu_driver_ctx = NULL;
|
||||
static struct video_shader *menu_driver_shader = NULL;
|
||||
static void *menu_userdata = NULL;
|
||||
|
||||
/**
|
||||
@ -219,19 +218,19 @@ static void bundle_decompressed(void *task_data,
|
||||
*
|
||||
* Returns: menu handle on success, otherwise NULL.
|
||||
**/
|
||||
static void *menu_init(const void *data)
|
||||
static bool menu_init(const void *data)
|
||||
{
|
||||
menu_handle_t *menu = NULL;
|
||||
menu_ctx_driver_t *menu_ctx = (menu_ctx_driver_t*)data;
|
||||
settings_t *settings = config_get_ptr();
|
||||
|
||||
if (!menu_ctx)
|
||||
return NULL;
|
||||
return false;
|
||||
|
||||
menu = (menu_handle_t*)menu_ctx->init(&menu_userdata);
|
||||
|
||||
if (!menu)
|
||||
return NULL;
|
||||
return false;
|
||||
|
||||
strlcpy(settings->menu.driver, menu_ctx->ident,
|
||||
sizeof(settings->menu.driver));
|
||||
@ -242,12 +241,8 @@ static void *menu_init(const void *data)
|
||||
if (!core_info_ctl(CORE_INFO_CTL_CURRENT_CORE_INIT, NULL))
|
||||
goto error;
|
||||
|
||||
#ifdef HAVE_SHADER_MANAGER
|
||||
menu_driver_shader = (struct video_shader*)
|
||||
calloc(1, sizeof(struct video_shader));
|
||||
if (!menu_driver_shader)
|
||||
if (!menu_driver_ctl(RARCH_MENU_CTL_SHADER_INIT, NULL))
|
||||
goto error;
|
||||
#endif
|
||||
|
||||
if (settings->menu_show_start_screen)
|
||||
{
|
||||
@ -283,12 +278,14 @@ static void *menu_init(const void *data)
|
||||
if (!menu_display_ctl(MENU_DISPLAY_CTL_INIT, NULL))
|
||||
goto error;
|
||||
|
||||
return menu;
|
||||
menu_driver_data = (void*)menu;
|
||||
|
||||
return true;
|
||||
|
||||
error:
|
||||
menu_free(menu);
|
||||
|
||||
return NULL;
|
||||
return false;
|
||||
}
|
||||
|
||||
void menu_driver_list_insert(file_list_t *list, const char *path,
|
||||
@ -517,11 +514,12 @@ int menu_driver_pointer_tap(unsigned x, unsigned y, unsigned ptr,
|
||||
bool menu_driver_ctl(enum rarch_menu_ctl_state state, void *data)
|
||||
{
|
||||
static struct retro_system_info menu_driver_system;
|
||||
static content_playlist_t *menu_driver_playlist = NULL;
|
||||
static bool menu_driver_prevent_populate = false;
|
||||
static bool menu_driver_load_no_content = false;
|
||||
static bool menu_driver_alive = false;
|
||||
static bool menu_driver_data_own = false;
|
||||
static content_playlist_t *menu_driver_playlist = NULL;
|
||||
static struct video_shader *menu_driver_shader = NULL;
|
||||
const menu_ctx_driver_t *driver = menu_driver_ctx;
|
||||
|
||||
switch (state)
|
||||
@ -589,6 +587,14 @@ bool menu_driver_ctl(enum rarch_menu_ctl_state state, void *data)
|
||||
if (menu_driver_shader)
|
||||
free(menu_driver_shader);
|
||||
menu_driver_shader = NULL;
|
||||
#endif
|
||||
return true;
|
||||
case RARCH_MENU_CTL_SHADER_INIT:
|
||||
#ifdef HAVE_SHADER_MANAGER
|
||||
menu_driver_shader = (struct video_shader*)
|
||||
calloc(1, sizeof(struct video_shader));
|
||||
if (!menu_driver_shader)
|
||||
return false;
|
||||
#endif
|
||||
return true;
|
||||
case RARCH_MENU_CTL_SHADER_GET:
|
||||
@ -656,9 +662,7 @@ bool menu_driver_ctl(enum rarch_menu_ctl_state state, void *data)
|
||||
if (!menu_display_ctl(RARCH_MENU_CTL_FIND_DRIVER, NULL))
|
||||
return false;
|
||||
|
||||
menu_driver_data = (menu_handle_t*)menu_init(menu_driver_ctx);
|
||||
|
||||
if (!menu_driver_data)
|
||||
if (!menu_init(menu_driver_ctx))
|
||||
{
|
||||
retro_fail(1, "init_menu()");
|
||||
return false;
|
||||
|
@ -101,6 +101,7 @@ enum rarch_menu_ctl_state
|
||||
RARCH_MENU_CTL_DEINIT,
|
||||
RARCH_MENU_CTL_INIT,
|
||||
RARCH_MENU_CTL_SHADER_DEINIT,
|
||||
RARCH_MENU_CTL_SHADER_INIT,
|
||||
RARCH_MENU_CTL_SHADER_GET,
|
||||
RARCH_MENU_CTL_BLIT_RENDER,
|
||||
RARCH_MENU_CTL_RENDER,
|
||||
|
Loading…
x
Reference in New Issue
Block a user