Rysowanie obrazu za pomocą CoreGraphics na iPadzie Retina jest powolne

W mojej aplikacji na iPada renderuję mapę bitową poza ekranem, a następnie rysuję mapę bitową na ekranie. (To dlatego, że chcę ponownie użyć istniejącego kodu renderowania bitmapy.) Na iPadzie 2 działa to jak urok, ale na nowym iPadzie z wyświetlaczem Retina rysowanie bitmapy jest naprawdę powolne, mimo że jej rozdzielczość nadal jest podobnie.

Aby narysować bitmapę, używamy zwykłych funkcji Quartz 2D:CGImageCreate z dostawcą danych utworzonym przezCGDataProviderCreateWithData, 32-bitowy format RGBA zkCGImageAlphaNoneSkipLast. wUIView wyświetla bitmapę wdrawRect:, UżywamyCGContextDrawImage aby narysować go do kontekstu zwróconego przezUIGraphicsGetCurrentContext.

Zauważ, że nawet nie próbuję rysować z podwójną rozdzielczością: na razie mam taką samą rozdzielczość, jak w przypadku iPada 2. Wygląda na to, że CoreGraphics wewnętrznie podwaja piksele, a następnie wysyła je do GPU , nawet jeśliCGImage to, co robię, powinno być odpowiednie do bezpośredniego przekazania do GPU. Jakieś pomysły?

questionAnswers(1)

yourAnswerToTheQuestion