texturefont.glsl (758B)
1 #version 140 2 #extension GL_ARB_explicit_attrib_location : enable 3 4 uniform samplerBuffer sampler0; // character data 5 uniform sampler2D sampler1; // glyph texture 6 7 -- vertex 8 9 layout(location = 0) in ivec4 aData; // X, Y, ID, RGBA 10 11 out vec2 vTexCoord; 12 out vec4 vColor; 13 14 void main() { 15 vec4 cdata = texelFetch(sampler0, aData.z + gl_VertexID); 16 vec4 pos = vec4(aData.x + cdata.x, aData.y + cdata.y, 0.0, 1.0); 17 vColor = vec4( 18 float(aData.w & 0xFF) / 255.0, 19 float((aData.w >> 8) & 0xFF) / 255.0, 20 float((aData.w >> 16) & 0xFF) / 255.0, 21 1.0 22 ); 23 vTexCoord = vec2(cdata.zw); 24 gl_Position = uOrtho * pos; 25 } 26 27 -- fragment 28 29 in vec2 vTexCoord; 30 in vec4 vColor; 31 32 void main() { 33 vec4 c = texture2D(sampler1, vTexCoord); 34 gl_FragColor = vec4(vColor.rgb, c.r); 35 }