public override void DrawLayer(BitmapCanvas canvas, Matrix3X3 parentMatrix, byte parentAlpha) { canvas.Save(); if (!_lottieDrawable.UseTextGlyphs()) { canvas.SetMatrix(parentMatrix); } var documentData = _textAnimation.Value; if (!_composition.Fonts.TryGetValue(documentData.FontName, out var font)) { // Something is wrong. return; } _fillPaint.Color = _colorAnimation?.Value ?? documentData.Color; _strokePaint.Color = _strokeAnimation?.Value ?? documentData.StrokeColor; if (_strokeWidthAnimation?.Value != null) { _strokePaint.StrokeWidth = _strokeWidthAnimation.Value.Value; } else { var parentScale = Utils.GetScale(parentMatrix); _strokePaint.StrokeWidth = documentData.StrokeWidth * _composition.DpScale * parentScale; } if (_lottieDrawable.UseTextGlyphs()) { DrawTextGlyphs(documentData, parentMatrix, font, canvas); } else { DrawTextWithFont(documentData, font, parentMatrix, canvas); } canvas.Restore(); }