From 02151e48ea22a08be36b8eae13a23f9d129709d5 Mon Sep 17 00:00:00 2001 From: Hajime Hoshi Date: Sun, 4 Sep 2016 00:07:06 +0900 Subject: [PATCH] restorable: Remove Image() --- image.go | 2 +- imageimpl.go | 13 +++++-------- internal/restorable/image.go | 22 ++++++++++++++++------ 3 files changed, 22 insertions(+), 15 deletions(-) diff --git a/image.go b/image.go index ef79bf256..d4a5cd03f 100644 --- a/image.go +++ b/image.go @@ -95,7 +95,7 @@ func (i *images) restore(context *opengl.Context) error { if img.isDisposed() { continue } - if err := img.restorable.Image().Dispose(); err != nil { + if err := img.restorable.DisposeOnlyImage(); err != nil { return err } } diff --git a/imageimpl.go b/imageimpl.go index a4c84432f..d32184d0a 100644 --- a/imageimpl.go +++ b/imageimpl.go @@ -256,11 +256,6 @@ func (i *imageImpl) Dispose() error { if i.disposed { return errors.New("ebiten: image is already disposed") } - if !i.screen { - if err := i.restorable.Image().Dispose(); err != nil { - return err - } - } if err := i.restorable.Dispose(); err != nil { return err } @@ -275,11 +270,13 @@ func (i *imageImpl) ReplacePixels(p []uint8) error { } i.m.Lock() defer i.m.Unlock() - i.restorable.ReplacePixels(p) if i.disposed { return errors.New("ebiten: image is already disposed") } - return i.restorable.Image().ReplacePixels(p) + if err := i.restorable.ReplacePixels(p); err != nil { + return err + } + return nil } func (i *imageImpl) isDisposed() bool { @@ -291,5 +288,5 @@ func (i *imageImpl) isDisposed() bool { func (i *imageImpl) isInvalidated(context *opengl.Context) bool { i.m.Lock() defer i.m.Unlock() - return i.restorable.Image().IsInvalidated(context) + return i.restorable.IsInvalidated(context) } diff --git a/internal/restorable/image.go b/internal/restorable/image.go index 658fd3bf1..92bb0e0ab 100644 --- a/internal/restorable/image.go +++ b/internal/restorable/image.go @@ -105,7 +105,10 @@ func (p *Image) Fill(clr color.RGBA) error { return nil } -func (p *Image) ReplacePixels(pixels []uint8) { +func (p *Image) ReplacePixels(pixels []uint8) error { + if err := p.image.ReplacePixels(pixels); err != nil { + return err + } if p.basePixels == nil { p.basePixels = make([]uint8, len(pixels)) } @@ -113,6 +116,7 @@ func (p *Image) ReplacePixels(pixels []uint8) { p.baseColor = color.RGBA{} p.drawImageHistory = nil p.stale = false + return nil } func (p *Image) DrawImage(img *Image, vertices []int16, geom graphics.Matrix, colorm graphics.Matrix, mode opengl.CompositeMode) error { @@ -127,11 +131,6 @@ func (p *Image) DrawImage(img *Image, vertices []int16, geom graphics.Matrix, co return nil } -func (p *Image) Image() *graphics.Image { - // TODO: This function is temporary. Remove this. - return p.image -} - func (p *Image) appendDrawImageHistory(image *graphics.Image, vertices []int16, geom graphics.Matrix, colorm graphics.Matrix, mode opengl.CompositeMode) { if p.stale { return @@ -279,3 +278,14 @@ func (p *Image) Dispose() error { p.stale = false return nil } + +func (p *Image) DisposeOnlyImage() error { + if err := p.image.Dispose(); err != nil { + return err + } + return nil +} + +func (p *Image) IsInvalidated(context *opengl.Context) bool { + return p.image.IsInvalidated(context) +}