Я бы предложил реализовать алгоритм, аналогичный тому, который подробно описан в этой статье, с использованием OpenGL ES 2.0 для достижения максимальной производительности.
- Получить исходное изображение в качестве текстуры
- Установитькадровый буфер рендеринга в текстуру
- Визуализация исходного изображения в квадрате
- Визуализация другого квадрата размером кисти с немного смещенным видом изображения, умноженным на альфа-маску, хранящуюся втекстура или определяется, например, гауссовой функцией.Используйте альфа-смешение с фоновым квадратом.
- Визуализация этой текстуры в буфер кадров, связанный с вашим представлением на основе CAEAGLLayer
- Переходите к 1 в следующем событии -touchesMoved с результатом предыдущегорендеринг в качестве входа.Имейте в виду, что вам понадобится 2 объекта текстуры для пинг-понга, поскольку вы не можете одновременно читать и писать на одну и ту же текстуру.
Я думаю, что вы вряд ли 'мы получим отличную производительность процессора, но это определенно проще настроить.В этой настройке, однако, вы можете иметь практически неограниченный размер кисти и т. Д., И вы не зацикливаетесь на коде рисования изображения.
Хотя вам любопытно, какую производительность вы получаете на процессоре.Береги :))