Label rendering a bit better

This commit is contained in:
2023-12-14 23:29:54 -06:00
parent 9eee482883
commit 2074cc9211
13 changed files with 201 additions and 61 deletions

View File

@ -10,6 +10,7 @@ namespace Dawn {
struct TrueTypeCharacter {
glm::vec2 advance;
glm::vec2 size;
glm::vec2 offset;
glm::vec4 quad;
};
}

View File

@ -29,8 +29,8 @@ void TrueTypeTexture::setFace(const FT_Face face) {
// Set the texture size
texture->setSize(
fontSize * 26,
fontSize * 26,
fontSize * 24,
fontSize * 24,
TextureFormat::R,
TextureDataFormat::UNSIGNED_BYTE
);
@ -75,13 +75,17 @@ void TrueTypeTexture::setFace(const FT_Face face) {
// Determine the texture position
if(textureX + face->glyph->bitmap.width >= texture->getWidth()) {
textureX = 0;
textureY += rowHeight + 1;// Tiny gap between rows
textureY += rowHeight + 2;// Tiny gap between rows
rowHeight = face->glyph->bitmap.rows;
} else {
rowHeight = Math::max<int32_t>(rowHeight, face->glyph->bitmap.rows);
}
// Set the quad positions
info.offset = glm::vec2(
face->glyph->bitmap_left,
-face->glyph->bitmap_top
);
info.quad = glm::vec4(
textureX,
textureY,
@ -119,7 +123,7 @@ void TrueTypeTexture::setFace(const FT_Face face) {
}
// Increment textureX
textureX += face->glyph->bitmap.width + 1;// I add a tiny gap between chars
textureX += face->glyph->bitmap.width + 2;// I add a tiny gap between chars
}
this->texture->buffer(buffer);