Рисовать изображение с CoreGraphics на Retina iPad медленно
В моем приложении для iPad я выполняю рендеринг в закадровое растровое изображение, а затем рисую растровое изображение на экране. (Это потому, что я хочу повторно использовать существующий код рендеринга растрового изображения.) На iPad 2 это работает как обаяние, но на новом iPad с дисплеем Retina рисование растрового изображения выполняется очень медленно, хотя его разрешение все еще остается так же.
Чтобы нарисовать растровое изображение, мы используем обычные функции Quartz 2D:CGImageCreate
с поставщиком данных, созданнымCGDataProviderCreateWithData
32-битный формат RGBA сkCGImageAlphaNoneSkipLast
, вUIView
который отображает растровое изображение, вdrawRect:
, мы используемCGContextDrawImage
нарисовать его в контексте, возвращаемомUIGraphicsGetCurrentContext
.
Обратите внимание, что я даже не пытаюсь рисовать с двойным разрешением: сейчас я в порядке с тем же разрешением, которое я использовал на iPad 2. Похоже, что CoreGraphics внутренне удваивает пиксели, а затем отправляет их в графический процессор. хотяCGImage
то, что я делаю, должно быть хорошо для передачи непосредственно в графический процессор. Есть идеи?