@@ -73,10 +73,10 @@ class SkiaShadowFlags {
7373// material spec.
7474const double ckShadowAmbientAlpha = 0.039 ;
7575const double ckShadowSpotAlpha = 0.25 ;
76- const double ckShadowLightRadius = 1.1 ;
77- const double ckShadowLightHeight = 600.0 ;
7876const double ckShadowLightXOffset = 0 ;
7977const double ckShadowLightYOffset = - 450 ;
78+ const double ckShadowLightHeight = 600 ;
79+ const double ckShadowLightRadius = 800 ;
8080const double ckShadowLightXTangent = ckShadowLightXOffset / ckShadowLightHeight;
8181const double ckShadowLightYTangent = ckShadowLightYOffset / ckShadowLightHeight;
8282
@@ -161,13 +161,15 @@ void drawSkShadow(
161161 bool transparentOccluder,
162162 double devicePixelRatio,
163163) {
164- final int flags = transparentOccluder
164+ int flags = transparentOccluder
165165 ? SkiaShadowFlags .kTransparentOccluderShadowFlags
166166 : SkiaShadowFlags .kDefaultShadowFlags;
167+ flags | = SkiaShadowFlags .kDirectionalLight_ShadowFlag;
167168
168169 final ui.Color inAmbient =
169170 color.withAlpha ((color.alpha * ckShadowAmbientAlpha).round ());
170- final ui.Color inSpot = color.withAlpha ((color.alpha * ckShadowSpotAlpha).round ());
171+ final ui.Color inSpot =
172+ color.withAlpha ((color.alpha * ckShadowSpotAlpha).round ());
171173
172174 final SkTonalColors inTonalColors = SkTonalColors (
173175 ambient: makeFreshSkColor (inAmbient),
@@ -180,10 +182,10 @@ void drawSkShadow(
180182 path.skiaObject,
181183 Float32List (3 )..[2 ] = devicePixelRatio * elevation,
182184 Float32List (3 )
183- ..[0 ] = ckShadowLightXOffset
184- ..[1 ] = ckShadowLightYOffset
185- ..[2 ] = devicePixelRatio * ckShadowLightHeight ,
186- devicePixelRatio * ckShadowLightRadius ,
185+ ..[0 ] = 0
186+ ..[1 ] = - 1
187+ ..[2 ] = 1 ,
188+ ckShadowLightRadius / ckShadowLightHeight ,
187189 tonalColors.ambient,
188190 tonalColors.spot,
189191 flags.toDouble (),
0 commit comments