Ich habe alles von SDL bis DevIL ausprobiert, und alle sind aus verschiedenen Gründen gescheitert.
SDL segfaults aus verschiedenen Gründen, und DevIL hat ein seltsames Problem, bei dem ich, auch nachdem ich IL / ilut.h eingebunden habe und alles verlinkt habe, nicht die Funktionen definiere, die ich brauche, um Bilder in Opengl-Texturen zu laden USE_OPEN_GL wird nicht definiert). Ich frage nach irgendwelchen anderen Bibliotheken, um Bitmaps oder PNGs in ein Format zu laden, das ich leicht in OpenGL konvertieren kann, oder eine Lösung für das Teufelsproblem.
Danke
Sowohl libpng als auch libjpeg können ziemlich abschreckend sein, um & amp; Verwenden Sie - kein Wunder, es gibt alle Arten von Wrapper-Bibliotheken für beide.
Ein sehr einfacher und minimaler No-Nonsense-Loader für jpg / png (und einige andere Sachen auch) ohne Abhängigkeiten in einer einzelnen C-Datei ist Sean Barrets stb_image.c, wenn Sie nur einige Bilddateien laden wollen, fügt es absolut minimal hinzu Overhead zu Ihrem Programm und ist einfach zu bedienen:
LodePNG ist ein sehr kompakter PNG Loader ohne Abhängigkeiten.
Kommentiere deine Erfahrung mit DevIL - es funktioniert tadellos für mich und viele andere. Warum nicht noch einmal versuchen, deine Build-Probleme zu lösen? - sollte nicht zu hart sein)
Sie können auch die FreeImage-Bibliothek ausprobieren. Es unterstützt das Laden von verschiedenen Bildtypen und ist funktionell ähnlich wie DevIL, kann für Sie ohne weiteres funktionieren.
Und zu Ihrem Problem mit DevIL müssen Sie keine ilu- oder ilut-Bibliotheken erstellen, um DevIL funktionsfähig zu machen. Ich würde Ihnen empfehlen, die OpenGL-Texturobjekte selbst zu verwalten, einschließlich des Hochladens von Bilddaten auf OpenGL-Seite.
SOIL ist ein anständiges Leichtgewicht, das ich schon mal benutzt habe. Es ist eigentlich darauf spezialisiert, OpenGL-Texturen zu laden.
Laden von Bitmaps (.bmp) und netpbm Bilder (.pbm, pgm, .pnm) ist ziemlich trivial, da sie Bilder unkomprimiert speichern. Verwenden Sie zum Laden von PNGs libpng . Verwenden Sie zum Laden von JPEGs libjpeg . Verwenden Sie für andere Bildtypen eine geeignete Bibliothek. Es gibt eine gute Änderung, wenn Sie auf 'lib' an den Anfang des Bildnamens klicken, erhalten Sie eine solche Bibliothek, z. libtiff, libtga, etc.
Nachdem Sie die Rohdaten geladen und dekomprimiert haben, müssen Sie sie nur noch in eine OpenGL-Textur laden. glTexImage2D()
mit den richtigen Parametern und einigen anderen GL Statusänderungen (zB wie man Mipmapping macht).
Jung und doch groß genug SFML könnte der sein, nach dem Sie suchen. Ich habe es für zahlreiche Projekte verwendet und alle haben auf allen meinen Plattformen (Win7 und Ubuntu) gut funktioniert.