sound/y5.ogg\0\
sound/y6.ogg\0\
sound/y7.ogg\0\
-sound/y8.ogg\0"
+sound/y8.ogg\0\
+sound/win.ogg\0"
};
// One two or three layers of rolling noise
UNIFORMS({ "uPv", "uOffset", "uTexMain", "uColour" })
)
+SHADER_DEFINE( shader_sdf,
+
+ // VERTEX
+ "layout (location=0) in vec2 a_co;"
+ "layout (location=1) in vec2 a_uv;"
+ "layout (location=2) in vec4 a_colour;"
+ "uniform mat3 uPv;"
+ ""
+ "out vec2 aTexCoords;"
+ "out vec4 aColour;"
+ ""
+ "void main()"
+ "{"
+ "gl_Position = vec4( uPv * vec3( a_co, 1.0 ), 1.0 );"
+ "aTexCoords = a_uv;"
+ "aColour = a_colour;"
+ "}",
+
+ // FRAGMENT
+ "uniform sampler2D uTexGlyphs;"
+ "out vec4 FragColor;"
+ ""
+ "in vec2 aTexCoords;"
+ "in vec4 aColour;"
+ ""
+ "void main()"
+ "{"
+ "vec4 glyph = texture( uTexGlyphs, aTexCoords );"
+ "FragColor = vec4( aColour.rgb, smoothstep( 0.48, 0.52, glyph.r ) * aColour.a );"
+ //"FragColor = glyph;"
+ "}"
+ ,
+ UNIFORMS({ "uPv", "uTexGlyphs" })
+)
void vg_register(void)
{
SHADER_INIT( shader_background );
SHADER_INIT( shader_wire );
SHADER_INIT( shader_buttons );
+ SHADER_INIT( shader_sdf );
}
/*