Рендеринг CALayer несколько раз - PullRequest
0 голосов
/ 18 декабря 2018

Я пытался найти лучший способ показать существующий CALayer во вторичном окне, чтобы обеспечить полноэкранный вывод в режиме реального времени на вторичном мониторе.Кроме того, я хотел бы иметь возможность показывать миниатюры в реальном времени в моем приложении исходного CALayer, похоже, я должен быть в состоянии найти установку, которая могла бы удовлетворить оба требования.

Пока мои исследования привелив следующих опциях:

  1. CALayer.render (in: CGContext) Использование исходного слоя и перерисовка его в дополнительные представления таким образом и настройка таймера или CVDisplayLink для перерисовкиэто каждый кадр.
  2. Рендеринг CALayer в NSBitmap каждый кадр. И использование этого растрового изображения в NSImageView по всему приложению.
  3. Использование CAMetalLayer и рендерингТекстурируйте несколько раз, используя MTKView. Я не очень знаком с Metal, это кажется довольно элегантным решением, но я не уверен, нужно ли идти до самого Metal.
  4. Использование CARemoteLayerServer с CARemoteLayerServer. Это кажется слишком сложной настройкой для текущих процессов.харинг CALayer, и кажется, что этот подход более подходит, если бы мне нужно было использовать кросс-процесс слоя.
  5. Использование CAReplicatorLayer. Вместо использования слоя репликатора для созданиясетка копий Я пытался использовать ее для создания только одной копии, но кажется, что вы не можете добавить CALayer к нескольким «родительским слоям».

В общем, я нашел несколько работоспособных решений,но, поскольку я довольно новичок в работе с Core Animation, я не уверен, какое направление является наименее ресурсоемким, и мне все еще не хватает более простого решения.

Кто-нибудь пробовал что-то подобное?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...