glTriangles optimization
This commit is contained in:
parent
9a4c02e488
commit
95444e8540
|
@ -58,6 +58,26 @@ func (gt *glTriangles) resize(len int) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (gt *glTriangles) updateData(offset int, t Triangles) {
|
func (gt *glTriangles) updateData(offset int, t Triangles) {
|
||||||
|
// TrianglesData short path
|
||||||
|
if t, ok := t.(*TrianglesData); ok {
|
||||||
|
for i := offset; i < offset+t.Len(); i++ {
|
||||||
|
var (
|
||||||
|
px, py = (*t)[i].Position.XY()
|
||||||
|
col = (*t)[i].Color
|
||||||
|
tx, ty = (*t)[i].Texture.XY()
|
||||||
|
)
|
||||||
|
gt.data[i*gt.vs.Stride()+0] = float32(px)
|
||||||
|
gt.data[i*gt.vs.Stride()+1] = float32(py)
|
||||||
|
gt.data[i*gt.vs.Stride()+2] = float32(col.R)
|
||||||
|
gt.data[i*gt.vs.Stride()+3] = float32(col.G)
|
||||||
|
gt.data[i*gt.vs.Stride()+4] = float32(col.B)
|
||||||
|
gt.data[i*gt.vs.Stride()+5] = float32(col.A)
|
||||||
|
gt.data[i*gt.vs.Stride()+6] = float32(tx)
|
||||||
|
gt.data[i*gt.vs.Stride()+7] = float32(ty)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
if t, ok := t.(TrianglesPosition); ok {
|
if t, ok := t.(TrianglesPosition); ok {
|
||||||
for i := offset; i < offset+t.Len(); i++ {
|
for i := offset; i < offset+t.Len(); i++ {
|
||||||
px, py := t.Position(i).XY()
|
px, py := t.Position(i).XY()
|
||||||
|
|
Loading…
Reference in New Issue