mirror of
https://github.com/libretro/RetroArch
synced 2025-03-03 04:14:00 +00:00
commit
d1d3bd6e4b
@ -1833,44 +1833,10 @@ static void xmb_frame_horizontal_list(xmb_handle_t *xmb,
|
||||
#ifdef XMB_RIBBON_ENABLE
|
||||
static void xmb_draw_ribbon(xmb_handle_t *xmb, menu_display_ctx_draw_t *draw)
|
||||
{
|
||||
struct uniform_info uniform_param = {0};
|
||||
static float t = 0;
|
||||
video_shader_ctx_info_t shader_info;
|
||||
gfx_coord_array_t *ca = NULL;
|
||||
|
||||
menu_display_ctl(MENU_DISPLAY_CTL_COORDS_ARRAY_GET, &ca);
|
||||
|
||||
if (menu_display_ctl(MENU_DISPLAY_CTL_LIBRETRO_RUNNING, NULL))
|
||||
draw->handle_alpha = 0.75;
|
||||
else
|
||||
draw->handle_alpha = 0.90;
|
||||
|
||||
menu_display_ctl(MENU_DISPLAY_CTL_DRAW_GRADIENT, draw);
|
||||
|
||||
draw->x = 0;
|
||||
draw->y = 0;
|
||||
draw->coords = (struct gfx_coords*)(&ca->coords);
|
||||
draw->matrix_data = NULL;
|
||||
|
||||
shader_info.data = NULL;
|
||||
shader_info.idx = VIDEO_SHADER_MENU;
|
||||
|
||||
video_shader_driver_ctl(SHADER_CTL_USE, &shader_info);
|
||||
|
||||
t += 0.01;
|
||||
|
||||
uniform_param.enabled = true;
|
||||
uniform_param.lookup.enable = true;
|
||||
uniform_param.lookup.add_prefix = true;
|
||||
uniform_param.lookup.idx = VIDEO_SHADER_MENU;
|
||||
uniform_param.lookup.type = SHADER_PROGRAM_VERTEX;
|
||||
uniform_param.type = UNIFORM_1F;
|
||||
uniform_param.lookup.ident = "time";
|
||||
uniform_param.result.f.v0 = t;
|
||||
|
||||
video_shader_driver_ctl(SHADER_CTL_SET_PARAMETER, &uniform_param);
|
||||
|
||||
menu_display_ctl(MENU_DISPLAY_CTL_DRAW, draw);
|
||||
menu_display_ctl(MENU_DISPLAY_CTL_BLEND_BEGIN, NULL);
|
||||
menu_display_ctl(MENU_DISPLAY_CTL_SET_VIEWPORT, NULL);
|
||||
menu_display_ctl(MENU_DISPLAY_CTL_DRAW_RIBBON, draw);
|
||||
menu_display_ctl(MENU_DISPLAY_CTL_BLEND_END, NULL);
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -1878,15 +1844,9 @@ static void xmb_draw_bg(xmb_handle_t *xmb, menu_display_ctx_draw_t *draw)
|
||||
{
|
||||
menu_display_ctl(MENU_DISPLAY_CTL_BLEND_BEGIN, NULL);
|
||||
menu_display_ctl(MENU_DISPLAY_CTL_SET_VIEWPORT, NULL);
|
||||
|
||||
#ifdef XMB_RIBBON_ENABLE
|
||||
xmb_draw_ribbon(xmb, draw);
|
||||
#else
|
||||
draw->x = 0;
|
||||
draw->y = 0;
|
||||
menu_display_ctl(MENU_DISPLAY_CTL_DRAW_BG, draw);
|
||||
#endif
|
||||
|
||||
menu_display_ctl(MENU_DISPLAY_CTL_BLEND_END, NULL);
|
||||
}
|
||||
|
||||
@ -1962,7 +1922,11 @@ static void xmb_frame(void *data)
|
||||
&& !draw.force_transparency && draw.texture)
|
||||
draw.color = &coord_color2[0];
|
||||
|
||||
#ifdef XMB_RIBBON_ENABLE
|
||||
xmb_draw_ribbon(xmb, &draw);
|
||||
#else
|
||||
xmb_draw_bg(xmb, &draw);
|
||||
#endif
|
||||
|
||||
xmb_draw_text(xmb,
|
||||
xmb->title_name, xmb->margins.title.left,
|
||||
|
@ -540,6 +540,49 @@ bool menu_display_ctl(enum menu_display_ctl_state state, void *data)
|
||||
menu_display_ctl(MENU_DISPLAY_CTL_DRAW_BG, draw);
|
||||
}
|
||||
break;
|
||||
case MENU_DISPLAY_CTL_DRAW_RIBBON:
|
||||
{
|
||||
menu_display_ctx_draw_t *draw = (menu_display_ctx_draw_t*)data;
|
||||
struct uniform_info uniform_param = {0};
|
||||
static float t = 0;
|
||||
video_shader_ctx_info_t shader_info;
|
||||
gfx_coord_array_t *ca = NULL;
|
||||
|
||||
menu_display_ctl(MENU_DISPLAY_CTL_COORDS_ARRAY_GET, &ca);
|
||||
|
||||
if (menu_display_ctl(MENU_DISPLAY_CTL_LIBRETRO_RUNNING, NULL))
|
||||
draw->handle_alpha = 0.75;
|
||||
else
|
||||
draw->handle_alpha = 0.90;
|
||||
|
||||
menu_display_ctl(MENU_DISPLAY_CTL_DRAW_GRADIENT, draw);
|
||||
|
||||
draw->x = 0;
|
||||
draw->y = 0;
|
||||
draw->coords = (struct gfx_coords*)(&ca->coords);
|
||||
draw->matrix_data = NULL;
|
||||
|
||||
shader_info.data = NULL;
|
||||
shader_info.idx = VIDEO_SHADER_MENU;
|
||||
|
||||
video_shader_driver_ctl(SHADER_CTL_USE, &shader_info);
|
||||
|
||||
t += 0.01;
|
||||
|
||||
uniform_param.enabled = true;
|
||||
uniform_param.lookup.enable = true;
|
||||
uniform_param.lookup.add_prefix = true;
|
||||
uniform_param.lookup.idx = VIDEO_SHADER_MENU;
|
||||
uniform_param.lookup.type = SHADER_PROGRAM_VERTEX;
|
||||
uniform_param.type = UNIFORM_1F;
|
||||
uniform_param.lookup.ident = "time";
|
||||
uniform_param.result.f.v0 = t;
|
||||
|
||||
video_shader_driver_ctl(SHADER_CTL_SET_PARAMETER, &uniform_param);
|
||||
|
||||
menu_display_ctl(MENU_DISPLAY_CTL_DRAW, draw);
|
||||
}
|
||||
break;
|
||||
case MENU_DISPLAY_CTL_ROTATE_Z:
|
||||
{
|
||||
math_matrix_4x4 matrix_rotated, matrix_scaled;
|
||||
|
@ -76,6 +76,7 @@ enum menu_display_ctl_state
|
||||
MENU_DISPLAY_CTL_DRAW,
|
||||
MENU_DISPLAY_CTL_DRAW_BG,
|
||||
MENU_DISPLAY_CTL_DRAW_GRADIENT,
|
||||
MENU_DISPLAY_CTL_DRAW_RIBBON,
|
||||
MENU_DISPLAY_CTL_ROTATE_Z,
|
||||
MENU_DISPLAY_CTL_TEX_COORDS_GET,
|
||||
MENU_DISPLAY_CTL_TIMEDATE,
|
||||
|
Loading…
x
Reference in New Issue
Block a user