mirror of
https://github.com/libretro/RetroArch
synced 2025-04-11 00:44:20 +00:00
Merge pull request #2890 from lakkatv/master
(XMB) Ribbon lighting + readability tweaks
This commit is contained in:
commit
b6a51f006a
@ -3,7 +3,15 @@ static const char *stock_fragment_xmb =
|
|||||||
"precision mediump float;\n"
|
"precision mediump float;\n"
|
||||||
"#endif\n"
|
"#endif\n"
|
||||||
"uniform float time;\n"
|
"uniform float time;\n"
|
||||||
|
"varying vec3 fragVertexEc;\n"
|
||||||
|
"vec3 up = vec3(0, 0, 1);\n"
|
||||||
"void main()\n"
|
"void main()\n"
|
||||||
"{\n"
|
"{\n"
|
||||||
" gl_FragColor = vec4(1.0, 1.0, 1.0, 0.05);\n"
|
" vec3 X = dFdx(fragVertexEc);\n"
|
||||||
"}\n";
|
" vec3 Y = dFdy(fragVertexEc);\n"
|
||||||
|
" vec3 normal=normalize(cross(X,Y));\n"
|
||||||
|
" float c = (1.0 - dot(normal, up));\n"
|
||||||
|
" c = (1.0 - cos(c*c))/3.0;\n"
|
||||||
|
//" c = pow(c, 4 );\n"
|
||||||
|
" gl_FragColor = vec4(1.0, 1.0, 1.0, c);\n"
|
||||||
|
"}\n";
|
@ -8,6 +8,7 @@ static const char *stock_vertex_xmb =
|
|||||||
"#endif\n"
|
"#endif\n"
|
||||||
"COMPAT_ATTRIBUTE vec3 VertexCoord;\n"
|
"COMPAT_ATTRIBUTE vec3 VertexCoord;\n"
|
||||||
"uniform float time;\n"
|
"uniform float time;\n"
|
||||||
|
"COMPAT_VARYING vec3 fragVertexEc;\n"
|
||||||
"float iqhash( float n )\n"
|
"float iqhash( float n )\n"
|
||||||
"{\n"
|
"{\n"
|
||||||
" return fract(sin(n)*43758.5453);\n"
|
" return fract(sin(n)*43758.5453);\n"
|
||||||
@ -23,12 +24,27 @@ static const char *stock_vertex_xmb =
|
|||||||
" mix(mix( iqhash(n+113.0), iqhash(n+114.0),f.x),\n"
|
" mix(mix( iqhash(n+113.0), iqhash(n+114.0),f.x),\n"
|
||||||
" mix( iqhash(n+170.0), iqhash(n+171.0),f.x),f.y),f.z);\n"
|
" mix( iqhash(n+170.0), iqhash(n+171.0),f.x),f.y),f.z);\n"
|
||||||
"}\n"
|
"}\n"
|
||||||
|
"float noise2( vec3 x )\n"
|
||||||
|
"{\n"
|
||||||
|
" return cos((x.z*1.0)*2.0);"
|
||||||
|
"}\n"
|
||||||
"void main()\n"
|
"void main()\n"
|
||||||
"{\n"
|
"{\n"
|
||||||
" vec3 v = vec3(VertexCoord.x, 0.0, VertexCoord.y);\n"
|
" vec3 v = vec3(VertexCoord.x, 0.0, VertexCoord.y);\n"
|
||||||
" vec3 v2 = v;\n"
|
" vec3 v2 = v;\n"
|
||||||
" v2.x = v2.x + time/2.0;\n"
|
" vec3 v3 = v;\n"
|
||||||
" v2.z = v.z * 3.0;\n"
|
|
||||||
" v.y = -cos((v.x+v.z/3.0+time)*2.0)/10.0 - noise(v2.xyz)/4.0;\n"
|
" v.y = noise2(v2)/6.0;\n"
|
||||||
|
|
||||||
|
" v3.x = v3.x + time/5.0;\n"
|
||||||
|
" v3.x = v3.x / 2.0;\n"
|
||||||
|
|
||||||
|
" v3.z = v3.z + time/10.0;\n"
|
||||||
|
" v3.y = v3.y + time/100.0;\n"
|
||||||
|
|
||||||
|
" v.z = v.z + noise(v3*7.0)/15.0;\n"
|
||||||
|
" v.y = v.y + noise(v3*7.0)/15.0 + cos(v.x*2.0-time/5.0)/5.0 - 0.3;\n"
|
||||||
|
|
||||||
" gl_Position = vec4(v, 1.0);\n"
|
" gl_Position = vec4(v, 1.0);\n"
|
||||||
|
" fragVertexEc = gl_Position.xyz;\n"
|
||||||
"}\n";
|
"}\n";
|
||||||
|
@ -48,8 +48,8 @@
|
|||||||
|
|
||||||
#include "../../tasks/tasks_internal.h"
|
#include "../../tasks/tasks_internal.h"
|
||||||
|
|
||||||
#define XMB_RIBBON_ROWS 16
|
#define XMB_RIBBON_ROWS 64
|
||||||
#define XMB_RIBBON_COLS 32
|
#define XMB_RIBBON_COLS 64
|
||||||
#define XMB_RIBBON_VERTICES 2*XMB_RIBBON_COLS*XMB_RIBBON_ROWS-2*XMB_RIBBON_COLS
|
#define XMB_RIBBON_VERTICES 2*XMB_RIBBON_COLS*XMB_RIBBON_ROWS-2*XMB_RIBBON_COLS
|
||||||
|
|
||||||
#ifndef XMB_DELAY
|
#ifndef XMB_DELAY
|
||||||
@ -67,9 +67,9 @@
|
|||||||
#define XMB_ITEM_PASSIVE_ZOOM 0.5
|
#define XMB_ITEM_PASSIVE_ZOOM 0.5
|
||||||
|
|
||||||
#define XMB_CATEGORIES_ACTIVE_ALPHA 1.0
|
#define XMB_CATEGORIES_ACTIVE_ALPHA 1.0
|
||||||
#define XMB_CATEGORIES_PASSIVE_ALPHA 0.5
|
#define XMB_CATEGORIES_PASSIVE_ALPHA 0.85
|
||||||
#define XMB_ITEM_ACTIVE_ALPHA 1.0
|
#define XMB_ITEM_ACTIVE_ALPHA 1.0
|
||||||
#define XMB_ITEM_PASSIVE_ALPHA 0.5
|
#define XMB_ITEM_PASSIVE_ALPHA 0.85
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
@ -495,7 +495,7 @@ static void xmb_draw_icon(
|
|||||||
for (i = 0; i < 16; i++)
|
for (i = 0; i < 16; i++)
|
||||||
shadow[i] = 0;
|
shadow[i] = 0;
|
||||||
|
|
||||||
menu_display_set_alpha(shadow, color[3] / 4);
|
menu_display_set_alpha(shadow, color[3] * 0.35f);
|
||||||
|
|
||||||
coords.color = shadow;
|
coords.color = shadow;
|
||||||
draw.x = x + 2;
|
draw.x = x + 2;
|
||||||
@ -585,7 +585,7 @@ static void xmb_draw_text(xmb_handle_t *xmb,
|
|||||||
{
|
{
|
||||||
params.drop_x = 2.0f;
|
params.drop_x = 2.0f;
|
||||||
params.drop_y = -2.0f;
|
params.drop_y = -2.0f;
|
||||||
params.drop_alpha = 0.25f;
|
params.drop_alpha = 0.35f;
|
||||||
}
|
}
|
||||||
|
|
||||||
menu_display_draw_text(str, width, height, ¶ms);
|
menu_display_draw_text(str, width, height, ¶ms);
|
||||||
@ -1043,7 +1043,7 @@ static void xmb_list_switch_new(xmb_handle_t *xmb,
|
|||||||
{
|
{
|
||||||
xmb_node_t *node = (xmb_node_t*)
|
xmb_node_t *node = (xmb_node_t*)
|
||||||
menu_entries_get_userdata_at_offset(list, i);
|
menu_entries_get_userdata_at_offset(list, i);
|
||||||
float ia = 0.5;
|
float ia = XMB_ITEM_PASSIVE_ALPHA;
|
||||||
|
|
||||||
if (!node)
|
if (!node)
|
||||||
continue;
|
continue;
|
||||||
@ -2338,8 +2338,8 @@ static void xmb_layout(xmb_handle_t *xmb)
|
|||||||
|
|
||||||
static void xmb_ribbon_set_vertex(float *ribbon_verts, unsigned idx, unsigned row, unsigned col)
|
static void xmb_ribbon_set_vertex(float *ribbon_verts, unsigned idx, unsigned row, unsigned col)
|
||||||
{
|
{
|
||||||
ribbon_verts[idx++] = ((float)col) / 15.5f - 1.0f;
|
ribbon_verts[idx++] = ((float)col) / (XMB_RIBBON_COLS-1) * 2.0f - 1.0f;
|
||||||
ribbon_verts[idx++] = ((float)row) / 7.5f - 1.0f;
|
ribbon_verts[idx++] = ((float)row) / XMB_RIBBON_ROWS * 2.0f - 1.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void xmb_init_ribbon(xmb_handle_t * xmb)
|
static void xmb_init_ribbon(xmb_handle_t * xmb)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user