Самый быстрый способ отображения пиксельного растра на устройствах iOS - PullRequest
3 голосов
/ 28 ноября 2010

Мне интересно, какой самый быстрый способ рендерить пиксельный растр из памяти на экран устройств iOS, чтобы достичь максимально возможной частоты кадров. Я могу изобразить два подхода:

  1. Создайте CGImage с помощью CGImageCreate, нарисуйте его на экране с помощью CGContextDrawImage в методе drawRect, а затем удалите объект CGImage
  2. Используйте OpenGL в орфографическом режиме, скопируйте пиксели в текстуру с помощью glTexImage2D и визуализируйте квад с этой текстурой

Вероятно, второй подход будет быстрее, чем первый. Но будет ли это значительно быстрее или чуть-чуть? И есть ли третий способ сделать это, который будет быстрее, чем первые два, которые я упомянул?

1 Ответ

0 голосов
/ 28 ноября 2010

Если ваше изображение часто обновляется, создание текстуры в каждом кадре (или почти в каждом кадре) будет настоящим ударом по производительности.Возможно, вам повезет больше, если использовать CALayer и установить для его свойства содержимое значение CGImageRef, которое вы хотите использовать.Результат будет аналогичен использованию CGContextDrawImage(), как вы описали, но обеспечит Core Animation большую гибкость при рендеринге, надеюсь, сделает его быстрее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...