2012-03-17 11 views
9

Ho un'app openGL iOS che utilizza la proprietà kEAGLDrawablePropertyRetainedBacking per disegnare il fotogramma corrente sopra il fotogramma precedente. è un modo economico per ottenere effetti come piste di movimento.ipad 3 - bug openGL con kEAGLDrawablePropertyRetainedBacking e retina?

funziona perfettamente su tutti i dispositivi (incluso iPhone con retina) e su tutti i simulatori di dispositivi, ma sull'attuale dispositivo iPad 3, il telaio precedente è schiacciato verticalmente al 75% delle dimensioni precedenti.

per esempio, se dovessi disegnare un quadrato 100 x 100 nella parte inferiore dello schermo ogni frame, quindi nel frame 0 ho un quadrato, nel frame 2 c'è un eco che è 100 x 75 e spostato verso il in alto sullo schermo, nel frame tre c'è un'eco aggiuntiva che è 100 x 56 (56 ~ = 75 * 0.75) ed è più sfalsata verso l'alto, e così via. cosa dovrebbe succedere è che tutti gli echi rimangono sul posto.

ho verificato il comportamento su due dispositivi, quindi non penso che sia solo un iPad rotto.

qualche idea?

tia, Orion

+0

appena realizzato che 1536 = 2048 * 0,75, che mi suggerisce che da qualche parte, alcuni sistemi utilizza la larghezza dell'immagine per larghezza e altezza. –

+4

sono stato in grado di riproporlo con l'app openGL di Apple da xcode 4.0.1, ed è chiaramente un bug nel dispositivo. archiviato con Apple come bug # 11069618. –

+0

Posso confermare questo bug (che appare solo sull'hardware iPad Retina attuale) e ho archiviato un altro bug report con un progetto di esempio che illustra il problema. –

risposta

3

vedevo questo bug. Non so nulla di OpenGL, quindi non potevo davvero scavare nella risoluzione con trame, come è stato suggerito, ma nel mio caso sono stato in grado di passare a un'implementazione molto veloce del disegno Quartz 2D basato su un tutorial di http://blog.effectiveui.com/?p=8105, oltre a come farlo funzionare su Retina da https://stackoverflow.com/a/10870188/255489. In realtà è diventato molto più veloce del codice che avevo preso in prestito dal codice di esempio GLPaint di Apple.

1

Questo era un bug confermato con il supporto trattenuto e l'iPad Retina in iOS 5.x. Da allora è stato risolto in iOS 6.0 e versioni successive.

+0

sì; posso anche confermare che questo è fisso su iPad retina w/iOS 6. –