#version 300 es
in vec2 a_position;

// UV coordinate
in vec2 a_uv;
out vec2 v_uv;

in vec2 a_size;
out vec2 v_size;

// Opacity 
in float a_opacity;
out float v_opacity;

in vec4 a_color;
out vec4 v_color;

in vec4 a_strokeColor;
out vec4 v_strokeColor;

in float a_strokeThickness;
out float v_strokeThickness;

uniform mat4 u_matrix;


void main() {
   // Set the vertex position using the ortho transform matrix
   gl_Position = u_matrix * vec4(a_position, 0.0, 1.0);

   // Pass through UV coords
   v_uv = a_uv;
   // Pass through size
   v_size = a_size;
   // Pass through the Opacity to the fragment shader
   v_opacity = a_opacity;
   // Pass through the color to the fragment shader
   v_color = a_color;
   // Pass through the stroke color to the fragment shader
   v_strokeColor = a_strokeColor;
   // Pass through the stroke thickenss to the fragment shader
   v_strokeThickness = a_strokeThickness;
}