Я спросил перед тем, как поднять пиксель, и теперь удалось получить достаточно далеко, чтобы получить шум, который появляется на экране. Вот как я INIT:Как нажимать пиксели быстрее на iPhone?
CGDataProviderRef provider;
bitmap = malloc(320*480*4);
provider = CGDataProviderCreateWithData(NULL, bitmap, 320*480*4, NULL);
CGColorSpaceRef colorSpaceRef;
colorSpaceRef = CGColorSpaceCreateDeviceRGB();
ir = CGImageCreate(
320,
480,
8,
32,
4 * 320,
colorSpaceRef,
kCGImageAlphaNoneSkipLast,
provider,
NULL,
NO,
kCGRenderingIntentDefault
);
Вот как я сделать каждый кадр:
for (int i=0; i<320*480*4; i++) {
bitmap[i] = rand()%256;
}
CGRect rect = CGRectMake(0, 0, 320, 480);
CGContextDrawImage(context, rect, ir);
Проблема в том, что это ужасно ужасно медленным, вокруг 5fps. Я думаю, что мой путь публикации буфера должен быть неправильным. Возможно ли вообще делать полноэкранную графику на основе пикселей, которую я мог бы обновить со скоростью 30 кадров в секунду, не используя 3D-чип?
Ok, профилированные немного. Кажется, он раскололся довольно равномерно, даже если я вообще не выполняю настройку rand() и просто вызываю CGContextDrawImage, все еще 50% процессора расходуется. Я постараюсь выяснить, не ускорит ли ваши другие предложения. – Bemmu 2008-10-13 02:45:38