31 lines
759 B
GLSL
31 lines
759 B
GLSL
#version 450
|
|
|
|
layout(set = 0, binding = 0) uniform UIUniform {
|
|
mat4 screen;
|
|
} ubo;
|
|
|
|
layout(set = 1, binding = 0) uniform FontUniform {
|
|
vec2 size;
|
|
uint cols;
|
|
uint rows;
|
|
uint start;
|
|
} font;
|
|
|
|
layout(location = 0) in vec2 inVertexPosition;
|
|
layout(location = 1) in vec3 inPosition;
|
|
layout(location = 2) in vec2 inSize;
|
|
layout(location = 3) in vec4 inColor;
|
|
layout(location = 4) in uint code;
|
|
|
|
layout(location = 0) out vec4 fragColor;
|
|
layout(location = 1) out vec2 fragUV;
|
|
|
|
void main() {
|
|
float row = floor(code/font.cols);
|
|
float col = code - row*font.cols;
|
|
fragUV = (vec2(col, row) + inVertexPosition) / vec2(font.cols, font.rows);
|
|
fragColor = inColor;
|
|
gl_Position = ubo.screen * vec4(vec3(inVertexPosition * inSize, 0.0) + inPosition, 1.0);
|
|
}
|
|
|