change PictureData receiver to pointer

This commit is contained in:
faiface 2017-03-05 23:16:22 +01:00
parent 3aa7e6e8bf
commit e9d6e33b8a
1 changed files with 9 additions and 9 deletions

18
data.go
View File

@ -196,8 +196,8 @@ func PictureDataFromImage(img image.Image) PictureData {
// //
// Bounds are preserved. // Bounds are preserved.
func PictureDataFromPicture(pic Picture) PictureData { func PictureDataFromPicture(pic Picture) PictureData {
if pd, ok := pic.(PictureData); ok { if pd, ok := pic.(*PictureData); ok {
return pd return *pd
} }
bounds := pic.Bounds() bounds := pic.Bounds()
@ -222,7 +222,7 @@ func PictureDataFromPicture(pic Picture) PictureData {
// Image converts PictureData into an image.NRGBA. // Image converts PictureData into an image.NRGBA.
// //
// The resulting image.NRGBA's Bounds will be equivalent of the PictureData's Bounds. // The resulting image.NRGBA's Bounds will be equivalent of the PictureData's Bounds.
func (pd PictureData) Image() *image.NRGBA { func (pd *PictureData) Image() *image.NRGBA {
bounds := image.Rect( bounds := image.Rect(
int(math.Floor(pd.Rect.Pos.X())), int(math.Floor(pd.Rect.Pos.X())),
int(math.Floor(pd.Rect.Pos.Y())), int(math.Floor(pd.Rect.Pos.Y())),
@ -248,20 +248,20 @@ func (pd PictureData) Image() *image.NRGBA {
return nrgba return nrgba
} }
func (pd PictureData) offset(at Vec) int { func (pd *PictureData) offset(at Vec) int {
at -= pd.Rect.Pos at -= pd.Rect.Pos
x, y := int(at.X()), int(at.Y()) x, y := int(at.X()), int(at.Y())
return y*pd.Stride + x return y*pd.Stride + x
} }
// Bounds returns the bounds of this PictureData. // Bounds returns the bounds of this PictureData.
func (pd PictureData) Bounds() Rect { func (pd *PictureData) Bounds() Rect {
return pd.Rect return pd.Rect
} }
// Slice returns a sub-Picture of this PictureData inside the supplied rectangle. // Slice returns a sub-Picture of this PictureData inside the supplied rectangle.
func (pd PictureData) Slice(r Rect) Picture { func (pd *PictureData) Slice(r Rect) Picture {
return PictureData{ return &PictureData{
Pix: pd.Pix[pd.offset(r.Pos):], Pix: pd.Pix[pd.offset(r.Pos):],
Stride: pd.Stride, Stride: pd.Stride,
Rect: r, Rect: r,
@ -269,7 +269,7 @@ func (pd PictureData) Slice(r Rect) Picture {
} }
// Color returns the color located at the given position. // Color returns the color located at the given position.
func (pd PictureData) Color(at Vec) NRGBA { func (pd *PictureData) Color(at Vec) NRGBA {
if !pd.Rect.Contains(at) { if !pd.Rect.Contains(at) {
return NRGBA{0, 0, 0, 0} return NRGBA{0, 0, 0, 0}
} }
@ -277,7 +277,7 @@ func (pd PictureData) Color(at Vec) NRGBA {
} }
// SetColor changes the color located at the given position. // SetColor changes the color located at the given position.
func (pd PictureData) SetColor(at Vec, color color.Color) { func (pd *PictureData) SetColor(at Vec, color color.Color) {
if !pd.Rect.Contains(at) { if !pd.Rect.Contains(at) {
return return
} }