An application has appeared that runs the OpenGL layer on top of MKMapView . This worked like a charm before iOS 6 and Apple Maps ...
The problem with iOS 6 / Apple Maps is that the performance is terrible, causing 3D objects to jump when you move / scale the map. I suppose the problem is that MKMapView now uses OpenGL to display the map, but I'm at a dead end how to make it work ...
The iOS 5 / Google Maps version uses the usual CADisplayLink for rendering, but it turned out to be terribly behind Apple Maps.
Then I tried to transfer the rendering to MKOverlay and called up my βdrawing frameβ, which improved performance a bit, but it was still pretty bad compared to the iOS 5 / Google Maps version.
I ended up adding a Pan / Pinch gesture recognizer to MKMapView and manually calling "draw frame" every time the card is tinted / pinched. This works a little better than overlay, but is still far from performance on iOS 5 / Google Maps.
However, it is very difficult that the application runs at a speed of 45-50 frames per second on iPhone 4S with iOS 5, and the same application runs at a speed of 15-20 frames per second on iPhone 5 with iOS 6 ...
I tried rendering on background streams, high priority streams, low priority streams, delaying it, calling it asynchronously, I just can't get close to performance on iOS 5 :(
Any ideas or suggestions on how to successfully combine OpenGL rendering with MKMapView in iOS 6 with custom OpenGL rendering calls?
source share