add "text" shader
This commit is contained in:
parent
e9973a53c9
commit
1e140f9229
15
runtime/shaders/text.f.glsl
Normal file
15
runtime/shaders/text.f.glsl
Normal 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;
|
||||||
|
}
|
27
runtime/shaders/text.v.glsl
Normal file
27
runtime/shaders/text.v.glsl
Normal 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;
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user