2010-07-03 4 views
5

Durante il test della mia app openGL ES sul nuovo iPhone 4, sembrava che OpenGL non stesse usando tutti i 326 ppi, piuttosto i 163 ppi trovati sul 3G, a causa della notevole pixelizzazione. Mi rendo conto che ci sono 4 volte più pixel da calcolare, ma il chip A4 non dovrebbe compensare questo?È possibile utilizzare i 326 ppi completi di iOS 4 per openGL?

Sono sicuro che c'è un modo per sfruttare la straordinaria risoluzione, come ho visto nelle app su iTunes Store, ma come?

risposta

8

Sì, è abbastanza facile in realtà. Per impostazione predefinita, la vista OpenGL utilizza la modalità di scala precedente per non violare le applicazioni esistenti perché si tratta di un'API basata su pixel piuttosto che di un'API basata su punti.

Per risolvere questo problema, impostare il contenuto Scala del CAEAGLLayer su 2.0 e crogiolarsi nella gloria.

+1

oooooooohhhhhhh ... .. aaaaahhhhhhhhhhhhhh .. Posso vedere la luce ora! Grazie! – pop850

1

Non è così familiare con CAEAGLLayer, qual è la sintassi per impostare contentScale su 2.0?

+0

'layer.contentScale = 2.0f' –

+0

Hm, questo è quello che pensavo prima, ma il compilatore afferma di non avere un membro del genere? Questo è il mio codice: CAEAGLLayer * eaglLayer = (CAEAGLLayer *) self.layer; eaglLayer.contentScale = 2.0; eaglLayer-> contentScale = 2.0; non funziona ... Devo mancare qualcosa di veramente stupido qui ... – sinsro

+0

Ok, capito adesso. Sembra che ci sia un errore di battitura lì, dovrebbe essere layer.contentsScale = 2.0f; Inoltre, meglio sottolineare questo bisogno di base SDK 4.0. :) – sinsro