mirror of
https://github.com/divkit/divkit.git
synced 2026-06-06 20:07:59 +00:00
52ccd56888
Прогнал форматтер на всех файлах.
68 lines
2.2 KiB
Swift
68 lines
2.2 KiB
Swift
import CoreGraphics
|
|
import Foundation
|
|
|
|
import Base
|
|
import BaseUI
|
|
import LayoutKit
|
|
import Networking
|
|
|
|
extension DivBackground {
|
|
func makeBlockBackground(
|
|
with imageHolderFactory: ImageHolderFactory,
|
|
expressionResolver: ExpressionResolver,
|
|
metalImageRenderingEnabled: Bool
|
|
) -> LayoutKit.Background? {
|
|
switch self {
|
|
case let .divLinearGradient(gradient):
|
|
return .gradient(
|
|
.linear(
|
|
Gradient.Linear(
|
|
colors: gradient.resolveColors(expressionResolver) ?? [],
|
|
angle: gradient.resolveAngle(expressionResolver)
|
|
)
|
|
)
|
|
)
|
|
case let .divRadialGradient(gradient):
|
|
return .gradient(
|
|
.radial(
|
|
Gradient.Radial(
|
|
colors: gradient.resolveColors(expressionResolver) ?? [],
|
|
end: gradient.resolveRadius(expressionResolver),
|
|
centerX: gradient.resolveCenterX(expressionResolver),
|
|
centerY: gradient.resolveCenterY(expressionResolver)
|
|
)
|
|
)
|
|
)
|
|
case let .divImageBackground(imageBackground):
|
|
let image = BackgroundImage(
|
|
imageHolder: imageHolderFactory.make(
|
|
imageBackground.resolveImageUrl(expressionResolver)
|
|
),
|
|
contentMode: imageBackground.resolveContentMode(expressionResolver),
|
|
alpha: imageBackground.resolveAlpha(expressionResolver),
|
|
effects: imageBackground.makeEffects(with: expressionResolver),
|
|
metalImageRenderingEnabled: metalImageRenderingEnabled
|
|
)
|
|
return .image(image)
|
|
case let .divSolidBackground(solidBackground):
|
|
return .solidColor(solidBackground.resolveColor(expressionResolver) ?? .black)
|
|
case let .divNinePatchBackground(ninePatchBackground):
|
|
let image = NinePatchImage(
|
|
imageHolder: imageHolderFactory.make(
|
|
ninePatchBackground.resolveImageUrl(expressionResolver)
|
|
),
|
|
insets: ninePatchBackground.insets.makeEdgeInsets(with: expressionResolver)
|
|
)
|
|
return .ninePatchImage(image)
|
|
}
|
|
}
|
|
}
|
|
|
|
extension DivImageBackground: DivImageContentMode {}
|
|
|
|
extension DivImageBackground {
|
|
fileprivate func makeEffects(with resolver: ExpressionResolver) -> [ImageEffect] {
|
|
filters?.compactMap { $0.makeImageEffect(with: resolver) } ?? []
|
|
}
|
|
}
|