Fix ScriptedDrawable save/restore (#11451) e7142dcfed

Co-authored-by: Philip Chung <philterdesign@gmail.com>
This commit is contained in:
philter
2026-01-13 07:54:46 +00:00
parent 768aacd78d
commit a81117c359
4 changed files with 5 additions and 11 deletions

View File

@@ -1 +1 @@
62fcec60de0eea68dceb64758f284ef5b5e20c00
e7142dcfedf6710265bd49fe031c26e663b37f99

View File

@@ -29,16 +29,15 @@ void ScriptedDrawable::draw(Renderer* renderer)
}
#endif
if (m_needsSaveOperation)
float opacity = renderOpacity();
bool needsOpacitySave = (opacity != 1.0f);
if (m_needsSaveOperation || needsOpacitySave)
{
renderer->save();
}
float opacity = renderOpacity();
bool needsOpacitySave = (opacity != 1.0f);
if (needsOpacitySave)
{
renderer->save();
renderer->modulateOpacity(opacity);
}
@@ -63,12 +62,7 @@ void ScriptedDrawable::draw(Renderer* renderer)
// Stack: [scriptedRenderer, self]
rive_lua_pop(m_state, 2);
if (needsOpacitySave)
{
renderer->restore();
}
if (m_needsSaveOperation)
if (m_needsSaveOperation || needsOpacitySave)
{
renderer->restore();
}