graphics

experiments with opengl3.2/ogles3.3 on linux and win7
git clone http://frotz.net/git/graphics.git
Log | Files | Refs

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 }