add "text" shader

This commit is contained in:
Josh Holtrop 2016-07-05 19:06:06 -04:00
parent e9973a53c9
commit 1e140f9229
2 changed files with 42 additions and 0 deletions

View File

@ -0,0 +1,15 @@
#version 410
/* Texture coordinate: s, t */
in vec2 texture_coord_v;
/* Texture unit */
uniform sampler2D texture;
uniform vec4 color;
out vec4 frag_color;
void main(void)
{
frag_color = vec4(1, 1, 1, texture2D(texture, texture_coord_v).a) * color;
}

View File

@ -0,0 +1,27 @@
#version 410
/* Viewport width and height */
uniform ivec2 viewport_size;
/* Position of lower left corner of glyph */
uniform ivec2 position;
/* Vertex coordinates: x, y, s, t */
layout(location = 0) in vec4 coords;
/* Output texture coordinate: s, t */
out vec2 texture_coord_v;
/**
* Map coordinates such that:
* (0 .. viewport_size.[xy]) => (-1.0 .. 1.0)
*/
vec2 map_to_screen(vec2 position)
{
return 2.0 * position / viewport_size - 1.0;
}
void main(void)
{
gl_Position = vec4(map_to_screen(vec2(position) + coords.xy), 0, 1);
texture_coord_v = coords.zw;
}