@header #include "cglm/cglm.h" @vs vs_text in vec2 in_position; in vec2 in_uv; layout(binding = 0) uniform text_params { mat4 mvp; vec4 color; }; out vec2 out_uv; out vec4 out_color; void main() { gl_Position = mvp * vec4(in_position, 0.0, 1.0); out_uv = in_uv; out_color = color; } @end @fs fs_text layout(binding = 0) uniform texture2D u_texture; layout(binding = 1) uniform sampler u_sampler; in vec2 out_uv; in vec4 out_color; out vec4 frag_color; void main() { float alpha = texture(sampler2D(u_texture, u_sampler), out_uv).r; frag_color = vec4(out_color.rgb, out_color.a * alpha); } @end @program text vs_text fs_text