#iphone #opengl-es #eaglview #cadisplaylink
#iPhone #opengl-es #eaglview #cadisplaylink
Вопрос:
В настоящее время я использую CADisplayLink
для показа анимацию OpenGL, которая отлично работает. Однако иногда параметр изменяется, и мне нужно немедленно перерисовать представление, и я не могу ждать, пока следующий кадр не будет запрошен CADisplayLink
. Если я этого не сделаю, у меня получится неправильный кадр, который в моем случае выглядит действительно плохо.
Итак, как я могу принудительно перерисовать, EAGLView
не вмешиваясь в CADisplayLink
материал?
Ответ №1:
Например, если ваша CADisplayLink вызывает метод drawFrame, тогда просто вызовите drawFrame самостоятельно, когда вам нужно. Нет причин, по которым вам нужно ждать CADisplayLink, если вы этого не хотите.
Ответ №2:
Ваш вопрос предполагает, что вы храните свои данные в своем представлении, а не в объекте данных. Вы должны иметь возможность изменять свои данные в любое время, и ваш вид должен обновляться, когда это необходимо для отображения. Переместите данные в объект модели и сделайте так, чтобы EAGLView
сам отрисовывался на основе данных по запросу из CADisplayLink
, а не перерисовывался при изменении данных.