El dibujo de la imagen con CoreGraphics en Retina iPad es lento
En la aplicación de mi iPad, estoy renderizando en un mapa de bits fuera de la pantalla y luego dibujando el mapa de bits en la pantalla. (Esto se debe a que quiero reutilizar el código de representación de mapa de bits existente). En el iPad 2, esto funciona como un encanto, pero en el nuevo iPad con pantalla Retina, dibujar el mapa de bits es realmente lento, aunque su resolución sigue siendo la mismo.
Para dibujar el mapa de bits, usamos las funciones regulares de Quartz 2D:CGImageCreate
con un proveedor de datos creado porCGDataProviderCreateWithData
, Formato RGBA de 32 bits conkCGImageAlphaNoneSkipLast
. En elUIView
que muestra el mapa de bits, endrawRect:
, usamosCGContextDrawImage
para dibujarlo al contexto devuelto porUIGraphicsGetCurrentContext
.
Tenga en cuenta que ni siquiera estoy tratando de dibujar a doble resolución: por ahora estoy bien con la misma resolución que estaba usando en el iPad 2. Parece que CoreGraphics está duplicando internamente los píxeles y luego enviándolos a la GPU , a pesar deCGImage
Que estoy haciendo debería estar bien para pasar a la GPU directamente. ¿Algunas ideas?