2010-11-03 2 views
1

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

ответ

5

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

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

+0

понимается, спасибо – heximal

 Смежные вопросы

  • Нет связанных вопросов^_^