Альтернатива CoreGraphics?
Я ищу библиотеку 2D-рендеринга в качестве альтернативы CoreGraphics на iPhone. Все в моем приложении довольно динамично, что довольно сложно разделить на слои и анимацию.
Я хорошо знаком с OpenGL, и именно так рендеринг реализован прямо сейчас. Все было бы намного проще развернуть, и разработка пошла бы намного быстрее, если бы мне не пришлось беспокоиться о низкоуровневых вещах в OpenGL (и мой код выглядел бы намного аккуратнее:D).
Я предпочитаю C++, а не Objective-C, поэтому, если вы знаете какие-либо библиотеки C++ для рендеринга, это было бы здорово. Я тоже могу работать с Си. Рендеринг на основе путей, как в CoreGraphics или JavaScript Canvas API, был бы полезен. Будет ли Каир работать на iPhone?
Я на самом деле работал над своим собственным 2D рендером, который я, вероятно, выпустлю, даже если я не буду использовать его в своем приложении, потому что мне нравится работать над ним. Поддерживает ли iPhone трафаретный буфер? Я могу сделать полигональную триангуляцию или использовать библиотеку тесселяции GLU, но трафаретный буфер сохранит нагрузку на работу в долгосрочной перспективе.
Редактировать: Кроме того, я реализовал рендеринг в этом приложении с CoreGraphics и раньше, и это не получилось так хорошо, как хотелось бы. Я провел некоторое исследование, и люди предложили не использовать CoreGraphics для вещей, которые постоянно перерисовывают экран. Некоторые говорили, что CoreGraphics не использует GPU, другие говорили, что это какой-то механизм кэширования. С тех пор я избегал этого.
1 ответ
MonkVG - это реализация API векторной графики, подобная OpenVG 1.1, в настоящее время использующая бэкэнд OpenGL ES, который должен быть совместим с любым HW, поддерживающим OpenGL ES 2.0, который включает в себя большинство устройств iOS и Android.
Это проект BSD с открытым исходным кодом, который находится в активной разработке. На момент написания этой статьи она была в очень раннем состоянии перед выпуском (реализовано очень минимальное количество функций). Авторы и спонсоры приветствуются.
Его можно найти на GitHub http://github.com/micahpearlman/MonkVG
Также есть рендеры SVG и SWF (flash), построенные поверх MonkVG: