static bool zarch_load_image(void *data, menu_image_type_t type) { zui_t *zui = NULL; menu_handle_t *menu = menu_driver_get_ptr(); if (!menu) return false; zui = (zui_t*)menu->userdata; if (!zui || !data) return false; switch (type) { case MENU_IMAGE_NONE: break; case MENU_IMAGE_WALLPAPER: zarch_context_bg_destroy(zui); zui->textures.bg.id = menu_display_texture_load(data, TEXTURE_FILTER_MIPMAP_LINEAR); break; case MENU_IMAGE_BOXART: break; } return true; }
static void mui_context_reset_textures(mui_handle_t *mui, const char *iconpath) { unsigned i; for (i = 0; i < MUI_TEXTURE_LAST; i++) { struct texture_image ti = {0}; char path[PATH_MAX_LENGTH] = {0}; switch(i) { case MUI_TEXTURE_POINTER: fill_pathname_join(path, iconpath, "pointer.png", sizeof(path)); break; case MUI_TEXTURE_BACK: fill_pathname_join(path, iconpath, "back.png", sizeof(path)); break; case MUI_TEXTURE_SWITCH_ON: fill_pathname_join(path, iconpath, "on.png", sizeof(path)); break; case MUI_TEXTURE_SWITCH_OFF: fill_pathname_join(path, iconpath, "off.png", sizeof(path)); break; case MUI_TEXTURE_TAB_MAIN_ACTIVE: fill_pathname_join(path, iconpath, "main_tab_active.png", sizeof(path)); break; case MUI_TEXTURE_TAB_PLAYLISTS_ACTIVE: fill_pathname_join(path, iconpath, "playlists_tab_active.png", sizeof(path)); break; case MUI_TEXTURE_TAB_SETTINGS_ACTIVE: fill_pathname_join(path, iconpath, "settings_tab_active.png", sizeof(path)); break; case MUI_TEXTURE_TAB_MAIN_PASSIVE: fill_pathname_join(path, iconpath, "main_tab_passive.png", sizeof(path)); break; case MUI_TEXTURE_TAB_PLAYLISTS_PASSIVE: fill_pathname_join(path, iconpath, "playlists_tab_passive.png", sizeof(path)); break; case MUI_TEXTURE_TAB_SETTINGS_PASSIVE: fill_pathname_join(path, iconpath, "settings_tab_passive.png", sizeof(path)); break; } if (string_is_empty(path) || !path_file_exists(path)) continue; video_texture_image_load(&ti, path); mui->textures.list[i].id = menu_display_texture_load(&ti, TEXTURE_FILTER_MIPMAP_LINEAR); video_texture_image_free(&ti); } }
static void mui_allocate_white_texture(mui_handle_t *mui) { struct texture_image ti; static const uint8_t white_data[] = { 0xff, 0xff, 0xff, 0xff }; ti.width = 1; ti.height = 1; ti.pixels = (uint32_t*)&white_data; mui->textures.white = menu_display_texture_load(&ti, TEXTURE_FILTER_NEAREST); }
static void zarch_allocate_white_texture(zui_t *zui) { struct texture_image ti; static const uint32_t data = UINT32_MAX; ti.width = 1; ti.height = 1; ti.pixels = (uint32_t*)&data; zui->textures.white = menu_display_texture_load(&ti, TEXTURE_FILTER_NEAREST); }
static bool mui_load_image(void *userdata, void *data, menu_image_type_t type) { mui_handle_t *mui = (mui_handle_t*)userdata; switch (type) { case MENU_IMAGE_NONE: break; case MENU_IMAGE_WALLPAPER: mui_context_bg_destroy(mui); mui->textures.bg.id = menu_display_texture_load(data, TEXTURE_FILTER_MIPMAP_LINEAR); mui_allocate_white_texture(mui); break; case MENU_IMAGE_BOXART: break; } return true; }