#shader vertex
#version 440 core

layout(location = 0) in vec3 VertexPosition;
layout(location = 1) in vec4 VertexColor;

uniform mat4 u_Projection;
uniform mat4 u_View;
uniform mat4 u_Model;

out vec4 LineColor;

void main()
{
    LineColor = VertexColor;
    gl_Position = u_Projection * u_View * vec4(VertexPosition, 1.0f);
}

#shader fragment
#version 440 core

in vec4 LineColor;

layout(location = 0) out vec4 FragColor;
layout(location = 1) out int gEntityID;

uniform float u_Opacity;
uniform int u_EntityID;
uniform vec4 u_Color;

void main()
{
    if(u_Color == vec4(0, 0, 0, 0))
    {
        FragColor = LineColor * vec4(1, 1, 1, u_Opacity);
    }
    else
    {
        FragColor = u_Color;
    }
    
    gEntityID = int(u_EntityID);
}