Vertices.raw constructor
Creates a set of vertex data for use with Canvas.drawVertices, directly using the encoding methods of new Vertices.
The mode
parameter must not be null.
The positions
list is interpreted as a list of repeated pairs of x,y
coordinates. It must not be null.
The textureCoordinates
list is interpreted as a list of repeated pairs
of x,y coordinates, and must be the same length of positions
if it
is not null.
The colors
list is interpreted as a list of RGBA encoded colors, similar
to Color.value. It must be half length of positions
if it is not
null.
If the indices
list is provided, all values in the list must be
valid index values for positions
.
Implementation
Vertices.raw(
VertexMode mode,
Float32List positions, {
Float32List textureCoordinates,
Int32List colors,
Uint16List indices,
}) : assert(mode != null),
assert(positions != null) {
if (textureCoordinates != null && textureCoordinates.length != positions.length)
throw ArgumentError('"positions" and "textureCoordinates" lengths must match.');
if (colors != null && colors.length * 2 != positions.length)
throw ArgumentError('"positions" and "colors" lengths must match.');
if (indices != null && indices.any((int i) => i < 0 || i >= positions.length))
throw ArgumentError('"indices" values must be valid indices in the positions list.');
_constructor();
if (!_init(mode.index, positions, textureCoordinates, colors, indices))
throw ArgumentError('Invalid configuration for vertices.');
}