#version 330 core

in vec2 vUV;               // UV from vertex shader
out vec4 FragColor;        // Final color output

uniform vec4 uColor;       // A user-set solid color
uniform sampler2D uTexture; // Optional texture

void main()
{
    // Sample the texture. If you don't want texturing, remove this.
    vec4 texColor = texture(uTexture, vUV);

    // Multiply the texture by our uniform color.
    // If you want a pure color (no texture), just do:
    // FragColor = uColor;
    FragColor = texColor * texColor;
}