pushStyle method

void pushStyle (TextStyle style)

Applies the given style to the added text until pop is called.

See pop for details.

Implementation

void pushStyle(TextStyle style) {
  final List<String> fullFontFamilies = <String>[];
  if (style._fontFamily != null)
    fullFontFamilies.add(style._fontFamily);
  if (style._fontFamilyFallback != null)
  fullFontFamilies.addAll(style._fontFamilyFallback);

  ByteData encodedFontFeatures;
  if (style._fontFeatures != null) {
    encodedFontFeatures = ByteData(style._fontFeatures.length * FontFeature._kEncodedSize);
    int byteOffset = 0;
    for (FontFeature feature in style._fontFeatures) {
      feature._encode(ByteData.view(encodedFontFeatures.buffer, byteOffset, FontFeature._kEncodedSize));
      byteOffset += FontFeature._kEncodedSize;
    }
  }

  _pushStyle(
    style._encoded,
    fullFontFamilies,
    style._fontSize,
    style._letterSpacing,
    style._wordSpacing,
    style._height,
    style._decorationThickness,
    _encodeLocale(style._locale),
    style._background?._objects,
    style._background?._data,
    style._foreground?._objects,
    style._foreground?._data,
    Shadow._encodeShadows(style._shadows),
    encodedFontFeatures,
  );
}