2010-07-29 6 views
6

Ich dachte, das sollte einfach sein, aber ... geesh! Ein Hersteller gab mir ein ziemlich einfaches Demo-Programm, das einige triviale Icon-Animationen zeigen sollte. Die Zielplattform ist ein Embedded System (MX51) mit beschleunigter OpenGL ES 2.0/OpenVG und EGL Unterstützung.Der einfachste Weg, eine einfache GLES/EGL/OpenVG-App auf einem PC auszuführen?

Leider hat die Demo auch eine lästige Abhängigkeit von einigen Qt Utility-Klassen (z. B. QImage). Ohne diese Abhängigkeit würde ich das Ding auf dem Ziel kompilieren/ausführen. Aber ich denke nicht daran, Qt zu kompilieren, nur um diese kleine Demo laufen zu lassen - selbst wenn auf der Embedded-Platine genug Platz dafür wäre.

Ich hoffte, dass ich in der Lage sein könnte, die App auf einem Standard (ish) Ubuntu 10.04 VM zu laufen, und fing an, these directions zu folgen, um es geschehen zu lassen. Und ich schaffte es tatsächlich --- wie, 10 Stunden später --- alles zu kompilieren und eine ausführbare Binärdatei des Demoprogramms zu erhalten. Wenn ich es jedoch ausführe, sehe ich den folgenden Fehler:

eglCreateWindowSurface: egl error "EGL_BAD_CONFIG" (0x3005) 

Seufz. Nicht das, was ich nach all dieser Anstrengung sehen wollte. Dies scheint viel schwieriger als es sein sollte.

Ist die eingebettete GL-Landschaft wirklich so ein Ghetto, dass ich selbst triviale Programme auf dem Ziel unter Verwendung einiger Lieferanten-BSP ausführen? Nach dem Fehlen von Antworten auf this guy's question zu urteilen, denke ich, die Antwort könnte ja sein. Aber (Beschleunigung) ist mir noch nicht einmal wichtig. Ich möchte nur die dümmsten OpenGL ES 2/OpenVG-Programme auf einem Desktop-PC laufen lassen und eine Vorstellung davon bekommen, wie es aussieht. (Es ist mir egal, ob auf dem PC Linux oder Windows läuft.) Wie machen die Leute so etwas?

Antwort

5

Es gibt mehrere OpenGL ES 2.0-Emulatoren, wie zum Beispiel:

For ARM Mali GPUs

For PowerVR GPUs

auch vor kurzem hat AMD Treiber geschrieben, die OpenGL ES 2.0 on desktop.

In jüngerer Zeit, OpenGL 4.1 Exposes aussetzen die GL_ARB_ES2_compatibility Erweiterung, die OpenGL 4.1 Treiber GL ES 2.0 kompatibel macht.

Für OpenVG können Sie AmanithVG GLE verwenden.

+1

Danke für die Zeiger. Nachdem ich Ihre hilfreiche Antwort gelesen hatte, habe ich den OpenGL ES 2.0-Emulator von nVidia (http://bit.ly/bnpfY) heruntergeladen und auf meinem Notebook installiert, das eine GeForce 9500M enthält. Ich war augenblicklich verwirrt über das Fehlen einer libEGL.dll in den installierten Dateien, stellte jedoch fest, dass nVidia einfach alle egl * -Funktionen in libGLES20.dll verkleinerte. (Einige andere Emulatoren, mit denen ich spielte, hatten diese in einer separaten Bibliothek.) – evadeflow

+0

OMG, ich spucke jetzt wütend, weil ich RTFM auf nVidias Emulator habe. Es sagt dies über ihre OpenVG-Implementierung: OpenVG 1.0: VG/*: Unterstützung für Vektorgrafiken. Einzelheiten finden Sie in der Dokumentation von Khronos . Nur verlinken. APIs nicht implementiert. Wirklich? Ja wirklich?! Grrr. Ich nehme an, dass ich eine dev Maschine mit einer AMD GPU bekommen muss ... – evadeflow

+0

Nur für den Fall, dass es jemandem hilft, ARM GLES Emulator funktioniert derzeit nicht auf AMD64 Bit Arch Maschinen (das ist alles von Corei Reihe von Intel). – Divick