В методе Apple используется glReadPixels()
, который просто перетаскивает все данные из буфера дисплея и, вероятно, запускает барьеры синхронизации и т. Д. Между графическим процессором и процессором.Вы не можете сделать эту часть быстрее или с меньшим разрешением.
Вы делаете это, чтобы создать одноразовое видео?Или вы хотите, чтобы пользователь мог запускать это поведение в рабочем коде?Если первое, вы могли бы сделать все виды хитрости, чтобы ускорить его - рендеринг в меньший размер для всего, не present
вообще и просто захватывать кадры на основе записи входных данных, поступающих в игру,или другие подобные трюки, или еще больше запустите всю эту симуляцию на половинной скорости, чтобы получить все кадры.
Я менее полезен, если вам нужна действительная внутриигровая функция для этого.Возможно, кто-то еще будет.