diff --git a/imageimpl.go b/imageimpl.go index 5e6e8ac32..18ce4c793 100644 --- a/imageimpl.go +++ b/imageimpl.go @@ -269,7 +269,6 @@ func (i *imageImpl) Dispose() error { return err } i.disposed = true - i.restorable.Clear() runtime.SetFinalizer(i, nil) return nil } diff --git a/internal/restorable/image.go b/internal/restorable/image.go index 35efb7176..8243f933d 100644 --- a/internal/restorable/image.go +++ b/internal/restorable/image.go @@ -249,6 +249,13 @@ func (p *Image) Recreate(width, height int, filter opengl.Filter) error { } func (p *Image) Dispose() error { + if err := p.image.Dispose(); err != nil { + return err + } p.image = nil + p.basePixels = nil + p.baseColor = color.RGBA{} + p.drawImageHistory = nil + p.stale = false return nil }