Управление памятью OpenGl на iOS - PullRequest
0 голосов
/ 23 декабря 2010

У меня есть UITableView с пользовательскими ячейками. Эти ячейки содержат каждый рисунок OpenGL (диаграмма графика). Когда я прокручиваю таблицу, и ячейки становятся скрытыми, ячейки начинают процесс уничтожения объектов, таких как GLViewController и GLView. Как вы знаете, GLView имеет такой метод: destroyFramebuffer, который очищает выделенный буфер для рисунков OpenGL. Моя проблема возникает, когда я пытаюсь прокрутить таблицу очень-очень быстро. Подскажите пожалуйста это проблема фреймворка, который не удается очистить буферы или как я мог решить эту вещь ??

1 Ответ

1 голос
/ 23 декабря 2010

Это чертовски плохая идея иметь несколько GL-представлений в ячейках таблицы. Каждое представление GL выделяет много памяти, и уничтожение буферов GL также требует некоторого времени, что вы можете видеть во время быстрой прокрутки. Вам следует изменить дизайн приложения, чтобы использовать только один вид GL (например, сделать его скрытым, построить на нем графики, поймать изображение в UIImage и показать только его в ячейке таблицы).

...