Skip to content

Commit

Permalink
Merge pull request airbnb#1040 from airbnb/btw/renderScaleBug
Browse files Browse the repository at this point in the history
Fix render scales
  • Loading branch information
buba447 committed Nov 4, 2019
2 parents 5d836e5 + 52e6cfd commit 44136b4
Show file tree
Hide file tree
Showing 6 changed files with 34 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,11 @@ class CompositionLayer: CALayer, KeypathSearchable {

let matteType: MatteType?

var renderScale: CGFloat = 1
var renderScale: CGFloat = 1 {
didSet {
self.updateRenderScale()
}
}

var matteLayer: CompositionLayer? {
didSet {
Expand Down Expand Up @@ -137,6 +141,10 @@ class CompositionLayer: CALayer, KeypathSearchable {
var keypathLayer: CALayer? {
return contentsLayer
}

func updateRenderScale() {
self.contentsScale = self.renderScale
}
}

protocol CompositionLayerDelegate: class {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,6 @@ final class PreCompositionLayer: CompositionLayer {
let remappingNode: NodeProperty<Vector1D>?
fileprivate var animationLayers: [CompositionLayer]

override var renderScale: CGFloat {
didSet {
animationLayers.forEach( { $0.renderScale = renderScale } )
}
}

init(precomp: PreCompLayerModel,
asset: PrecompAsset,
layerImageProvider: LayerImageProvider,
Expand Down Expand Up @@ -101,4 +95,9 @@ final class PreCompositionLayer: CompositionLayer {
}
return ["Time Remap" : remappingNode]
}

override func updateRenderScale() {
super.updateRenderScale()
animationLayers.forEach( { $0.renderScale = renderScale } )
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,6 @@ final class ShapeCompositionLayer: CompositionLayer {
let rootNode: AnimatorNode?
let renderContainer: ShapeContainerLayer?

override var renderScale: CGFloat {
didSet {
renderContainer?.renderScale = renderScale
}
}

init(shapeLayer: ShapeLayerModel) {
let results = shapeLayer.items.initializeNodeTree()
let renderContainer = ShapeContainerLayer()
Expand Down Expand Up @@ -54,4 +48,9 @@ final class ShapeCompositionLayer: CompositionLayer {
fatalError("init(coder:) has not been implemented")
}

override func updateRenderScale() {
super.updateRenderScale()
renderContainer?.renderScale = renderScale
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -206,4 +206,9 @@ final class TextCompositionLayer: CompositionLayer {
textLayer.string = baseAttributedString
textLayer.alignmentMode = text.justification.caTextAlignement
}

override func updateRenderScale() {
super.updateRenderScale()
textLayer.contentsScale = self.renderScale
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ class ShapeContainerLayer: CALayer {

var renderScale: CGFloat = 1 {
didSet {
renderLayers.forEach( { $0.renderScale = renderScale } )
updateRenderScale()
}
}

Expand All @@ -65,4 +65,9 @@ class ShapeContainerLayer: CALayer {
/// Override
}

func updateRenderScale() {
self.contentsScale = self.renderScale
renderLayers.forEach( { $0.renderScale = renderScale } )
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,6 @@ final class ShapeRenderLayer: ShapeContainerLayer {

let shapeLayer: CAShapeLayer = CAShapeLayer()

override var renderScale: CGFloat {
didSet {
renderLayers.forEach( { $0.renderScale = renderScale } )
self.contentsScale = renderScale
}
}

init(renderer: Renderable & NodeOutput) {
self.renderer = renderer
super.init()
Expand Down Expand Up @@ -95,4 +88,8 @@ final class ShapeRenderLayer: ShapeContainerLayer {
renderer.render(ctx)
}

override func updateRenderScale() {
super.updateRenderScale()
shapeLayer.contentsScale = self.renderScale
}
}

0 comments on commit 44136b4

Please sign in to comment.