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. canvas.Restore(); return; } _fillPaint.Color = _colorAnimation?.Value ?? documentData.Color; _strokePaint.Color = _strokeColorAnimation?.Value ?? documentData.StrokeColor; var alpha = (byte)(Transform.Opacity.Value * 255 / 100f); _fillPaint.Alpha = alpha; _strokePaint.Alpha = alpha; if (_strokeWidthAnimation?.Value != null) { _strokePaint.StrokeWidth = _strokeWidthAnimation.Value.Value; } else { var parentScale = Utils.Utils.GetScale(parentMatrix); _strokePaint.StrokeWidth = documentData.StrokeWidth * Utils.Utils.DpScale() * parentScale; } if (_lottieDrawable.UseTextGlyphs()) { DrawTextGlyphs(documentData, parentMatrix, font, canvas); } else { DrawTextWithFont(documentData, font, parentMatrix, canvas); } canvas.Restore(); }
public override void DrawLayer(BitmapCanvas canvas, Matrix3X3 parentMatrix, byte parentAlpha) { var bitmap = Bitmap; if (bitmap == null) { return; } _paint.Alpha = parentAlpha; canvas.Save(); canvas.Concat(parentMatrix); RectExt.Set(ref _src, 0, 0, PixelWidth, PixelHeight); RectExt.Set(ref _dst, 0, 0, (int)(PixelWidth * _density), (int)(PixelHeight * _density)); canvas.DrawBitmap(bitmap, _src, _dst, _paint); canvas.Restore(); }
public override void DrawLayer(BitmapCanvas canvas, Matrix3X3 parentMatrix, byte parentAlpha) { var bitmap = Bitmap; if (bitmap == null) { return; } var density = Utils.Utils.DpScale(); _paint.Alpha = parentAlpha; if (_colorFilterAnimation != null) { _paint.ColorFilter = _colorFilterAnimation.Value; } canvas.Save(); canvas.Concat(parentMatrix); RectExt.Set(ref _src, 0, 0, PixelWidth, PixelHeight); RectExt.Set(ref _dst, 0, 0, (int)(PixelWidth * density), (int)(PixelHeight * density)); canvas.DrawBitmap(bitmap, _src, _dst, _paint); canvas.Restore(); }
public override void DrawLayer(BitmapCanvas canvas, Matrix3X3 parentMatrix, byte parentAlpha) { LottieLog.BeginSection("CompositionLayer.Draw"); canvas.Save(); RectExt.Set(ref _newClipRect, 0, 0, LayerModel.PreCompWidth, LayerModel.PreCompHeight); parentMatrix.MapRect(ref _newClipRect); for (var i = _layers.Count - 1; i >= 0; i--) { var nonEmptyClip = true; if (!_newClipRect.IsEmpty) { nonEmptyClip = canvas.ClipRect(_newClipRect); } if (nonEmptyClip) { var layer = _layers[i]; layer.Draw(canvas, parentMatrix, parentAlpha); } } canvas.Restore(); LottieLog.EndSection("CompositionLayer.Draw"); }