18

CAReplicatorLayer の興味深い点:

  • 非常に効率的に異なる変換を使用して CALayer を複数回表示できます (どのように?)
  • どういうわけか、複製されたレイヤーの「バッキング ストア」を再利用し、それにいくつかの色合いを適用しているようです (どのように?)

ソースコードを手に入れるか、CAReplicatorLayer の背後にある魔法についての知識を得たいと思います。CAReplicatorLayer に似た CALayer クラスが必要ですが、より詳細に制御できます。レプリケートされたインスタンスごとに個別に変換を制御したいと考えています。

したがって、まったく別の方法で質問されました。CALayer の「バッキング ストア」を取得して、それを何度でも表示することは可能ですか?

(「バッキング ストア」とは、CALayer/UIView のレンダリングされたテクスチャを意味します。CoreAnimation/QuartzCore のフードの下で何が起こっているかについてはあまり知りません)。


CALayer を UIImage にレンダリングするなどの代替手段を検討していない理由:

  • パフォーマンス
  • コンテンツはトランジションの下で動的/かなり頻繁に変更されます
  • 他の方法でそれを行うのは本当に素晴らしいことです!
4

1 に答える 1

9

CAReplicatorLayerやCAGradientLayerなどの特殊用途のCALayerは、(プライベートAPIを介して)高速の塗りつぶしまたはコピーを使用して、GPU上で直接描画を実行できます。ある意味では、バッキングストアが通常のRAMではなく、GPUに直接存在するという点で異なります。

于 2012-12-13T06:12:03.530 に答える