Принудительно перерисовать с CADisplayLink - PullRequest
0 голосов
/ 20 мая 2011

В настоящее время я использую CADisplayLink, чтобы показать анимацию OpenGL, которая прекрасно работает. Однако иногда параметр изменяется, и мне нужно немедленно перерисовать представление, и я не могу дождаться следующего запроса кадра CADisplayLink. Если я этого не сделаю, я получу один кадр неправильно, что в моем случае выглядит очень плохо.

Итак, как я могу вызвать перерисовку EAGLView, не мешая CADisplayLink материалу?

Ответы [ 2 ]

0 голосов
/ 27 июля 2011

Если ваш CADisplayLink, например, вызывает метод drawFrame, просто вызовите drawFrame самостоятельно, когда вам нужно.Нет причин, по которым вам нужно ждать CADisplayLink, если вы этого не хотите.

0 голосов
/ 20 мая 2011

Ваш вопрос предполагает, что вы храните свои данные в своем представлении, а не в объекте данных.Вы должны иметь возможность изменять свои данные в любое время, и ваш вид должен обновляться, когда это необходимо для отображения.Переместите данные в объект модели и заставьте EAGLView рисовать себя на основе данных при запросе от CADisplayLink, а не перерисовывать себя при изменении данных.

...