Lösung des Problems
Es ist nicht gerade eine "einfache" Bibliothek, aber es gibt online viele Informationen über OpenGL und GLUT sowie einige sehr gute Tutorials und eine Menge Beispielcode.
Das größte Problem, mit dem Sie konfrontiert sind, ist, dass die OpenGL- und GLUT-Bindungen in Haskell nicht die Bibliotheken enthalten, an die sie gebunden sind. (Dies gilt auch für wxWidgets.) Viele Linux-Distributionen werden mit gebündelten OpenGL-Binärdateien geliefert, aber nicht mit Windows. Die Haskell-Plattform sollte dies beheben, aber für mich schien es das nicht zu sein.
Angenommen, Sie installieren unter Windows, würde ich Ihnen Folgendes empfehlen:
Befolgen Sie die Anweisungen in diesem Blog buchstabengetreu. Sie sind kompliziert – sie beinhalten Installationen von MinGW, MSys und die manuelle Kompilierung eines GLUT-Projekts von SourceForge, aber es ist die einzige Möglichkeit, wie ich OpenGL zum Laufen gebracht habe. Ich habe jetzt erfolgreich auf drei separaten Rechnern installiert, darunter XP und Vista, also kann ich mit Sicherheit sagen, dass dies sehr gute Richtungen sind.Sobald es funktioniert, sehen Sie sich diese beiden großartigen Tutorials an. Sie haben mir wirklich die Augen dafür geöffnet, wie leistungsfähig Haskell in Sachen Grafik sein kann. Sie werden feststellen, dass der Code viel einfacher ist, als Sie vielleicht erwartet haben.Sehen Sie sich die Beispielspiele auf der Haskell OpenGL-Seite an. Sie sind sehr experimentell – was gut ist, da es bedeutet, dass Sie sich durch weniger Code wühlen müssen als in einem Produktionssystem –, aber sie sind auch überraschend ausgeklügelt. (Und ja, es gibt bereits mehr als eine einfache Tetris-Implementierung, aber lassen Sie sich davon nicht aufhalten.)Eine weitere gute Quelle für Beispielcode ist die GLUT-Bindung von Haskell selbst. Suchen Sie nach dem Beispielverzeichnis und Sie werden viele Ports mit Beispielcode aus dem OpenGL Red Book finden.OpenGL ist sehr zustandsbehaftet, daher finden Sie den Haskell-Code möglicherweise etwas entmutigend, wenn Sie Monads noch nicht vollständig gegrokkt haben. Ich nutze meine OpenGL-Experimente als Motivation, mich endlich mit dem Konzept auseinanderzusetzen.
Viel Glück!
Keine Kommentare:
Kommentar veröffentlichen