(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;
}
@ -123,6 +122,19 @@ static void rmenu_render(void *data)
render_normal = true;
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;
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)
{
rgui_handle_t *rgui = (rgui_handle_t*)calloc(1, sizeof(*rgui));
rmenu_init_assets(rgui);
if (!rgui)
return NULL;
return rgui;
}
static void rmenu_free_assets(void *data)
{
texture_image_free(menu_texture);
menu_texture_inited = false;
}
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)
@ -449,15 +445,13 @@ int rgui_input_postprocess(void *data, uint64_t old_state)
return ret;
}
const menu_ctx_driver_t menu_ctx_rmenu = {
rmenu_set_texture,
rmenu_render_messagebox,
rmenu_render,
rmenu_init,
rmenu_free,
rmenu_init_assets,
rmenu_free_assets,
NULL,
NULL,
NULL,
"rmenu",