В настоящее время я изучаю возможность рендеринга векторной графики из файла SVG с использованием OpenGL и OpenGL ES. Я намерен настроить таргетинг на Windows и Android. Моим идеальным решением было бы иметь минимальную библиотеку C, которая генерирует триангуляцию многоугольника из данного SVG файла. Затем он будет генерировать стандартные вызовы OpenGL или OpenGL ES, а также использовать список отображения или vbo для оптимизации при перерисовке. Я бы просто рисовал список отображения, чтобы нарисовать векторное изображение после перевода и поворота, что позволило мне смешать это с другими вызовами OpenGL.
До сих пор я вижу, что предложения состоят в том, чтобы сначала использовать QT или Cairo. - Это не вариант, учитывая, что я хочу управлять своим собственным контекстом OpenGL без раздутых библиотек (в контексте того, чего я пытаюсь достичь). И это не подходит для Android.
Второй вариант - использовать библиотеки, которые отображают текстуру. Хотя это может быть хорошо для статической векторной графики, это не эффективный или выполнимый вариант для игр, где часто происходят масштабирование и вращение.
В-третьих, существует возможность использования OpenVG. Существуют некоторые версии OpenVG для OpenVG (ShivaVG и т.д.), Но я еще не нашел библиотеку, которая способна генерировать соответствующие вызовы OpenVG из данного SVG файла во время выполнения, и я не вижу, как оптимизировать это как мы могли бы пожелать со списком отображения или vbo.
Все три метода имеют ограничения. Я думаю, что наиболее перспективным вариантом является использование OpenVG-реализации, если не существует другого решения. Поэтому мой вопрос: есть ли там библиотеки, которые делают то, что я хочу, или близкие к тому, что я хочу? Если нет, есть ли веская причина, почему нет? И было бы лучше попытаться сделать это с нуля?