Je suis en train d'apprendre à un de mes étudiants (et d'ailleurs il y en a deux autres intéressés) à faire une application graphique en utilisant SDL2.
Le soucis c'est que la distribution (opensuse 12.2) n'intègre pas SDL2 dans les dépôts officiels.
Qu'à cela ne tienne, j'ai installé la librairie SDL2 sur son système.
J'ai vérifié que les librairies dynamiques étaient disponibles (ldconfig -v | grep SDL) et j'ai compilé les exemples de cours pour vérifier si cela fonctionnait, aucun soucis à la compilation.
Dans le code source, à un moment je charge une image avec IMG_Load (la librairie est installée, le code se compile sans problème).
Le soucis c'est qu'à l'exécution nous obtenons une erreur "Unknown image format" pour une image .jpg.
Nous avons utilisé un logiciel pour "convertir" le format .jpg en .png, changé l'extension du fichier dans le code source, recompilé et relancé l'application: même résultat.
Nous avons vérifié si libpng était installé, il l'était mais c'est la version libpng12 sur opensuse 12.2.
J'ai une distribution 12.2 chez moi et SDL1 fonctionne avec la librairie SDL_image.
Le soucis c'est qu'apparemment la librairie SDL2 ne fonctionne pas bien sur opensuse12.2 pourtant toutes les librairies SDL2_gfx, SDL2_net, SDL2_ttf, SDL2_mixer, etc... ont été installées sur le système.
Sur une autre machine, cette fois en opensuse 13.2, avec à la fois SDL1 et SDL2, le code source fonctionne parfaitement.
Code source: http://paste.opensuse.org/73089941
Dans le code source sur l'ordinateur de l'élève, nous avons fait un branchement conditionnel pour savoir si le pointeur était valide ou non et s'il était invalide nous utilisons SDL_GetError() (renvoie la même chose que IMG_GetError()) pour en connaître la raison.
Auriez-vous une idée de ce qui peut bien provoquer le fait que l'image ne peut pas être chargée par IMG_Load ???
Je pense qu'au niveau des librairies nous sommes bons mais j'ai uniquement un doute par rapport à opengl qui sur la version opensuse 12.2 est pris en charge par un MESA.
Sur ma distribution 12.2, opengl est pris en charge par le même type de pilote (MESA 8.0.4)
Partager