drawRect performance

Мне нужно нарисовать много полигонов от 500к до миллиона на iPad. Поэкспериментировав, я могу получить только 1 кадр в секунду. Это всего лишь пример, в моем реальном коде есть многоугольники хорошего размера.

Вот несколько вопросов:

  1. Почему мне не нужно добавлять Quartz Framework в мой проект?
  2. Если многие из многоугольников повторяются Могу ли я использовать это с представлениями, или они слишком тяжелые?
  3. Любые альтернативы, QTPaint может справиться с этим, но погружается в графический процессор. Есть ли что-нибудь вроде QT или ios?
  4. Может ли Opengl повысить производительность этого типа 2d?

Пример drawrect:

//X Y Array of boxes

- (void)drawRect:(CGRect)rect
{
    int reset = [self pan].x;
    int markX = reset;
    int markY = [self pan].y;
    CGContextRef context = UIGraphicsGetCurrentContext();
    for(int i = 0; i < 1000; i++)//1,000,000
    {
        for(int j = 0; j < 1000; j++)
        {
            CGContextMoveToPoint(context, markX,  markY);
            CGContextAddLineToPoint(context, markX, markY + 10);
            CGContextAddLineToPoint(context, markX + 10, markY + 10);
            CGContextAddLineToPoint(context, markX + 10, markY);
            CGContextAddLineToPoint(context, markX, markY);
            CGContextStrokePath(context);
            markX+=12;
        }
        markY += 12;
        markX = reset;
    }

}

Панорама просто перемещает массив ящиков по экрану с помощью жеста панорамирования. Будем признательны за любую помощь или подсказки.

5
задан Paul Alexander 20 May 2011 в 08:09
поделиться