func (q *commandQueue) EnqueueDrawTrianglesCommand(dst, src *Image, vertices []float32, indices []uint16, color *affine.ColorM, mode graphics.CompositeMode, filter graphics.Filter, address graphics.Address) {
	if len(indices) > graphics.IndicesNum {
		panic(fmt.Sprintf("graphicscommand: len(indices) must be <= graphics.IndicesNum but not at EnqueueDrawTrianglesCommand: len(indices): %d, graphics.IndicesNum: %d", len(indices), graphics.IndicesNum))
	}

	split := false
	if q.tmpNumIndices+len(indices) > graphics.IndicesNum {
		q.tmpNumIndices = 0
		q.nextIndex = 0
		split = true
	}

	q.appendVertices(vertices)
	q.appendIndices(indices, uint16(q.nextIndex))
	q.nextIndex += len(vertices) / graphics.VertexFloatNum
	q.tmpNumIndices += len(indices)

	// TODO: If dst is the screen, reorder the command to be the last.
	q.doEnqueueDrawTrianglesCommand(dst, src, len(vertices), len(indices), color, mode, filter, address, split)
}
func (q *commandQueue) EnqueueDrawTrianglesCommand(dst, src *Image, vertices []float32, indices []uint16, color *affine.ColorM, mode graphics.CompositeMode, filter graphics.Filter, address graphics.Address) {
	if len(indices) > graphics.IndicesNum {
		panic(fmt.Sprintf("graphicscommand: len(indices) must be <= graphics.IndicesNum but not at EnqueueDrawTrianglesCommand: len(indices): %d, graphics.IndicesNum: %d", len(indices), graphics.IndicesNum))
	}

	split := false
	if q.tmpNumIndices+len(indices) > graphics.IndicesNum {
		q.tmpNumIndices = 0
		q.nextIndex = 0
		split = true
	}

	q.appendVertices(vertices)
	q.appendIndices(indices, uint16(q.nextIndex))
	q.nextIndex += len(vertices) / graphics.VertexFloatNum
	q.tmpNumIndices += len(indices)

	// TODO: If dst is the screen, reorder the command to be the last.
	q.doEnqueueDrawTrianglesCommand(dst, src, len(vertices), len(indices), color, mode, filter, address, split)
}
func ( q * commandQueue ) EnqueueDrawTrianglesCommand ( dst , src * Image , vertices [ ] float32 , indices [ ] uint16 , color * affine . ColorM , mode graphics . CompositeMode , filter graphics . Filter , address graphics . Address ) { if len ( indices ) > graphics . IndicesNum { panic ( fmt . Sprintf ( " " , len ( indices ) , graphics . IndicesNum ) ) } split := false if q . tmpNumIndices + len ( indices ) > graphics . IndicesNum { q . tmpNumIndices = 0 q . nextIndex = 0 split = true } q . appendVertices ( vertices ) q . appendIndices ( indices , uint16 ( q . nextIndex ) ) q . nextIndex += len ( vertices ) / graphics . VertexFloatNum q . tmpNumIndices += len ( indices ) // TODO: If dst is the screen, reorder the command to be the last. q . doEnqueueDrawTrianglesCommand ( dst , src , len ( vertices ) , len ( indices ) , color , mode , filter , address , split ) }
// EnqueueDrawTrianglesCommand enqueues a drawing-image command.
EnqueueDrawTrianglesCommand enqueues a drawing - image command .