ipad 3 - ошибка openGL с kEAGLDrawablePropertyRetainedBacking и сетчатка? - PullRequest
9 голосов
/ 18 марта 2012

У меня есть приложение openGL для iOS, которое использует свойство kEAGLDrawablePropertyRetainedBacking для рисования текущего кадра поверх предыдущего кадра. это дешевый способ получения эффектов, таких как следы движения.

он отлично работает на всех устройствах (включая iPhone с сетчаткой) и на всех симуляторах устройств, но на реальном устройстве iPad 3 предыдущий кадр вертикально сжимается до 75% от своего предыдущего размера.

например, если бы я рисовал квадрат 100 х 100 внизу экрана каждый кадр, затем в кадре 0 у меня есть один квадрат, в кадре 2 - эхо-сигнал размером 100 x 75 с смещением к верхней части экрана, в третьем кадре - дополнительное эхо-сигнал размером 100 x 56 (56 ~ = 75 * 0,75) и более смещение к вершине и так далее. должно случиться так, что все эхо остаются на месте.

Я проверил поведение на двух устройствах, поэтому не думаю, что это просто сломанный iPad.

есть идеи?

ТИА, Орион

Ответы [ 2 ]

3 голосов
/ 05 августа 2012

Я видел эту ошибку. Я ничего не знаю об OpenGL, поэтому я не мог действительно разобраться с решением с помощью текстур, как это было предложено, но в моем случае я смог переключиться на очень быструю реализацию рисования Quartz 2D на основе учебника из http://blog.effectiveui.com/?p=8105, плюс, как заставить его работать на Retina с https://stackoverflow.com/a/10870188/255489. На самом деле все оказалось гораздо быстрее, чем код, который я позаимствовал из примера кода Apple GLPaint.

1 голос
/ 09 октября 2012

Это была подтвержденная ошибка с сохраненной поддержкой и Retina iPad в iOS 5.x. С тех пор это было исправлено в iOS 6.0 и выше.

...