mirror of
https://github.com/divkit/divkit.git
synced 2026-06-06 20:07:59 +00:00
3a7a3166a3
Add metal renderer for tint color. Добавил метал вью для рендеринга картинок. Подтянул новый алгоритм сравнения снепшотов. Обновил часть снепшотов (проверили, что все ок). Немного обновил RemoteImageViewContainer.
47 lines
1.7 KiB
Swift
47 lines
1.7 KiB
Swift
import Foundation
|
|
|
|
import CommonCore
|
|
import Networking
|
|
import LayoutKit
|
|
|
|
extension DivImage: DivBlockModeling, DivImageProtocol {
|
|
public func makeBlock(context: DivBlockModelingContext) throws -> Block {
|
|
try applyBaseProperties(
|
|
to: { try makeBaseBlock(context: context) },
|
|
context: context,
|
|
actions: makeActions(context: context.actionContext),
|
|
actionAnimation: actionAnimation.makeActionAnimation(with: context.expressionResolver),
|
|
doubleTapActions: makeDoubleTapActions(context: context.actionContext),
|
|
longTapActions: makeLongTapActions(context: context.actionContext)
|
|
)
|
|
}
|
|
|
|
private func makeBaseBlock(context: DivBlockModelingContext) throws -> Block {
|
|
try checkLayoutTraits(context: context)
|
|
|
|
|
|
let expressionResolver = context.expressionResolver
|
|
let highPriority = resolveHighPriorityPreviewShow(expressionResolver)
|
|
let imageHolderFactory: ImageHolderFactory
|
|
if highPriority, let highPriorityImageHolderFactory = context.highPriorityImageHolderFactory {
|
|
imageHolderFactory = highPriorityImageHolderFactory
|
|
} else {
|
|
imageHolderFactory = context.imageHolderFactory
|
|
}
|
|
|
|
let imageHolder = imageHolderFactory.make(
|
|
resolveImageUrl(expressionResolver),
|
|
resolvePlaceholder(expressionResolver)
|
|
)
|
|
return ImageBlock(
|
|
imageHolder: imageHolder,
|
|
widthTrait: makeContentWidthTrait(with: context),
|
|
height: resolveHeight(context),
|
|
contentMode: resolveContentMode(expressionResolver),
|
|
tintColor: resolveTintColor(expressionResolver),
|
|
metalImageRenderingEnabled: context.flagsInfo.metalImageRenderingEnabled,
|
|
appearanceAnimation: appearanceAnimation?.makeAppearanceAnimation(with: expressionResolver)
|
|
)
|
|
}
|
|
}
|