sprite.vert
1 uniform mat4 ortho; 2 uniform mat4 transform; 3 4 in vec3 position; 5 in vec2 uv; 6 in vec4 color; 7 in float opacity; 8 9 out vec2 f_uv; 10 out vec4 f_color; 11 out float f_opacity; 12 13 // Convert an sRGB color to linear space. 14 vec3 linearize(vec3 srgb) { 15 bvec3 cutoff = lessThan(srgb, vec3(0.04045)); 16 vec3 higher = pow((srgb + vec3(0.055)) / vec3(1.055), vec3(2.4)); 17 vec3 lower = srgb / vec3(12.92); 18 19 return mix(higher, lower, cutoff); 20 } 21 22 void main() { 23 f_color = vec4(linearize(color.rgb), color.a); 24 f_uv = uv; 25 f_opacity = opacity; 26 27 gl_Position = ortho * transform * vec4(position, 1.0); 28 }