Как ускорить кварц 2д

У меня сцена хранится в массиве как набор фигур, представленных последовательностью точек. Я рисую эту сцену с помощью функций CGContextMoveToPoint, CGContextAddLineToPoint, CGContextSetFillColorWithColor и CGContextFillPath. Проблема в том, что мне нужно перерисовать сцену по событию таймера с коротким интервалом (0,01 сек), а перерисовка сцены происходит очень медленно. Есть ли способ ускорить это? Или мне может помочь только OpenGLES?


person heximal    schedule 03.11.2010    source источник


Ответы (1)


Графика Quartz 2D (Core Graphics) не ускоряется на iPhone. Заполнение пути, вероятно, также связано с процессором. Если вам нужно аппаратное ускорение, вам придется преобразовать вашу сцену в OpenGL ES (треугольные полосы и текстуры). Даже при использовании OpenGL ES вам придется достаточно хорошо оптимизировать графику, чтобы получить частоту кадров 60 Гц (0,017 секунды).

Еще одна возможность - предварительно отрендерить ваши формы в CALayers и просто анимировать слои (масштабировать, повернуть, наложить, скрыть и т. Д.) Анимация CALayer также поддерживается аппаратно.

person hotpaw2    schedule 03.11.2010