Существует ли неустаревшая платформа растровой графики для Mac OS X?

StackOverflow https://stackoverflow.com/questions/1184796

Вопрос

Я ищу фреймворк растровой графики для Mac OS X.В частности, мне нужно какое-то представление, которым я могу манипулировать (по крайней мере, концептуально), как матрицей пикселей.Моя программа будет генерировать данные пикселей программно.

QuickDraw хорошо подходит под это описание, но он устарел.Насколько я могу судить, в Core Graphics нет ничего эквивалентного.Я что-то пропустил?

Простая среда C была бы предпочтительнее, чем Objective-C, но я не слишком привередлив.

Это было полезно?

Решение

QD устарел, поскольку не существует способа эффективно реализовать его с помощью текущего поколения полностью составных пользовательских интерфейсов и аппаратного обеспечения графического процессора.По этой причине ничего похожего на QD в системе нет и не будет.Разрешение прямого доступа к резервному хранилищу в лучшем случае приводит к значительному увеличению количества транзакций по шине с графическим процессором, а в худшем случае может помешать загрузке текстуры на саму карту, а в некоторых случаях может вызвать откат программного обеспечения.

Понятно, что иногда есть причины, по которым людям нужен доступ на уровне пикселей к резервному хранилищу, поэтому есть некоторые механизмы для этого, но не существует реальных удобных методов, и если вы можете найти способ избежать этого, вам следует этого сделать.Если вы не можете этого избежать, вы можете использовать CoreGraphics для создания контекста растрового изображения, используя CGBitmapContextCreate где у вас есть доступ к резервному хранилищу и вы можете напрямую манипулировать резервным хранилищем.Работать с ним непросто, и он медленный.

Другие советы

А как насчет разделения ширины и высоты представления на себя, а затем рисования квадратов ширины x высоты?Вы можете просто использовать NSPoint и увеличивать его на единицу, пока он не достигнет ширины x высоты.

А Простой слой Directmedia имеет доступ к пикселям.Возможно, это перебор, поскольку это библиотека портирования, но весь API написан на чистом C.Я не знаю, что он использует в качестве базового API MacOS.Лучше всего проверить веб-сайт, чтобы убедиться, подходит ли он для ваших целей.

В качестве альтернативы вы можете использовать OpenGL текстуры.

Лучший способ сделать это — Core Image.Он предназначен для работы с пикселями и очень быстр, поскольку позволяет выполнять работу на видеокарте.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top