#version 300 es

layout(std140) uniform vs_ub
{
    vec4 u_PointLightSourcePosition[1];
    vec4 u_SpotLightSourcePosition[1];
    mat4 u_MVPMatrix;
    mat4 u_MVMatrix;
    mat4 u_PMatrix;
    mat3 u_NormalMatrix;
} _19;

layout(location = 0) in vec4 a_position;
out vec3 v_vertexToPointLightDirection[1];
out vec3 v_vertexToSpotLightDirection[1];
out vec3 v_normal;
layout(location = 1) in vec3 a_normal;
out vec2 v_texCoord;
layout(location = 2) in vec2 a_texCoord;

void main()
{
    vec4 ePosition = _19.u_MVMatrix * a_position;
    for (int i = 0; i < 1; i++)
    {
        v_vertexToPointLightDirection[i] = vec3(_19.u_PointLightSourcePosition[((i * 3) + 0) / 4][((i * 3) + 0) % 4], _19.u_PointLightSourcePosition[((i * 3) + 1) / 4][((i * 3) + 1) % 4], _19.u_PointLightSourcePosition[((i * 3) + 2) / 4][((i * 3) + 2) % 4]) - ePosition.xyz;
    }
    for (int i_1 = 0; i_1 < 1; i_1++)
    {
        v_vertexToSpotLightDirection[i_1] = vec3(_19.u_SpotLightSourcePosition[((i_1 * 3) + 0) / 4][((i_1 * 3) + 0) % 4], _19.u_SpotLightSourcePosition[((i_1 * 3) + 1) / 4][((i_1 * 3) + 1) % 4], _19.u_SpotLightSourcePosition[((i_1 * 3) + 2) / 4][((i_1 * 3) + 2) % 4]) - ePosition.xyz;
    }
    v_normal = _19.u_NormalMatrix * a_normal;
    v_texCoord = a_texCoord;
    v_texCoord.y = 1.0 - v_texCoord.y;
    gl_Position = _19.u_PMatrix * ePosition;
}

