Ich mache ein Spiel und möchte Vektorgrafiken verwenden. Ich habe angefangen, es mit Kairo neu zu codieren, und die Leistung ist schrecklich. Also suche ich eine andere Bibliothek. Es muss für C ++ und plattformübergreifend sein (z. B. kein Direct2D). Es gibt noch eine andere Frage, die jemand zuvor so gestellt hat, aber es gab keine passenden Antworten. Es muss etwas geben ...?
9
Antworten:
Ich befürchte, das Thema ist ziemlich knifflig, es scheinen nur wenige Multi-Plattform-Lösungen auf den Markt gekommen zu sein, und noch weniger scheinen allein überlebt zu haben. Ich habe mich vor einigen Monaten mit dem Thema befasst. Ich hatte eine Einschränkung, da ich die Engine brauchte, um auf iOS und Android zu laufen. Ich habe damals nichts gefunden, was mir wirklich passte.
Aber ein paar Hinweise von dem, woran ich mich erinnere: Jedes GUI-System hat irgendeine Form von Zeichen-API. Vielleicht finden Sie etwas Interessantes in solchen, die plattformübergreifend sind, wie QT .
Ein Äquivalent zu Kairo wäre AntiGrain. Vielleicht möchten Sie die Leistung vergleichen.
OpenFrameworks unterstützt Vektorgrafiken.
Eine sehr große Bibliothek mit Unterstützung für Vektorgrafiken - und einer dafür vorgesehenen Sprache - ist ImageMagick .
In der unteren Ebene finden Sie Libxmi und Libart aus dem Gnome-Projekt.
Keine High-Level-API - und ich bin mir nicht sicher, wie hoch die Wahrscheinlichkeit ist, dass sie zu Ihnen passt -, aber es gibt die Standard- OpenVG . Es gibt mehrere Ports von OpenVG über Software-OpenGL- und OpenGL ES-Renderer. Mesa 3D scheint auch eine OpenVG-Implementierung zu haben. Für einige Plattformen sind jedoch nur kommerzielle Lösungen verfügbar.
Es gibt viel höhere Bibliotheken, die APIs für Vektorgrafiken integrieren. Unter diesen gibt es eine Open-Source- Version namens Clutter für das GUI-Design, die im Serious-Game-Design verwendet wird. Es gibt eine Skalierungsform (Not Open Source). Diese Spiel-Engine hat einige Funktionen zum Zeichnen von Vektorgrafiken: 2DEngine
EDIT : Unordnung verwendet anscheinend Kairo.
quelle
MonkVG ist eine plattformübergreifende OpenVG-Emulation auf OpenGL ES 1.1 und 2.0. Siehe: https://github.com/micahpearlman/MonkVG
Hinweis: Ich bin der ursprüngliche Autor und Betreuer dieser Bibliothek. Es hat eine sehr liberale BSD-Lizenz.
quelle
Am Ende habe ich mich nicht darum gekümmert und mich nur für hochauflösende Bilder und die Skalierung mit OpenGL entschieden. Es funktioniert gut genug für meine Situation.
quelle