@@ -390,7 +390,7 @@ extension LayerTree {
390390 commands. append ( contentsOf: renderCommands ( forTransforms: gradient. transform) )
391391 }
392392
393- let converted = apply ( colorConverter : colorConverter , to : gradient. gradient)
393+ let converted = gradient. gradient. convertColor ( using : colorConverter )
394394 let gradient = provider. createGradient ( from: converted)
395395 let start = provider. createPoint ( from: pathStart)
396396 let end = provider. createPoint ( from: pathEnd)
@@ -434,7 +434,7 @@ extension LayerTree {
434434 commands. append ( contentsOf: renderCommands ( forTransforms: gradient. transform) )
435435 }
436436
437- let converted = apply ( colorConverter : colorConverter , to : gradient. gradient)
437+ let converted = gradient. gradient. convertColor ( using : colorConverter )
438438 let gradient = provider. createGradient ( from: converted)
439439 let apha = provider. createFloat ( from: opacity)
440440 commands. append ( . setAlpha( apha) )
@@ -464,9 +464,16 @@ private extension LayerTree.Rect {
464464 }
465465}
466466
467- private func apply( colorConverter: ColorConverter , to gradient: LayerTree . Gradient ) -> LayerTree . Gradient {
468- let stops = gradient. stops. map { apply ( colorConverter: colorConverter, to: $0) }
469- return LayerTree . Gradient ( stops: stops)
467+
468+ private extension LayerTree . Gradient {
469+ func convertColor( using converter: ColorConverter ) -> LayerTree . Gradient {
470+ let stops : [ LayerTree . Gradient . Stop ] = stops. map { stop in
471+ var stop = stop
472+ stop. color = converter. createColor ( from: stop. color) . withMultiplyingAlpha ( stop. opacity)
473+ return stop
474+ }
475+ return LayerTree . Gradient ( stops: stops)
476+ }
470477}
471478
472479private func apply( colorConverter: ColorConverter , to stop: LayerTree . Gradient . Stop ) -> LayerTree . Gradient . Stop {
0 commit comments