В настоящее время я пишу iOS-сервер для кросс-платформенной программы, чей независимый от платформы движок записывает всю свою графику в 32-разрядные пиксельные буферы в порядке RGBA. Альфа-байт не используется. Графика всегда непрозрачна, поэтому мне не требуется альфа-смешивание.Аппаратное ускорение масштабирования на iOS без OpenGL
Что является наиболее эффективным вариантом для рисования и масштабирования этих пиксельных буферов для моего CGContextRef
внутри моего метода drawRect
? Буквы пикселей обычно имеют размер всего 320x240 пикселей, и их необходимо масштабировать, чтобы полностью заполнить размеры моего представления, например. 1024x768 на не-Retina iPads и 2048x1536 на Retina iPads. Это очень много работы, поэтому лучше всего использовать GPU. Но как я могу заставить iOS рисовать и масштабировать с помощью GPU без использования OpenGL?
Я пробовал использовать CGContextDrawImage()
, но это очень медленно, возможно, потому что все сделано с использованием CPU.
Я также имел взглянуть на CIImage
API, потому что они, по-видимому GPU оптимизирован, но проблема в том, что CIImage
объекты неизменны, так что я должен был бы постоянно создавать новые CIImage
объекты для каждого кадра, мне нужно сделать, который будет вероятно, убить и производительность.
Я мог бы пойти с OpenGL, конечно, но я хотел бы получить некоторые отзывы о том, есть ли более легкое решение получить то, что я хочу здесь.
Спасибо за любые идеи!
Я думаю, что следующие ссылки покажут вам некоторые подсказки. http://stackoverflow.com/questions/6520320/images-vs-core-graphics и https://robots.thoughtbot.com/designing-for-ios-graphics-performance и https://lobste.rs/s/ ckm4uw/a_performance-minded_take_on_ios_design/комментарии/itdkfh. – beshio