| 80 | SpinnerLayer::~SpinnerLayer() = default; |
| 81 | |
| 82 | static void drawArc( |
| 83 | DrawingContext& drawingContext, const Rect& arcBounds, const Paint& paint, LazyPath& lazyPath, Scalar rotation) { |
| 84 | auto drawWidth = drawingContext.drawBounds().width(); |
| 85 | auto drawHeight = drawingContext.drawBounds().height(); |
| 86 | |
| 87 | auto saveCount = drawingContext.save(); |
| 88 | |
| 89 | Matrix matrix; |
| 90 | matrix.postRotate(rotation, drawWidth / 2.0f, drawHeight / 2.0f); |
| 91 | drawingContext.concat(matrix); |
| 92 | |
| 93 | if (lazyPath.update(drawWidth, drawHeight)) { |
| 94 | lazyPath.path().arcTo(arcBounds, 360.0f, 360.0f * kLineSweepRatio); |
| 95 | } |
| 96 | |
| 97 | drawingContext.drawPaint(paint, lazyPath.path()); |
| 98 | |
| 99 | drawingContext.restore(saveCount); |
| 100 | } |
| 101 | |
| 102 | void SpinnerLayer::onDraw(DrawingContext& drawingContext) { |
| 103 | Layer::onDraw(drawingContext); |