ios - ¿Cuál es la magia detrás de CAReplicatorLayer?
core-animation calayer (1)
Los CALayers de propósito especial como CAReplicatorLayer o CAGradientLayer pueden (a través de las API privadas) ejecutar su dibujo directamente en la GPU mediante un rápido llenado o copia. En cierto sentido, son diferentes, de modo que el almacén de respaldo no está en la RAM normal, sino directamente en la GPU.
Lo que me parece interesante con CAReplicatorLayer:
- Es capaz de mostrar un CALayer varias veces con diferentes transformaciones de manera muy eficiente (¿cómo?)
- Parece que de alguna manera reutiliza el "almacén de respaldo" para la capa replicada e incluso le aplica algunos tonos de color (¿cómo?)
Me gustaría obtener el código fuente u obtener algún conocimiento de la magia detrás de CAReplicatorLayer. Me gustaría tener una clase CALayer similar a CAReplicatorLayer, pero con más control. Me gustaría tener el control de la transformación individualmente para cada instancia replicada .
Así que pregunte de una manera totalmente diferente: ¿es posible obtener el "almacén de respaldo" para un CALayer y mostrarlo como quiera tantas veces como quiera?
(por "tienda de respaldo" me refiero a la textura renderizada para CALayer / UIView. No sé mucho sobre lo que está sucediendo bajo los capítulos de CoreAnimation / QuartzCore).
Por qué no estoy buscando alternativas como, por ejemplo, renderizar el CALayer a un UIImage:
- Actuación
- El contenido es dinámico / cambia con bastante frecuencia en las transiciones
- ¡Sería increiblemente increíble hacerlo de la otra manera!