Fix love.graphics.draw(TextBatch) accessing an invalid pointer.

Fixes #1922.
Fixes #1914.
This commit is contained in:
Sasha Szpakowski
2023-04-22 21:59:15 -03:00
parent 7613067f21
commit 90b22f7d42
+4 -4
View File
@@ -255,6 +255,10 @@ void TextBatch::draw(Graphics *gfx, const Matrix4 &m)
gfx->flushBatchedDraws();
// Re-generate the text if the Font's texture cache was invalidated.
if (font->getTextureCacheID() != textureCacheID)
regenerateVertices();
if (Shader::isDefaultActive())
Shader::attachDefault(Shader::STANDARD_DEFAULT);
@@ -265,10 +269,6 @@ void TextBatch::draw(Graphics *gfx, const Matrix4 &m)
if (Shader::current)
Shader::current->validateDrawState(PRIMITIVE_TRIANGLES, firsttex);
// Re-generate the text if the Font's texture cache was invalidated.
if (font->getTextureCacheID() != textureCacheID)
regenerateVertices();
int totalverts = 0;
for (const Font::DrawCommand &cmd : drawCommands)
totalverts = std::max(cmd.startvertex + cmd.vertexcount, totalverts);