/ src / gl / data / sprite.vert
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  }