2010-07-03 7 views
5

Al probar mi aplicación OpenGL ES en el nuevo iPhone 4, parecía que el OpenGL no estaba usando todos los 326 ppi, en lugar de los 163 ppi encontrados en el 3G, debido a la notable pixelación. Me doy cuenta de que hay 4 veces más píxeles para calcular, ¿pero no debería el chip A4 compensar esto?¿Se pueden usar los 326 ppi completos de iOS 4 para OpenGL?

Estoy seguro de que hay una manera de aprovechar la increíble resolución, como he visto en las aplicaciones de la tienda de iTunes, pero ¿cómo?

Respuesta

8

Sí, es bastante fácil también en realidad. De forma predeterminada, la vista de OpenGL utiliza el modo de escala anterior para no romper las aplicaciones existentes porque es una API basada en píxeles en lugar de una API basada en puntos.

Para solucionar esto, configure los contentsScale de su CAEAGLLayer en 2.0 y disfrute de la gloria.

+1

oooooooohhhhhhh ... .. aaaaahhhhhhhhhhhhhh .. ¡Puedo ver la luz ahora! ¡Gracias! – pop850

1

No tan familiarizado con CAEAGLLayer, ¿cuál es la sintaxis para configurar el contenido de escala en 2.0?

+0

'layer.contentScale = 2.0f' –

+0

Hm, eso es lo que pensé primero, ¿pero el compilador afirma que no tiene dicho miembro? Este es mi código: CAEAGLLayer * eaglLayer = (CAEAGLLayer *) self.layer; eaglLayer.contentScale = 2.0; También eaglLayer-> contentScale = 2.0; no funciona ... Debo extrañar algo realmente estúpido aquí ... – sinsro

+0

Ok, lo tengo ahora. Parece que tienes un error tipográfico allí, debe ser layer.contentsScale = 2.0f; Además, mejor señalar esto necesita base SDK 4.0. :) – sinsro

Cuestiones relacionadas