Наше приложение использует glreadpixels для захвата экрана на каждом кадре.На устройствах iOS 5, когда вы получаете текстовое сообщение (или любое другое уведомление, я полагаю), приложение вылетает при вызове glreadpixels
.
Сбой происходит только на iOS 5 с новым стилем уведомлений(те, которые скользят сверху вниз и вскоре исчезают).На iOS 4 старые уведомления в стиле UIAlertView
работают нормально.
В частности, вызов glReadPixels()
вызывает ошибку EXEC_BAD_ACCESS
.
Конкретный вызов
glReadPixels(0,0,tx,ty,GL_BGRA_EXT,GL_UNSIGNED_BYTE, buffer);
Где
int tx = 482
int ty = 320
(приложение находится только в альбомном режиме)
и
GLubyte *buffer = malloc(sizeof(GLubyte)* 4 * tx * ty );
Мы также пытались проверить состояние буфера кадра перед выдачейКоманда чтения glCheckFramebufferStatus(GL_FRAMEBUFFER)
всегда возвращает GL_FRAMEBUFFER_COMPLETE
.
Является ли это ошибкой в реализации нового всплывающего уведомления?Как мы можем обойти это?Если мы сможем как-то обнаружить, что уведомление должно появиться, и приостановить вызов на glreadpixels
, пока оно не исчезнет, это также будет приемлемо.
Спасибо,
Тим