История изменений
Исправление KivApple, (текущая версия) :
Немного упростил функцию генерации плоскостей для отрисовки:
glm::vec2 p0(0.0f);
for (auto c : text) {
if (c != '\n') {
auto &glyph = m_font->glyphInfo(c);
auto p1 = p0 + glyph.offset;
auto p2 = p1 + glyph.size;
auto t1 = glyph.texCoord;
auto t2 = t1 + glyph.texSize;
const TextRendererVertexData v[] = {
{{p1.x, p2.y}, {t1.x, t1.y}},
{{p2.x, p2.y}, {t2.x, t1.y}},
{{p1.x, p1.y}, {t1.x, t2.y}},
{{p2.x, p1.y}, {t2.x, t2.y}}
};
m_data.emplace_back(v[0]);
m_data.emplace_back(v[1]);
m_data.emplace_back(v[2]);
m_data.emplace_back(v[1]);
m_data.emplace_back(v[2]);
m_data.emplace_back(v[3]);
p0.x += glyph.width;
} else {
p0.y -= 1.0f;
p0.x = 0.0f;
}
}
Исходная версия KivApple, :
Немного упростил функцию генерации плоскостей для отрисовки:
glm::vec2 p0(0.0f);
for (auto c : text) {
if (c != '\n') {
auto &glyph = m_font->glyphInfo(c);
auto t1 = glyph.texCoord;
auto t2 = t1 + glyph.texSize;
auto p1 = p0 + glyph.offset;
auto p2 = p1 + glyph.size;
const TextRendererVertexData v[] = {
{{p1.x, p2.y}, {t1.x, t1.y}},
{{p2.x, p2.y}, {t2.x, t1.y}},
{{p1.x, p1.y}, {t1.x, t2.y}},
{{p2.x, p1.y}, {t2.x, t2.y}}
};
m_data.emplace_back(v[0]);
m_data.emplace_back(v[1]);
m_data.emplace_back(v[2]);
m_data.emplace_back(v[1]);
m_data.emplace_back(v[2]);
m_data.emplace_back(v[3]);
p0.x += glyph.width;
} else {
p0.y -= 1.0f;
p0.x = 0.0f;
}
}