11import 'dart:typed_data' ;
2- import 'dart:ui' ;
32
43import 'package:quiver/core.dart' as quiver;
54import 'package:flutter/widgets.dart' ;
65import 'package:flutter_svg/flutter_svg.dart' ;
7- import 'package:flutter_svg/svg.dart' ;
8- import 'package:vector_math/vector_math_64.dart' ;
96
107class ParallaxBackgroundSettings {
118 const ParallaxBackgroundSettings ({
@@ -14,7 +11,7 @@ class ParallaxBackgroundSettings {
1411 this .shadowColor = const Color (0x00000000 ),
1512 });
1613
17- final Float64List deepEffectMatrix;
14+ final Float64List ? deepEffectMatrix;
1815 final double shadowSigma;
1916 final Color shadowColor;
2017
@@ -37,14 +34,14 @@ class ParallaxBackgroundSettings {
3734 shadowColor == other.shadowColor;
3835
3936 @override
40- int get hashCode => quiver.hash3 (deepEffectMatrix ? .hashCode ?? 1 ,
41- shadowColor ? .hashCode ?? 2 , shadowSigma? .hashCode ?? 3 );
37+ int get hashCode => quiver.hash3 (
38+ deepEffectMatrix .hashCode, shadowColor.hashCode , shadowSigma.hashCode);
4239}
4340
4441class ParallaxSvgBackground extends StatefulWidget {
4542 const ParallaxSvgBackground ({
46- Key key,
47- @ required this .svgAssetName,
43+ Key ? key,
44+ required this .svgAssetName,
4845 this .disableDeepEffect = false ,
4946 this .disableShadow = false ,
5047 this .translationOffset = Offset .zero,
@@ -57,7 +54,7 @@ class ParallaxSvgBackground extends StatefulWidget {
5754 final bool disableShadow;
5855 final String svgAssetName;
5956 final Offset translationOffset;
60- final ParallaxBackgroundSettings settings;
57+ final ParallaxBackgroundSettings ? settings;
6158 final bool autoXScale;
6259 final bool autoYScale;
6360
@@ -109,7 +106,7 @@ class _ParallaxSvgBackgroundState extends State<ParallaxSvgBackground> {
109106 ),
110107 );
111108 if (_needsRepaint == true ) {
112- WidgetsBinding .instance.addPostFrameCallback (
109+ WidgetsBinding .instance! .addPostFrameCallback (
113110 (_) => setState (() => _needsRepaint = false ));
114111 }
115112 return result;
@@ -138,37 +135,37 @@ class _ParallaxBackgroundPainter extends CustomPainter {
138135 this .screenSize,
139136 });
140137
141- final bool disableDeepEffect;
142- final bool disableShadow;
143- final bool needsRepaint;
144- final DrawableRoot drawableRoot;
145- final Offset translationOffset;
146- final ParallaxBackgroundSettings settings;
147- final bool autoXScale;
148- final bool autoYScale;
149- final Size screenSize;
138+ final bool ? disableDeepEffect;
139+ final bool ? disableShadow;
140+ final bool ? needsRepaint;
141+ final DrawableRoot ? drawableRoot;
142+ final Offset ? translationOffset;
143+ final ParallaxBackgroundSettings ? settings;
144+ final bool ? autoXScale;
145+ final bool ? autoYScale;
146+ final Size ? screenSize;
150147
151148 @override
152149 void paint (Canvas canvas, Size size) async {
153150 canvas.save ();
154151 if (translationOffset != null ) {
155- canvas.translate (translationOffset.dx, translationOffset.dy);
152+ canvas.translate (translationOffset! .dx, translationOffset! .dy);
156153 }
157154
158155 double scaleXFactor = 1 ;
159156 double scaleYFactor = 1 ;
160157
161158 if (autoXScale == true ) {
162- scaleXFactor = screenSize.width / drawableRoot.viewport.width;
159+ scaleXFactor = screenSize! .width / drawableRoot! .viewport.width;
163160 }
164161 if (autoYScale == true ) {
165- scaleYFactor = screenSize.height / drawableRoot.viewport.height;
162+ scaleYFactor = screenSize! .height / drawableRoot! .viewport.height;
166163 }
167164
168165 canvas.scale (scaleXFactor, scaleYFactor);
169166
170- drawableRoot.clipCanvasToViewBox (canvas);
171- _drawPath (canvas, drawableRoot);
167+ drawableRoot! .clipCanvasToViewBox (canvas);
168+ _drawPath (canvas, drawableRoot! );
172169
173170 canvas.restore ();
174171 }
@@ -187,16 +184,17 @@ class _ParallaxBackgroundPainter extends CustomPainter {
187184 DrawableStyle (
188185 fill: DrawablePaint (
189186 PaintingStyle .fill,
190- color: settings.shadowColor,
191- maskFilter: MaskFilter .blur (BlurStyle .normal, settings.shadowSigma),
187+ color: settings! .shadowColor,
188+ maskFilter:
189+ MaskFilter .blur (BlurStyle .normal, settings! .shadowSigma),
192190 ),
193191 ),
194192 );
195193
196194 canvas.save ();
197195
198196 canvas.transform (deepEffectMatrix);
199- shadowDrawable.draw (canvas, null );
197+ shadowDrawable.draw (canvas, Rect .zero );
200198
201199 canvas.restore ();
202200 }
@@ -214,12 +212,12 @@ class _ParallaxBackgroundPainter extends CustomPainter {
214212 canvas.save ();
215213
216214 canvas.transform (deepEffectMatrix);
217- drawable.draw (canvas, null );
218- deepDrawable.draw (canvas, null );
215+ drawable.draw (canvas, Rect .zero );
216+ deepDrawable.draw (canvas, Rect .zero );
219217
220218 canvas.restore ();
221219 }
222220
223- drawable.draw (canvas, null );
221+ drawable.draw (canvas, Rect .zero );
224222 }
225223}
0 commit comments