Смешивание CGLayers и CALayers

Вот установка:

У меня есть NSView, который является представлением с поддержкой CALayer и содержит много CALayers. У меня есть CALayer для «фона» представления и много маленьких CALayer'ов, которые являются подслоями. Иногда это представление может быть очень большим (вплоть до 2560x1400), и когда это происходит, наблюдается очень заметное отставание в CALayers. Я предполагаю, что у Core Animation есть проблемы с очень большими CALayers.

Итак, я хотел бы изменить этот «фоновый» слой с CALayer на CGLayer или что-то в этом роде, где он будет отображаться как обычный CGLayer в представлении. Однако, помимо этого, маленькие CALayers по-прежнему будут работать так же, как и сейчас. Таким образом, у меня есть только маленькие CALayers, «фоновый» слой можно кэшировать в CGLayer, и, надеюсь, производительность значительно увеличится.

Кто-нибудь знает, как это можно сделать?


person CJ.    schedule 30.09.2010    source источник


Ответы (1)


После дополнительных исследований, похоже, это невозможно. NSView либо поддерживается CALayer, либо нет.

person CJ.    schedule 15.10.2010