mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2024-11-10 04:57:26 +01:00
Revert "internal/restorable: remove ImageType"
This reverts commit 21ef462c37
.
Updates #3083
This commit is contained in:
parent
62ed5bed4b
commit
a324cfd3b6
@ -119,8 +119,7 @@ func (b *backend) tryAlloc(width, height int) (*packing.Node, bool) {
|
|||||||
return nil, false
|
return nil, false
|
||||||
}
|
}
|
||||||
|
|
||||||
w, h := b.page.Size()
|
b.restorable = b.restorable.Extend(b.page.Size())
|
||||||
b.restorable = b.restorable.Extend(w, h)
|
|
||||||
|
|
||||||
return n, true
|
return n, true
|
||||||
}
|
}
|
||||||
@ -672,7 +671,7 @@ func (i *Image) allocate(forbiddenBackends []*backend, asSource bool) {
|
|||||||
}
|
}
|
||||||
// A screen image doesn't have a padding.
|
// A screen image doesn't have a padding.
|
||||||
i.backend = &backend{
|
i.backend = &backend{
|
||||||
restorable: restorable.NewImage(i.width, i.height, true),
|
restorable: restorable.NewImage(i.width, i.height, restorable.ImageTypeScreen),
|
||||||
}
|
}
|
||||||
theBackends = append(theBackends, i.backend)
|
theBackends = append(theBackends, i.backend)
|
||||||
return
|
return
|
||||||
@ -687,7 +686,7 @@ func (i *Image) allocate(forbiddenBackends []*backend, asSource bool) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
i.backend = &backend{
|
i.backend = &backend{
|
||||||
restorable: restorable.NewImage(wp, hp, false),
|
restorable: restorable.NewImage(wp, hp, restorable.ImageTypeRegular),
|
||||||
source: asSource && i.imageType == ImageTypeRegular,
|
source: asSource && i.imageType == ImageTypeRegular,
|
||||||
}
|
}
|
||||||
theBackends = append(theBackends, i.backend)
|
theBackends = append(theBackends, i.backend)
|
||||||
@ -733,7 +732,7 @@ loop:
|
|||||||
}
|
}
|
||||||
|
|
||||||
b := &backend{
|
b := &backend{
|
||||||
restorable: restorable.NewImage(width, height, false),
|
restorable: restorable.NewImage(width, height, restorable.ImageTypeRegular),
|
||||||
page: packing.NewPage(width, height, maxSize),
|
page: packing.NewPage(width, height, maxSize),
|
||||||
source: asSource,
|
source: asSource,
|
||||||
}
|
}
|
||||||
|
@ -23,6 +23,16 @@ import (
|
|||||||
"github.com/hajimehoshi/ebiten/v2/internal/graphicsdriver"
|
"github.com/hajimehoshi/ebiten/v2/internal/graphicsdriver"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type ImageType int
|
||||||
|
|
||||||
|
const (
|
||||||
|
// ImageTypeRegular indicates the image is a regular image.
|
||||||
|
ImageTypeRegular ImageType = iota
|
||||||
|
|
||||||
|
// ImageTypeScreen indicates the image is used as an actual screen.
|
||||||
|
ImageTypeScreen
|
||||||
|
)
|
||||||
|
|
||||||
// Image represents an image.
|
// Image represents an image.
|
||||||
type Image struct {
|
type Image struct {
|
||||||
// Image is the underlying image.
|
// Image is the underlying image.
|
||||||
@ -32,6 +42,8 @@ type Image struct {
|
|||||||
|
|
||||||
width int
|
width int
|
||||||
height int
|
height int
|
||||||
|
|
||||||
|
imageType ImageType
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewImage creates an emtpy image with the given size.
|
// NewImage creates an emtpy image with the given size.
|
||||||
@ -39,11 +51,12 @@ type Image struct {
|
|||||||
// The returned image is cleared.
|
// The returned image is cleared.
|
||||||
//
|
//
|
||||||
// Note that Dispose is not called automatically.
|
// Note that Dispose is not called automatically.
|
||||||
func NewImage(width, height int, screen bool) *Image {
|
func NewImage(width, height int, imageType ImageType) *Image {
|
||||||
i := &Image{
|
i := &Image{
|
||||||
Image: graphicscommand.NewImage(width, height, screen),
|
Image: graphicscommand.NewImage(width, height, imageType == ImageTypeScreen),
|
||||||
width: width,
|
width: width,
|
||||||
height: height,
|
height: height,
|
||||||
|
imageType: imageType,
|
||||||
}
|
}
|
||||||
|
|
||||||
// This needs to use 'InternalSize' to render the whole region, or edges are unexpectedly cleared on some
|
// This needs to use 'InternalSize' to render the whole region, or edges are unexpectedly cleared on some
|
||||||
@ -61,8 +74,7 @@ func (i *Image) Extend(width, height int) *Image {
|
|||||||
return i
|
return i
|
||||||
}
|
}
|
||||||
|
|
||||||
// Assume that the screen image is never extended.
|
newImg := NewImage(width, height, i.imageType)
|
||||||
newImg := NewImage(width, height, false)
|
|
||||||
|
|
||||||
// Use DrawTriangles instead of WritePixels because the image i might be stale and not have its pixels
|
// Use DrawTriangles instead of WritePixels because the image i might be stale and not have its pixels
|
||||||
// information.
|
// information.
|
||||||
|
Loading…
Reference in New Issue
Block a user