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)
return;
msg[0] = '\0';
title[0] = '\0';
title_buf[0] = '\0';
title_msg[0] = '\0';
video_driver_get_size(&width, &height);
menu_display_ctl(MENU_DISPLAY_CTL_SET_VIEWPORT, NULL);
@ -814,7 +809,14 @@ static void mui_frame(void *data)
}
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)
{

View File

@ -448,6 +448,16 @@ bool menu_display_ctl(enum menu_display_ctl_state state, void *data)
return false;
menu_disp->restore_clear_color();
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:
default:
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)
{
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_BLEND_BEGIN,
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
@ -135,6 +136,14 @@ typedef struct menu_display_ctx_font
float size;
} 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);
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,
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 *user_data, const char *err);