CGImage от CAMetalLayer - PullRequest
       42

CGImage от CAMetalLayer

2 голосов
/ 30 марта 2019

Я настроил пользовательский iOS UIView, который отображает список слоев, одним из которых является CAMetalLayer. Я пытался нарисовать тот же контент для изображения в CGContext. Я пытался извлечь содержимое слоя, чтобы построить CGImage, но не смог найти хороший путь.

Во-первых, я пытался асинхронно извлечь содержимое кадрового буфера с помощью обратного вызова addCompletedHandler(), но асинхронный характер обратного вызова не работал хорошо с CGContext.

Я также пытался извлечь содержимое CAMetalLayer с помощью свойства layer.contents, но, очевидно, тип contents - CAImageQueue, который не имеет документации или предоставляется через API.

Я также пытался визуализировать слой прямо на CGContext, например, так:

layer.render(in: cgContext)

но это тоже не принесло никаких результатов.

Наконец, все, что мне нужно сделать, это извлечь байты, составляющие текстуру слоя, и я мог бы создать свой собственный CGImage с нуля.

...