Here’s the setup:
I have a NSView which is a CALayer-backed view, and contains many CALayers. I have a CALayer for the ‘background’ of the view, and many small CALayers which are sublayers. Sometimes this view can be very big (as large as 2560×1400), and when it does there is a very noticeable lag in the CALayers. My guess is that Core Animation has some trouble with very large CALayers.
So, I would like to change this ‘background’ layer from being a CALayer to maybe a CGLayer or something, where it would be rendered like a normal CGLayer into the view. However, on top of it, the small CALayers would still operate just as they do now. That way I only have small CALayers, the ‘background’ layer can be cached in a CGLayer, and hopefully the performance will significantly increase.
Anyone know how this could be accomplished?
After researching more, it doesn’t look like this can be accomplished. An NSView is either CALayer-backed, or it’s not.