#version 450 layout(location = 0) in vec4 fragColor; layout(location = 1) in vec2 fragTexCoord; layout(location = 0) out vec4 outColor; layout(binding = 0, std140) uniform UniformBufferObject { float time; // offset 0 float resX; // offset 4 float resY; // offset 8 float rotation; // offset 12 float wavePhase; // offset 16 float padding1; // offset 20 float padding2; // offset 24 } ubo; layout(binding = 1) uniform sampler2D texSampler; void main() { // Sample the font texture atlas float alpha = texture(texSampler, fragTexCoord).r; // Apply color with alpha from texture outColor = vec4(fragColor.rgb, fragColor.a * alpha); }