Don't make SkinTheme surfaces slices immutable as we re-use them

Each time we refresh the default theme we re-use all slices/surfaces
of the SkinTheme. This could be completely avoided if we were able to
create sub-surfaces from the original sprite sheet (sharing the same
pixels).
This commit is contained in:
David Capello 2021-11-18 13:37:34 -03:00
parent b5f18921bb
commit d6339f163b

View File

@ -757,7 +757,12 @@ os::SurfaceRef SkinTheme::sliceSheet(os::SurfaceRef sur, const gfx::Rect& bounds
os::SurfaceLock lockSrc(m_sheet.get());
os::SurfaceLock lockDst(sur.get());
m_sheet->blitTo(sur.get(), bounds.x, bounds.y, 0, 0, bounds.w, bounds.h);
sur->setImmutable();
// The new surface is immutable because we're going to re-use the
// surface if we reload the theme.
//
// TODO Add sub-surfaces (SkBitmap::extractSubset())
//sur->setImmutable();
}
else {
ASSERT(!sur);