mirror of
https://github.com/libretro/RetroArch
synced 2025-03-23 19:21:03 +00:00
First stab at getting snow shader to work
This commit is contained in:
parent
a2c69ec254
commit
20c1ef83d6
@ -964,6 +964,17 @@ static void *gl_glsl_init(void *data, const char *path)
|
||||
&shader_prog_info);
|
||||
gl_glsl_find_uniforms(glsl, 0, glsl->prg[VIDEO_SHADER_MENU_SEC].id,
|
||||
&glsl->uniforms[VIDEO_SHADER_MENU_SEC]);
|
||||
|
||||
shader_prog_info.vertex = glsl_core ? stock_vertex_xmb_snow : stock_vertex_xmb_snow_legacy;
|
||||
shader_prog_info.fragment = stock_fragment_xmb_snow;
|
||||
|
||||
gl_glsl_compile_program(
|
||||
glsl,
|
||||
VIDEO_SHADER_MENU_3,
|
||||
&glsl->prg[VIDEO_SHADER_MENU_3],
|
||||
&shader_prog_info);
|
||||
gl_glsl_find_uniforms(glsl, 0, glsl->prg[VIDEO_SHADER_MENU_3].id,
|
||||
&glsl->uniforms[VIDEO_SHADER_MENU_3]);
|
||||
#endif
|
||||
|
||||
gl_glsl_reset_attrib(glsl);
|
||||
|
@ -37,6 +37,7 @@
|
||||
#define VIDEO_SHADER_STOCK_BLEND (GFX_MAX_SHADERS - 1)
|
||||
#define VIDEO_SHADER_MENU (GFX_MAX_SHADERS - 2)
|
||||
#define VIDEO_SHADER_MENU_SEC (GFX_MAX_SHADERS - 3)
|
||||
#define VIDEO_SHADER_MENU_3 (GFX_MAX_SHADERS - 4)
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -2278,9 +2278,18 @@ static void xmb_draw_bg(
|
||||
menu_display_draw_gradient(&draw);
|
||||
|
||||
draw.pipeline.id = VIDEO_SHADER_MENU_SEC;
|
||||
if (settings->menu.xmb.shader_pipeline == XMB_SHADER_PIPELINE_RIBBON ||
|
||||
settings->menu.xmb.shader_pipeline == XMB_SHADER_PIPELINE_SNOW)
|
||||
draw.pipeline.id = VIDEO_SHADER_MENU;
|
||||
|
||||
switch (settings->menu.xmb.shader_pipeline)
|
||||
{
|
||||
case XMB_SHADER_PIPELINE_RIBBON:
|
||||
draw.pipeline.id = VIDEO_SHADER_MENU;
|
||||
break;
|
||||
case XMB_SHADER_PIPELINE_SNOW:
|
||||
draw.pipeline.id = VIDEO_SHADER_MENU_3;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
menu_display_draw_pipeline(&draw);
|
||||
}
|
||||
@ -2807,41 +2816,28 @@ static void xmb_init_ribbon(xmb_handle_t * xmb)
|
||||
settings_t *settings = config_get_ptr();
|
||||
video_coord_array_t *ca = menu_display_get_coords_array();
|
||||
|
||||
vertices_total = XMB_RIBBON_VERTICES;
|
||||
|
||||
if (settings->menu.xmb.shader_pipeline == XMB_SHADER_PIPELINE_SNOW)
|
||||
{
|
||||
vertices_total = 4;
|
||||
ribbon_verts = (float*)calloc(2 * vertices_total, sizeof(float));
|
||||
|
||||
ribbon_verts[0] = -1.0f;
|
||||
ribbon_verts[1] = -1.0f;
|
||||
ribbon_verts[2] = 1.0f;
|
||||
ribbon_verts[3] = -1.0f;
|
||||
ribbon_verts[4] = -1.0f;
|
||||
ribbon_verts[5] = 1.0f;
|
||||
ribbon_verts[6] = 1.0f;
|
||||
ribbon_verts[7] = 1.0f;
|
||||
|
||||
}
|
||||
dummy = (float*)calloc(4 * 4, sizeof(float));
|
||||
else
|
||||
{
|
||||
vertices_total = XMB_RIBBON_VERTICES;
|
||||
ribbon_verts = (float*)calloc(2 * vertices_total, sizeof(float));
|
||||
dummy = (float*)calloc(4 * vertices_total, sizeof(float));
|
||||
|
||||
/* Set up vertices */
|
||||
for (r = 0; r < XMB_RIBBON_ROWS - 1; r++)
|
||||
ribbon_verts = (float*)calloc(2 * vertices_total, sizeof(float));
|
||||
|
||||
|
||||
/* Set up vertices */
|
||||
for (r = 0; r < XMB_RIBBON_ROWS - 1; r++)
|
||||
{
|
||||
for (c = 0; c < XMB_RIBBON_COLS; c++)
|
||||
{
|
||||
for (c = 0; c < XMB_RIBBON_COLS; c++)
|
||||
{
|
||||
col = r % 2 ? XMB_RIBBON_COLS - c - 1 : c;
|
||||
xmb_ribbon_set_vertex(ribbon_verts, i, r, col);
|
||||
xmb_ribbon_set_vertex(ribbon_verts, i + 2, r + 1, col);
|
||||
i += 4;
|
||||
}
|
||||
col = r % 2 ? XMB_RIBBON_COLS - c - 1 : c;
|
||||
xmb_ribbon_set_vertex(ribbon_verts, i, r, col);
|
||||
xmb_ribbon_set_vertex(ribbon_verts, i + 2, r + 1, col);
|
||||
i += 4;
|
||||
}
|
||||
}
|
||||
|
||||
dummy = (float*)calloc(4 * vertices_total, sizeof(float));
|
||||
|
||||
coords.color = dummy;
|
||||
coords.vertex = ribbon_verts;
|
||||
coords.tex_coord = dummy;
|
||||
|
@ -204,6 +204,7 @@ static void menu_display_d3d_draw_pipeline(void *data)
|
||||
{
|
||||
case VIDEO_SHADER_MENU:
|
||||
case VIDEO_SHADER_MENU_SEC:
|
||||
case VIDEO_SHADER_MENU_3:
|
||||
shader_info.data = NULL;
|
||||
shader_info.idx = draw->pipeline.id;
|
||||
shader_info.set_active = true;
|
||||
|
@ -170,6 +170,7 @@ static void menu_display_gl_draw_pipeline(void *data)
|
||||
{
|
||||
case VIDEO_SHADER_MENU:
|
||||
case VIDEO_SHADER_MENU_SEC:
|
||||
case VIDEO_SHADER_MENU_3:
|
||||
{
|
||||
static float t = 0;
|
||||
video_shader_ctx_info_t shader_info;
|
||||
|
Loading…
x
Reference in New Issue
Block a user