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