Add MENU_DISPLAY_CTL_CLEAR_COLOR

This commit is contained in:
twinaphex 2016-02-09 03:04:23 +01:00
parent 38a341e6b5
commit ad4e633e11
3 changed files with 28 additions and 17 deletions

View File

@ -793,11 +793,6 @@ static void mui_frame(void *data)
if (!mui) if (!mui)
return; return;
msg[0] = '\0';
title[0] = '\0';
title_buf[0] = '\0';
title_msg[0] = '\0';
video_driver_get_size(&width, &height); video_driver_get_size(&width, &height);
menu_display_ctl(MENU_DISPLAY_CTL_SET_VIEWPORT, NULL); menu_display_ctl(MENU_DISPLAY_CTL_SET_VIEWPORT, NULL);
@ -814,7 +809,14 @@ static void mui_frame(void *data)
} }
else else
{ {
menu_display_clear_color(1.0f, 1.0f, 1.0f, 0.75f); menu_display_ctx_clearcolor_t clearcolor;
clearcolor.r = 1.0f;
clearcolor.g = 1.0f;
clearcolor.b = 1.0f;
clearcolor.a = 0.75f;
menu_display_ctl(MENU_DISPLAY_CTL_CLEAR_COLOR, &clearcolor);
if (mui->textures.bg.id) if (mui->textures.bg.id)
{ {

View File

@ -448,6 +448,16 @@ bool menu_display_ctl(enum menu_display_ctl_state state, void *data)
return false; return false;
menu_disp->restore_clear_color(); menu_disp->restore_clear_color();
break; break;
case MENU_DISPLAY_CTL_CLEAR_COLOR:
{
menu_display_ctx_clearcolor_t *clearcolor =
(menu_display_ctx_clearcolor_t*)data;
if (!menu_disp || !menu_disp->clear_color || !clearcolor)
return false;
menu_disp->clear_color(clearcolor->r,
clearcolor->g, clearcolor->b, clearcolor->a);
}
break;
case MENU_DISPLAY_CTL_NONE: case MENU_DISPLAY_CTL_NONE:
default: default:
break; break;
@ -551,15 +561,6 @@ void menu_display_draw_bg(
} }
void menu_display_clear_color(float r, float g, float b, float a)
{
menu_display_ctx_driver_t *menu_disp = menu_display_context_get_ptr();
if (!menu_disp || !menu_disp->clear_color)
return;
menu_disp->clear_color(r, g, b, a);
}
const float *menu_display_get_tex_coords(void) const float *menu_display_get_tex_coords(void)
{ {
menu_display_ctx_driver_t *menu_disp = menu_display_context_get_ptr(); menu_display_ctx_driver_t *menu_disp = menu_display_context_get_ptr();

View File

@ -73,7 +73,8 @@ enum menu_display_ctl_state
MENU_DISPLAY_CTL_FONT_BIND_BLOCK, MENU_DISPLAY_CTL_FONT_BIND_BLOCK,
MENU_DISPLAY_CTL_BLEND_BEGIN, MENU_DISPLAY_CTL_BLEND_BEGIN,
MENU_DISPLAY_CTL_BLEND_END, MENU_DISPLAY_CTL_BLEND_END,
MENU_DISPLAY_CTL_RESTORE_CLEAR_COLOR MENU_DISPLAY_CTL_RESTORE_CLEAR_COLOR,
MENU_DISPLAY_CTL_CLEAR_COLOR
}; };
enum menu_display_prim_type enum menu_display_prim_type
@ -135,6 +136,14 @@ typedef struct menu_display_ctx_font
float size; float size;
} menu_display_ctx_font_t; } menu_display_ctx_font_t;
typedef struct menu_display_ctx_clearcolor
{
float r;
float g;
float b;
float a;
} menu_display_ctx_clearcolor_t;
bool menu_display_ctl(enum menu_display_ctl_state state, void *data); bool menu_display_ctl(enum menu_display_ctl_state state, void *data);
void menu_display_timedate(char *s, size_t len, unsigned time_mode); void menu_display_timedate(char *s, size_t len, unsigned time_mode);
@ -170,7 +179,6 @@ void menu_display_matrix_4x4_rotate_z(
float scale_x, float scale_y, float scale_z, float scale_x, float scale_y, float scale_z,
bool scale_enable); bool scale_enable);
void menu_display_clear_color(float r, float g, float b, float a);
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);