graphics: Image.Clear/Fill now always return nil (#331)

This commit is contained in:
Hajime Hoshi 2017-03-04 00:53:49 +09:00
parent 1c7ce07edf
commit 7ba18a5d0d
2 changed files with 16 additions and 11 deletions

View File

@ -144,18 +144,28 @@ func (i *Image) Size() (width, height int) {
// Clear resets the pixels of the image into 0. // Clear resets the pixels of the image into 0.
// //
// When the image is disposed, this function does nothing.
//
// This function always returns nil as of 1.5.0-alpha.
//
// This function is concurrent-safe. // This function is concurrent-safe.
func (i *Image) Clear() error { func (i *Image) Clear() error {
theImagesForRestoring.resetPixelsIfDependingOn(i, glContext()) theImagesForRestoring.resetPixelsIfDependingOn(i, glContext())
return i.impl.Fill(color.Transparent) i.impl.Fill(color.Transparent)
return nil
} }
// Fill fills the image with a solid color. // Fill fills the image with a solid color.
// //
// When the image is disposed, this function does nothing.
//
// This function always returns nil as of 1.5.0-alpha.
//
// This function is concurrent-safe. // This function is concurrent-safe.
func (i *Image) Fill(clr color.Color) error { func (i *Image) Fill(clr color.Color) error {
theImagesForRestoring.resetPixelsIfDependingOn(i, glContext()) theImagesForRestoring.resetPixelsIfDependingOn(i, glContext())
return i.impl.Fill(clr) i.impl.Fill(clr)
return nil
} }
// DrawImage draws the given image on the receiver image. // DrawImage draws the given image on the receiver image.
@ -254,9 +264,7 @@ func NewImage(width, height int, filter Filter) (*Image, error) {
if err != nil { if err != nil {
return nil, err return nil, err
} }
if err := img.Fill(color.Transparent); err != nil { img.Fill(color.Transparent)
return nil, err
}
eimg, err := theImagesForRestoring.add(img) eimg, err := theImagesForRestoring.add(img)
if err != nil { if err != nil {
return nil, err return nil, err
@ -280,9 +288,7 @@ func newVolatileImage(width, height int, filter Filter) (*Image, error) {
if err != nil { if err != nil {
return nil, err return nil, err
} }
if err := img.Fill(color.Transparent); err != nil { img.Fill(color.Transparent)
return nil, err
}
eimg, err := theImagesForRestoring.add(img) eimg, err := theImagesForRestoring.add(img)
if err != nil { if err != nil {
return nil, err return nil, err

View File

@ -90,15 +90,14 @@ func newScreenImageImpl(width, height int) (*imageImpl, error) {
return i, nil return i, nil
} }
func (i *imageImpl) Fill(clr color.Color) error { func (i *imageImpl) Fill(clr color.Color) {
i.m.Lock() i.m.Lock()
defer i.m.Unlock() defer i.m.Unlock()
if i.restorable == nil { if i.restorable == nil {
return errors.New("ebiten: image is already disposed") return
} }
rgba := color.RGBAModel.Convert(clr).(color.RGBA) rgba := color.RGBAModel.Convert(clr).(color.RGBA)
i.restorable.Fill(rgba) i.restorable.Fill(rgba)
return nil
} }
func (i *imageImpl) clearIfVolatile() { func (i *imageImpl) clearIfVolatile() {