From 0af28b0b178eec7c034997bce38ab7dcaf21fe46 Mon Sep 17 00:00:00 2001 From: faiface <faiface@ksp.sk> Date: Thu, 26 Jan 2017 23:38:37 +0100 Subject: [PATCH] add TrianglesData.SetLen --- graphics.go | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/graphics.go b/graphics.go index c072dbc..d428b36 100644 --- a/graphics.go +++ b/graphics.go @@ -23,7 +23,11 @@ func (td *TrianglesData) Draw() { panic(fmt.Errorf("%T.Draw: invalid operation", td)) } -func (td *TrianglesData) resize(len int) { +// SetLen resizes TrianglesData to len, while keeping the original content. +// +// If len is greater than TrianglesData's current length, the new data is filled with default +// values ((0, 0), white, (-1, -1)). +func (td *TrianglesData) SetLen(len int) { if len > td.Len() { needAppend := len - td.Len() for i := 0; i < needAppend; i++ { @@ -68,13 +72,13 @@ func (td *TrianglesData) updateData(offset int, t Triangles) { // // TrianglesPosition, TrianglesColor and TrianglesTexture are supported. func (td *TrianglesData) Update(t Triangles) { - td.resize(t.Len()) + td.SetLen(t.Len()) td.updateData(0, t) } // Append adds supplied Triangles to the end of the TrianglesData. func (td *TrianglesData) Append(t Triangles) { - td.resize(td.Len() + t.Len()) + td.SetLen(td.Len() + t.Len()) td.updateData(td.Len()-t.Len(), t) } @@ -260,11 +264,10 @@ func (p *Polygon) Color() NRGBA { // // However, it is less expensive than using a transform on a Target. func (p *Polygon) SetPoints(points ...Vec) { - p.data.resize(len(points)) + p.data.SetLen(len(points)) for i, pt := range points { p.data[i].Position = pt p.data[i].Color = p.col - p.data[i].Texture = V(-1, -1) } p.td.Dirty() } -- GitLab