Какие части UIKit, Core Graphics, Core Animation, OpenGL разрешены для неосновного потока?

В моем приложении на основе OpenGL-ES 1.1 я использую CALayer в качестве источника текстур OpenGL. Эти CALayer s состоят из CGImage s и текста, отображаемого с помощью CoreGraphics. Другой источник текстуры OpenGL - это снимок экрана UIView , сделанный с использованием - [CALAyer renderInContext:] и UIGraphicsGetImageFromCurrentImageContext . В настоящее время я полностью работаю в основном потоке.

Последний случай, в частности, довольно плох, потому что он останавливает рендеринг OpenGL на все время, необходимое для создания UIView и его снимка экрана.

Сейчас я подумываю переместить код OpenGL в отдельный поток в надежде обойти эту блокировку. В идеале снимок экрана должен быть сделан в другом потоке (при необходимости, в основном потоке), чем при рендеринге OpenGL.

Я не был ' t смог найти в документации полное описание того, что требует запуска в основном потоке, а что нет. Я нашел некоторые комментарии в примечаниях к выпуску iOS 4 и некоторые комментарии в конкретных методах UIKit, но мне не хватает полной картины.

Код работает на iOS 4.x или выше.

6
задан genpfault 29 December 2010 в 17:33
поделиться

0 ответов

Другие вопросы по тегам:

Похожие вопросы: