Added text alignment support.
This commit is contained in:
@ -43,5 +43,12 @@
|
||||
#define SHADER_PARAMETER_BUFFER_MAT4(name) \
|
||||
glm::mat4 name;
|
||||
|
||||
// VEC2
|
||||
#define SHADER_PARAMETER_BUFFER_VEC2(name) \
|
||||
glm::vec2 name;
|
||||
|
||||
#define SHADER_PARAMETER_BUFFER_VEC2_ARRAY(name, size) \
|
||||
glm::vec2 name[size];
|
||||
|
||||
// EOF Fix
|
||||
#define NOTHING "Fixes an error with EOF"
|
@ -28,6 +28,7 @@ void FontShader::compile() {
|
||||
"layout (shared) uniform ub_Font {\n"
|
||||
"vec4 u_FontColors[" MACRO_STRINGIFY(FONT_SHADER_PARTS_MAX) "];\n"
|
||||
"int u_FontTextures[" MACRO_STRINGIFY(FONT_SHADER_PARTS_MAX) "];\n"
|
||||
"vec2 u_FontLinePositions[" MACRO_STRINGIFY(FONT_SHADER_PARTS_MAX) "];\n"
|
||||
"int u_FontQuadMappings[" MACRO_STRINGIFY(FONT_SHADER_QUADS_MAX) "];\n"
|
||||
"};\n"
|
||||
|
||||
@ -37,10 +38,12 @@ void FontShader::compile() {
|
||||
"flat out int o_TextIndex;\n"
|
||||
|
||||
"void main() {\n"
|
||||
"gl_Position = u_Projection * u_View * u_Model * vec4(aPos.xy, 0, 1.0);\n"
|
||||
"o_TextCoord = vec2(aTexCoord.x, aTexCoord.y);\n"
|
||||
"int quadIndex = gl_VertexID / " MACRO_STRINGIFY(QUAD_VERTICE_COUNT) ";\n"
|
||||
"int partIndex = u_FontQuadMappings[quadIndex];\n"
|
||||
"gl_Position = u_Projection * u_View * u_Model * (\n"
|
||||
"vec4(aPos.xy, 0, 1.0) + vec4(u_FontLinePositions[partIndex], 0, 0)\n"
|
||||
");\n"
|
||||
"o_VertColor = u_FontColors[partIndex];\n"
|
||||
"o_TextIndex = u_FontTextures[partIndex];\n"
|
||||
"}",
|
||||
|
@ -15,6 +15,7 @@ namespace Dawn {
|
||||
SHADER_PARAMETER_BUFFER_DEFINE(FontShaderBuffer, \
|
||||
SHADER_PARAMETER_BUFFER_COLOR_ARRAY(colors, FONT_SHADER_PARTS_MAX);
|
||||
SHADER_PARAMETER_BUFFER_INTEGER_ARRAY(textures, FONT_SHADER_PARTS_MAX);
|
||||
SHADER_PARAMETER_BUFFER_VEC2_ARRAY(linePositions, FONT_SHADER_PARTS_MAX);
|
||||
SHADER_PARAMETER_BUFFER_INTEGER_ARRAY(quadMappings, FONT_SHADER_QUADS_MAX);
|
||||
);
|
||||
|
||||
|
Reference in New Issue
Block a user