Отключить частоту кадров на металлическом API для IOS - PullRequest
1 голос
/ 15 октября 2019

У меня есть приложение, которое должно обновлять ничью только при обнаружении панорамирования на экране. По этой причине я не выполняю рендеринг в методе drawInMTKView, вместо этого у меня есть метод, который запускается при обнаружении панорамирования, и я выполняю там необходимое кодирование. Как я могу отключить частоту кадров (и с ней автоматические вызовы на drawInMTKView)?

Ответы [ 2 ]

1 голос
/ 15 октября 2019

Вы по-прежнему можете выполнять рендеринг по требованию в drawInMTKView:, задав для свойств paused и enableSetNeedsDisplay представления оба значения true. Затем, всякий раз, когда вы вызываете метод setNeedsDisplay в представлении, метод draw будет вызываться как часть обычного цикла обновления дисплея.

0 голосов
/ 15 октября 2019

Свойство enableSetNeedsDisplay управляет поведением делегата представления. Установите значение NO, чтобы избежать запуска делегата setNeedsDisplay. Установите для свойства paused значение YES, чтобы избежать внутреннего обратного вызова, вызванного внутренним таймером.

mtkView.enableSetNeedsDisplay = NO;
mtkView.paused = YES;

Если вы хотите нарисовать, вызовите метод draw. Это вызовет drawInMTKView:

[mtkView draw];
...