Das Zeichnen von Bildern mit CoreGraphics auf dem Retina iPad ist langsam
In meiner iPad-App rendere ich zu einer Offscreen-Bitmap und zeichne die Bitmap dann auf den Bildschirm. (Das liegt daran, dass ich vorhandenen Bitmap-Rendering-Code wiederverwenden möchte.) Auf dem iPad 2 funktioniert dies wie ein Zauber, aber auf dem neuen iPad mit Retina-Display ist das Zeichnen der Bitmap sehr langsam, obwohl die Auflösung immer noch die ist gleich.
Zum Zeichnen der Bitmap verwenden wir die regulären Quartz 2D-Funktionen:CGImageCreate
mit einem Datenprovider erstellt vonCGDataProviderCreateWithData
32-Bit-RGBA-Format mitkCGImageAlphaNoneSkipLast
. In demUIView
das zeigt die Bitmap, indrawRect:
, wir gebrauchenCGContextDrawImage
um es auf den von zurückgegebenen Kontext zu ziehenUIGraphicsGetCurrentContext
.
Beachten Sie, dass ich nicht einmal versuche, mit doppelter Auflösung zu zeichnen: Im Moment kann ich die gleiche Auflösung wie auf dem iPad 2 verwenden. Es sieht so aus, als würde CoreGraphics die Pixel intern verdoppeln und diese dann an die GPU senden , obwohl dieCGImage
dass ich mache sollte gut für die Übergabe an die GPU direkt sein. Irgendwelche Ideen?