LINUX.ORG.RU

История изменений

Исправление 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;
		}
	}