#version 430 core in vec2 vUv; in vec4 vColor; out vec4 FragColor; uniform sampler2D uTex; uniform int uUseTexture; void main() { if (uUseTexture != 0) { // Font atlas is a single-channel R8 texture; red = coverage alpha. float coverage = texture(uTex, vUv).r; FragColor = vec4(vColor.rgb, vColor.a * coverage); } else { FragColor = vColor; } if (FragColor.a < 0.005) discard; }