mirror of
https://github.com/flame-engine/flame.git
synced 2025-11-01 10:38:17 +08:00
28 lines
671 B
Dart
28 lines
671 B
Dart
import 'dart:ui';
|
|
|
|
abstract class LayerProcessor {
|
|
void process(Picture pic, Canvas canvas);
|
|
}
|
|
|
|
class ShadowProcessor extends LayerProcessor {
|
|
final Paint _shadowPaint;
|
|
|
|
final Offset offset;
|
|
|
|
ShadowProcessor({
|
|
this.offset = const Offset(10, 10),
|
|
double opacity = 0.9,
|
|
Color color = const Color(0xFF000000),
|
|
}) : _shadowPaint = Paint()
|
|
..colorFilter =
|
|
ColorFilter.mode(color.withOpacity(opacity), BlendMode.srcATop);
|
|
|
|
@override
|
|
void process(Picture pic, Canvas canvas) {
|
|
canvas.saveLayer(Rect.largest, _shadowPaint);
|
|
canvas.translate(offset.dx, offset.dy);
|
|
canvas.drawPicture(pic);
|
|
canvas.restore();
|
|
}
|
|
}
|