Revert "internal/restorable: remove ImageTypeRestorable"

This reverts commit 8c2d4e1408.

Updates #3083
This commit is contained in:
Hajime Hoshi 2024-09-06 15:27:24 +09:00
parent 169b9fe51e
commit 34639d0028
2 changed files with 14 additions and 3 deletions

View File

@ -677,9 +677,13 @@ func (i *Image) allocate(forbiddenBackends []*backend, asSource bool) {
panic(fmt.Sprintf("atlas: the image being put on an atlas is too big: width: %d, height: %d", i.width, i.height))
}
typ := restorable.ImageTypeRegular
if i.imageType == ImageTypeVolatile {
typ = restorable.ImageTypeVolatile
}
i.backend = &backend{
restorable: restorable.NewImage(wp, hp, restorable.ImageTypeRegular),
source: asSource && i.imageType == ImageTypeRegular,
restorable: restorable.NewImage(wp, hp, typ),
source: asSource && typ == restorable.ImageTypeRegular,
}
theBackends = append(theBackends, i.backend)
return
@ -723,8 +727,12 @@ loop:
height *= 2
}
typ := restorable.ImageTypeRegular
if i.imageType == ImageTypeVolatile {
typ = restorable.ImageTypeVolatile
}
b := &backend{
restorable: restorable.NewImage(width, height, restorable.ImageTypeRegular),
restorable: restorable.NewImage(width, height, typ),
page: packing.NewPage(width, height, maxSize),
source: asSource,
}

View File

@ -31,6 +31,9 @@ const (
// ImageTypeScreen indicates the image is used as an actual screen.
ImageTypeScreen
// ImageTypeVolatile indicates the image is cleared whenever a frame starts.
ImageTypeVolatile
)
// Image represents an image.