writeLinearGradient method
int
writeLinearGradient(
- VectorGraphicsBuffer buffer, {
- required double fromX,
- required double fromY,
- required double toX,
- required double toY,
- required Int32List colors,
- required Float32List? offsets,
- required int tileMode,
Write a linear gradient into the current buffer.
Implementation
int writeLinearGradient(
VectorGraphicsBuffer buffer, {
required double fromX,
required double fromY,
required double toX,
required double toY,
required Int32List colors,
required Float32List? offsets,
required int tileMode,
}) {
buffer._checkPhase(_CurrentSection.shaders);
final int shaderId = buffer._nextShaderId++;
assert(shaderId < kMaxId);
buffer._putUint8(_linearGradientTag);
buffer._putUint16(shaderId);
buffer._putFloat32(fromX);
buffer._putFloat32(fromY);
buffer._putFloat32(toX);
buffer._putFloat32(toY);
buffer._putUint16(colors.length);
buffer._putInt32List(colors);
if (offsets == null) {
buffer._putUint16(0);
} else {
buffer._putUint16(offsets.length);
buffer._putFloat32List(offsets);
}
buffer._putUint8(tileMode);
return shaderId;
}