(RMenu) Refactor rmenu

This commit is contained in:
twinaphex 2014-02-25 19:05:46 +01:00
parent df5c88c837
commit 6e8e22a458
1 changed files with 21 additions and 27 deletions

View File

@ -112,7 +112,6 @@ static void rmenu_render_messagebox(void *data, const char *message)
} }
render_normal = false; render_normal = false;
} }
@ -123,6 +122,19 @@ static void rmenu_render(void *data)
render_normal = true; render_normal = true;
return; return;
} }
if (!menu_texture && !menu_texture_inited)
{
if (g_extern.video_active && driver.video_data)
{
menu_texture = (struct texture_image*)calloc(1, sizeof(*menu_texture));
texture_image_load(g_extern.menu_texture_path, menu_texture);
rgui->width = menu_texture->width;
rgui->height = menu_texture->height;
rmenu_set_texture(rgui, true);
}
return;
}
rgui_handle_t *rgui = (rgui_handle_t*)data; rgui_handle_t *rgui = (rgui_handle_t*)data;
font_params_t font_parms; font_params_t font_parms;
@ -397,39 +409,23 @@ void rmenu_set_texture(void *data, bool enable)
} }
} }
static void rmenu_init_assets(void *data)
{
rgui_handle_t *rgui = (rgui_handle_t*)data;
if (!rgui)
return;
menu_texture = (struct texture_image*)calloc(1, sizeof(*menu_texture));
texture_image_load(g_extern.menu_texture_path, menu_texture);
rgui->width = menu_texture->width;
rgui->height = menu_texture->height;
rmenu_set_texture(rgui, true);
}
static void *rmenu_init(void) static void *rmenu_init(void)
{ {
rgui_handle_t *rgui = (rgui_handle_t*)calloc(1, sizeof(*rgui)); rgui_handle_t *rgui = (rgui_handle_t*)calloc(1, sizeof(*rgui));
rmenu_init_assets(rgui); if (!rgui)
return NULL;
return rgui; return rgui;
} }
static void rmenu_free_assets(void *data)
{
texture_image_free(menu_texture);
menu_texture_inited = false;
}
static void rmenu_free(void *data) static void rmenu_free(void *data)
{ {
rmenu_free_assets(data); if (menu_texture)
{
texture_image_free(menu_texture);
menu_texture_inited = false;
}
} }
int rgui_input_postprocess(void *data, uint64_t old_state) int rgui_input_postprocess(void *data, uint64_t old_state)
@ -449,15 +445,13 @@ int rgui_input_postprocess(void *data, uint64_t old_state)
return ret; return ret;
} }
const menu_ctx_driver_t menu_ctx_rmenu = { const menu_ctx_driver_t menu_ctx_rmenu = {
rmenu_set_texture, rmenu_set_texture,
rmenu_render_messagebox, rmenu_render_messagebox,
rmenu_render, rmenu_render,
rmenu_init, rmenu_init,
rmenu_free, rmenu_free,
rmenu_init_assets, NULL,
rmenu_free_assets,
NULL, NULL,
NULL, NULL,
"rmenu", "rmenu",