(Menu) Move the white texture stuff to menu_display

This commit is contained in:
Jean-André Santoni 2016-04-12 04:30:25 +07:00
parent 3e4d7c404a
commit ea6bd2797c
3 changed files with 22 additions and 20 deletions

View File

@ -89,7 +89,6 @@ typedef struct mui_handle
menu_texture_item bg; menu_texture_item bg;
menu_texture_item list[MUI_TEXTURE_LAST]; menu_texture_item list[MUI_TEXTURE_LAST];
uintptr_t white;
} textures; } textures;
struct struct
@ -295,7 +294,7 @@ static void mui_render_quad(mui_handle_t *mui,
draw.height = h; draw.height = h;
draw.coords = &coords; draw.coords = &coords;
draw.matrix_data = NULL; draw.matrix_data = NULL;
draw.texture = mui->textures.white; draw.texture = menu_display_white_texture;
draw.prim_type = MENU_DISPLAY_PRIM_TRIANGLESTRIP; draw.prim_type = MENU_DISPLAY_PRIM_TRIANGLESTRIP;
menu_display_ctl(MENU_DISPLAY_CTL_DRAW, &draw); menu_display_ctl(MENU_DISPLAY_CTL_DRAW, &draw);
@ -831,7 +830,7 @@ static void mui_frame(void *data)
draw.width = width; draw.width = width;
draw.height = height; draw.height = height;
draw.texture = mui->textures.white; draw.texture = menu_display_white_texture;
draw.handle_alpha = 0.75f; draw.handle_alpha = 0.75f;
draw.force_transparency = false; draw.force_transparency = false;
draw.color = &white_transp_bg[0]; draw.color = &white_transp_bg[0];
@ -1012,19 +1011,6 @@ static void mui_frame(void *data)
menu_display_ctl(MENU_DISPLAY_CTL_UNSET_VIEWPORT, NULL); menu_display_ctl(MENU_DISPLAY_CTL_UNSET_VIEWPORT, NULL);
} }
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;
video_driver_texture_load(&ti,
TEXTURE_FILTER_NEAREST, &mui->textures.white);
}
static void mui_font(void) static void mui_font(void)
{ {
int font_size; int font_size;
@ -1115,7 +1101,7 @@ static void *mui_init(void **userdata)
*userdata = mui; *userdata = mui;
mui_layout(mui); mui_layout(mui);
mui_allocate_white_texture(mui); menu_display_allocate_white_texture();
return menu; return menu;
@ -1143,7 +1129,7 @@ static void mui_context_bg_destroy(mui_handle_t *mui)
return; return;
video_driver_texture_unload(&mui->textures.bg); video_driver_texture_unload(&mui->textures.bg);
video_driver_texture_unload(&mui->textures.white); video_driver_texture_unload(&menu_display_white_texture);
} }
static void mui_context_destroy(void *data) static void mui_context_destroy(void *data)
@ -1174,7 +1160,7 @@ static bool mui_load_image(void *userdata, void *data, enum menu_image_type type
mui_context_bg_destroy(mui); mui_context_bg_destroy(mui);
video_driver_texture_load(data, video_driver_texture_load(data,
TEXTURE_FILTER_MIPMAP_LINEAR, &mui->textures.bg); TEXTURE_FILTER_MIPMAP_LINEAR, &mui->textures.bg);
mui_allocate_white_texture(mui); menu_display_allocate_white_texture();
break; break;
case MENU_IMAGE_THUMBNAIL: case MENU_IMAGE_THUMBNAIL:
break; break;
@ -1275,7 +1261,7 @@ static void mui_context_reset(void *data)
mui_layout(mui); mui_layout(mui);
mui_context_bg_destroy(mui); mui_context_bg_destroy(mui);
mui_allocate_white_texture(mui); menu_display_allocate_white_texture();
mui_context_reset_textures(mui, iconpath); mui_context_reset_textures(mui, iconpath);
rarch_task_push_image_load(settings->menu.wallpaper, "cb_menu_wallpaper", rarch_task_push_image_load(settings->menu.wallpaper, "cb_menu_wallpaper",

View File

@ -528,3 +528,16 @@ void menu_display_handle_wallpaper_upload(void *task_data,
video_texture_image_free(img); video_texture_image_free(img);
free(img); free(img);
} }
void menu_display_allocate_white_texture()
{
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;
video_driver_texture_load(&ti,
TEXTURE_FILTER_NEAREST, &menu_display_white_texture);
}

View File

@ -174,6 +174,9 @@ bool menu_display_ctl(enum menu_display_ctl_state state, void *data);
void menu_display_handle_wallpaper_upload(void *task_data, void menu_display_handle_wallpaper_upload(void *task_data,
void *user_data, const char *err); void *user_data, const char *err);
uintptr_t menu_display_white_texture;
void menu_display_allocate_white_texture();
extern menu_display_ctx_driver_t menu_display_ctx_gl; extern menu_display_ctx_driver_t menu_display_ctx_gl;
extern menu_display_ctx_driver_t menu_display_ctx_vulkan; extern menu_display_ctx_driver_t menu_display_ctx_vulkan;
extern menu_display_ctx_driver_t menu_display_ctx_d3d; extern menu_display_ctx_driver_t menu_display_ctx_d3d;