add newline feature to the text node, add about window with credits, add about menu with submenus
This commit is contained in:
13
src/font.cpp
13
src/font.cpp
@@ -19,6 +19,7 @@ bool Font::load(const char* ttf, int font_size)
|
||||
stbtt_BakeFontBitmap(file.m_data, 0, (float)font_size*2, bitmap.get(), w, h, start_char, num_chars, chars.data());
|
||||
font_tex.create(w, h, GL_R8, GL_RED, bitmap.get());
|
||||
file.close();
|
||||
size = font_size;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
@@ -71,6 +72,12 @@ void TextMesh::update(kFont id, const char* text)
|
||||
glm::vec2 bbmax(-FLT_MAX);
|
||||
for (int i = 0; i < len; i++)
|
||||
{
|
||||
if (text[i] == '\n')
|
||||
{
|
||||
x = 0;
|
||||
y += f.size *2;
|
||||
continue;
|
||||
}
|
||||
int c = text[i] - f.start_char;
|
||||
stbtt_aligned_quad q;
|
||||
stbtt_GetBakedQuad((stbtt_bakedchar*)f.chars.data(), f.w, f.h, c, &x, &y, &q, true);
|
||||
@@ -88,10 +95,8 @@ void TextMesh::update(kFont id, const char* text)
|
||||
bbmin = glm::min(bbmin, { q.x0/2.f, q.y0/2.f });
|
||||
bbmax = glm::max(bbmax, { q.x1/2.f, q.y1/2.f });
|
||||
}
|
||||
for (int i = 0; i < len*4; i++)
|
||||
{
|
||||
v[i] -= glm::vec4(bbmin, 0, 0);
|
||||
}
|
||||
for (auto& vi : v)
|
||||
vi -= glm::vec4(bbmin, 0, 0);
|
||||
bb = bbmax - bbmin;
|
||||
font_array_count = (int)idx.size();
|
||||
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, font_buffers[1]);
|
||||
|
||||
Reference in New Issue
Block a user