fix a bug + doc

This commit is contained in:
faiface 2017-02-24 14:25:35 +01:00
parent 7e09988467
commit 589becbcdb
2 changed files with 17 additions and 2 deletions

View File

@ -1,6 +1,7 @@
package pixel package pixel
import ( import (
"fmt"
"image/color" "image/color"
"math" "math"
@ -75,6 +76,7 @@ func (b *Batch) MakeTriangles(t Triangles) TargetTriangles {
func (b *Batch) MakePicture(p Picture) TargetPicture { func (b *Batch) MakePicture(p Picture) TargetPicture {
return &batchPicture{ return &batchPicture{
Picture: p, Picture: p,
b: b,
} }
} }
@ -113,6 +115,8 @@ func (bt *batchTriangles) Draw() {
type batchPicture struct { type batchPicture struct {
Picture Picture
b *Batch
} }
func (bp *batchPicture) Slice(r Rect) Picture { func (bp *batchPicture) Slice(r Rect) Picture {
@ -122,5 +126,9 @@ func (bp *batchPicture) Slice(r Rect) Picture {
} }
func (bp *batchPicture) Draw(t TargetTriangles) { func (bp *batchPicture) Draw(t TargetTriangles) {
t.(*batchTriangles).draw(bp) bt := t.(*batchTriangles)
if bp.b != bt.b {
panic(fmt.Sprintf("%T.Draw: TargetTriangles generated by different Batch", bp))
}
bt.draw(bp)
} }

View File

@ -19,7 +19,11 @@ type Target interface {
// present) when making new TargetTriangles. This varies from Target to Target. // present) when making new TargetTriangles. This varies from Target to Target.
MakeTriangles(Triangles) TargetTriangles MakeTriangles(Triangles) TargetTriangles
//TODO: doc // MakePicture generates a specialized copy of the provided Picture.
//
// When calling Draw method on the returned TargetPicture, the TargetPicture will be drawn
// onto the Target that generated it together with the TargetTriangles supplied to the Draw
// method.
MakePicture(Picture) TargetPicture MakePicture(Picture) TargetPicture
} }
@ -116,6 +120,9 @@ type Picture interface {
type TargetPicture interface { type TargetPicture interface {
Picture Picture
// Draw draws the supplied TargetTriangles (which must be generated by the same Target as
// this TargetPicture) with this TargetPicture. The TargetTriangles should utilize the data
// from this TargetPicture in some way.
Draw(TargetTriangles) Draw(TargetTriangles)
} }