Wo finde ich eine einfache Graphik C-Bibliothek für das schreiben direkt auf ein frame?
Brauche ich eine einfache Graphik C-Bibliothek zu verwenden, die auf einem Gerät wo ich das schreiben direkt auf den Rahmen.
Dem Rahmen befindet sich im regulären Speicher.
Es gibt keine Grafik-hardware-Beschleunigung.
Nichts besonderes. Ich möchte nur in der Lage sein, zum zeichnen von Linien, Kreisen, OSD-Sachen wie strings.
Wäre es nice to have-Funktionen, verwenden Sie eine gute, schlanke algorithmen (mein Prozessor ist ein ARM9 mit 400 MHz laufen).
Was sind einige Empfehlungen dazu?
- Hallo, ich habe ein embedded-Gerät wie deins. Ich zeichne direkt auf den frame buffer im RAM. Ich brauche ein einfaches C/C++ - Bibliothek für das zeichnen. Code läuft auf dem FPGA. Wenn Sie die Lösung gefunden, könnten Sie mir einige Hinweise ? Ich danke Ihnen sehr !
InformationsquelleAutor | 2009-02-27
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für sehr einfache Anforderungen (Linien, Kreise, Polygone, text) ich habe immer nur meinen eigenen gemacht. Check-out bresenham-Algorithmus für Linien und Kreise, Wu änderungen antialiasing auf Kreise und Linien.
Gimp-Ausgabe von C-code für Bilder, was ich für Schriftarten, und Sie zeichnen, ist Recht einfach. Ich habe anti-aliasing (gimp --> Graustufen verwenden Sie Graustufen-Wert als der alpha), aber noch nicht getan, proportional-Schriften. Sie sind nicht viel schwerer, und kann das display ein bisschen schöner, aber ich habe es nicht nötig, Sie noch nicht.
Polygone werden einfach mehrere Zeilen, und Polygone sind ganz lustig zu implementieren.
Es ist nicht viel Arbeit, und Sie werden durch Erfahrung wachsen.
Wenn Sie jedoch entscheiden, dass Sie möchten, um SVG zu Rendern oder einige andere komplexe Vektor Sprache, dann eine Bibliothek ist in Ordnung. Aber für die einfachen Dinge, das ist nicht Komplex.
-Adam
Ich würde gerne die zweite OpenGL, vor allem die OpenGL|ES-Variante.
Hier ist ein link zu einem Software-basierten OpenGL-Renderer: http://sourceforge.net/projects/ogl-es
Ich damit verbracht habe die letzten drei Jahre schriftlich kommerzielle software-Rasterung-codes auf ARM9 und ähnliche Prozessoren, so dass ich denke, ich kann im Kommentar auf die Verwendung von Kairo und anderen high-level-APIs:
Sie arbeiten sehr gut und sind unglaublich mächtig, aber auf ein Ziel so begrenzt, wie ein ARM9-Sie werden nie zufrieden mit der Leistung. Die Grafik-libs geschrieben werden, mit Ihren typischen Desktop-PC im Auge, und Sie handeln-Genauigkeit für Leistung. Das ist schön für hochwertige SVG-rendering, aber zu langsam, demütig, ARM.
Den Vincent OpenGL|ES ich habe oben vorgeschlagen hat on-the-fly dynamische code-generation-engine für ARM-CPUs statt, so dass Sie fast die Leistung von hand-optimierten assembler-code.
Wenn Sie können, beschränken Sie sich auf nur ein bitmap-format, nur zwei blend-Modi und eine hand voll rendering-primitive, erhalten Sie möglicherweise eine bessere Leistung, indem Sie ein Dutzend render-Routinen selbst. Je nach Ihrer Erfahrung und Anforderungen, die kann alles von zwei Tagen bis zu einem Monat, wenn..
Kairo ist ziemlich mächtig und einfach zu bedienen. Ich denke, Mozilla verwendet es als Grundlage für die
<canvas>
- element und SVG-renderer.Aus den Anforderungen scheint es, müssen Sie etwas, das wie ein embedded framebuffer-Bibliothek (oder was auch immer es genannt wird). Ich spielte mit einigen der folgenden Schritte ein paar Jahren wieder für einen eingebetteten browser (die nicht auf dem Markt). Leider kann ich mich nicht erinnern, so viel zu geben Sie keine Analyse. Haben Sie einen Blick:
Auch diese Artikel von Interesse sein können.
OPenGL hat eine Reihe von 2d-Funktionen nicht sicher, ob es zu aufgebläht für Sie oder, wenn es nach unten getrimmt werden. Es ist in C geschrieben, mindestens.
Versuchen SDL. Von der web-Seite:
Fand ich die Adafruit GFX-Bibliothek nach meinem Geschmack.
Sehr, sehr einfach und basic:
https://github.com/adafruit/Adafruit-GFX-Library