geometra/assets/shaders/msdf.vert

25 lines
529 B
GLSL

#version 150 core
uniform ivec2 Viewport;
uniform mat3 Transform;
uniform sampler2D Texture;
in vec2 Vert;
in vec2 Offset;
in vec4 Atlas;
in vec4 Plane;
out vec2 TextureCoord;
void main() {
vec2 planeVert = mix(Plane.sq, Plane.pt, Vert);
vec3 pos = Transform * vec3(planeVert + Offset, 1.0);
vec2 atlasVert = mix(Atlas.sq, Atlas.pt, Vert);
TextureCoord = atlasVert / textureSize(Texture, 0);
gl_Position.xy = pos.xy * vec2(2.0, -2.0) / Viewport + vec2(-1.0, 1.0);
gl_Position.z = 0.0;
gl_Position.w = 1.0;
}