2012-03-17 10 views
9

tengo una aplicación iOS OpenGL que utiliza la propiedad kEAGLDrawablePropertyRetainedBacking para dibujar el fotograma actual sobre el fotograma anterior. es una forma barata de obtener efectos como los senderos de movimiento.ipad 3 - error OpenGL con kEAGLDrawablePropertyRetainedBacking y retina?

funciona de maravilla en todos los dispositivos (incluido el iPhone w/retina) y todos los simuladores de dispositivos, pero en el dispositivo iPad 3 actual, el fotograma anterior está verticalmente aplastado al 75% de su tamaño anterior.

por ejemplo, si tuviera que dibujar un cuadrado de 100 x 100 en la parte inferior de la pantalla cada cuadro, , entonces en el cuadro 0 tengo un cuadrado, en el cuadro 2 hay un eco de 100 x 75 y desplazamiento hacia en la parte superior de la pantalla, en el cuadro tres hay un eco adicional de 100 x 56 (56 ~ = 75 * 0.75) y está más desplazado hacia la parte superior, y así sucesivamente. lo que debería ocurrir es que todos los ecos permanecen en su lugar.

he verificado el comportamiento en dos dispositivos, por lo que no creo que se trate de un iPad roto.

¿Alguna idea?

tia, Orion

+0

acaba de darse cuenta de que 1536 = 2048 * 0.75, lo que me sugiere que en algún lugar, algún sistema está utilizando el ancho de la imagen tanto para el ancho como para el alto. –

+4

He podido reproducir esto con la aplicación openGL de ejemplo de apple de xcode 4.0.1, y es claramente un error en el dispositivo. archivado w/apple como error # 11069618. –

+0

Puedo confirmar este error (que solo aparece en el hardware Retina iPad) y he presentado otro informe de error con un proyecto de muestra que ilustra el problema. –

Respuesta

3

que estaba viendo este error. No sé nada acerca de OpenGL, así que no pude profundizar en resolverlo con texturas, como se ha sugerido, pero en mi caso pude pasar a una implementación muy rápida de dibujo 2D de Quartz basado en un tutorial de http://blog.effectiveui.com/?p=8105, además de cómo hacerlo funcionar en Retina desde https://stackoverflow.com/a/10870188/255489. En realidad, terminó siendo mucho más rápido que el código que había tomado prestado del código de muestra GLPaint de Apple.

1

Este fue un error confirmado con respaldo retenido y el iPad Retina en iOS 5.x. Desde entonces se ha solucionado en iOS 6.0 y versiones posteriores.

+0

sí; También puedo confirmar que esto está arreglado en iPad retina w/iOS 6. –

Cuestiones relacionadas