#version 300 es
precision highp float;
in vec2 a_pos;
in vec4 a_color1;
in vec4 a_color2;
out vec4 v_color1;
out vec4 v_color2;
out vec2 v_uv;
out vec2 v_pos;
uniform mat3x2 u_transform;
uniform mat3x2 u_pattern;
uniform vec4 u_colorModulation;
vec3 srgbToLinear(vec3 c) {
return c;
}
vec4 srgbToLinear(vec4 c) {
return vec4(srgbToLinear(c.rgb), c.a);
}
void main() {
vec2 pos = u_transform * vec3(a_pos, 1.0);
vec2 uv = u_pattern * vec3(a_pos, 1.0);
gl_Position = vec4(pos, 0.0, 1.0);
v_uv = uv;
v_pos = pos;
v_color1 = srgbToLinear(a_color1) * u_colorModulation;
v_color2 = srgbToLinear(a_color2) * u_colorModulation;
}