У меня есть сцена, хранящаяся в массиве как коллекция форм, которая представлена последовательностью точек. Я рисую эту сцену с функциями CGContextMoveToPoint, CGContextAddLineToPoint, CGContextSetFillColorWithColor и CGContextFillPath. Проблема в том, что мне нужно перерисовать сцену на событии таймера с коротким интервалом (0,01 сек), а перерисовка сцены происходит очень медленно. Есть ли способ ускорить этот материал? Или мне могут помочь только OpenGLES?Как ускорить кварц 2d
1
A
ответ
5
Кристаллы 2D (Core Graphics) графики не ускоряются на iPhone. Потоки пути также, вероятно, связаны с ЦП. Если вам требуется аппаратное ускорение, вам нужно будет преобразовать свою сцену в OpenGL ES (треугольные полосы и текстуры). Даже используя OpenGL ES, вам нужно будет оптимизировать свою графику достаточно хорошо, чтобы получить частоту кадров 60 Гц (0,017 сек).
Еще одна возможность - предварительно визуализировать ваши фигуры в CALayers и просто анимировать слои (масштабировать, вращать, накладывать, скрывать и т. Д.). CALayer-анимация также аппаратная.
понимается, спасибо – heximal