Улучшить производительность CGContextDrawImage - PullRequest
0 голосов
/ 23 апреля 2019

У меня есть собственный NSView, который имеет свой собственный drawRect. Я рисую много изображений, используя CGContextDrawImage в представлении. NsView находится в NSScrollView. Проблема, с которой я сталкиваюсь, заключается в том, что при прокрутке рисование занимает слишком много времени. прокрутка не гладкая.

Я попытался установить значение wantlayer в true, чтобы включить рисование на основе слоев. Теперь прокрутка выполняется плавно до тех пор, пока не будет вызван следующий чертеж, то есть до следующего раза, когда будет перерисован новый dirtyRect.

Так как я должен использовать drawrect для рисования содержимого, есть ли способ улучшить производительность прокрутки?

если нет, есть ли альтернатива?

Обновление:

звонок, который требует времени.

enter image description here

Я попробовал то, что Роб предложил ниже (используя NSImageView для каждого изображения). это помогло. Я вижу плавную прокрутку при настройке изображений.

Но я хотел бы знать, почему CGContextDrawImage требует времени? особенно rgbaf16_sample_rgbaf_inner. есть ли способ избежать этого?

...