Fix videos not setting their textures in the first frame, on some backends.

This commit is contained in:
Sasha Szpakowski
2024-04-09 21:18:11 -03:00
parent b01ff0e8ee
commit ad0526d97d
+9 -3
View File
@@ -115,6 +115,15 @@ void Video::draw(Graphics *gfx, const Matrix4 &m)
{
update();
// setVideoTextures may call flushBatchedDraws before setting the textures, so
// we can't call it after requestBatchedDraw.
auto shader = Shader::current;
if (Shader::isDefaultActive())
shader = Shader::standardShaders[Shader::STANDARD_VIDEO];
if (shader != nullptr)
shader->setVideoTextures(textures[0], textures[1], textures[2]);
const Matrix4 &tm = gfx->getTransform();
bool is2D = tm.isAffine2DTransform();
@@ -145,9 +154,6 @@ void Video::draw(Graphics *gfx, const Matrix4 &m)
verts[i].color = c;
}
if (Shader::current != nullptr)
Shader::current->setVideoTextures(textures[0], textures[1], textures[2]);
gfx->flushBatchedDraws();
}