Comment charger JPG/PNG Textures dans un SDL/OpenGL Application sous OSX
je suis en train d'écrire un SDL /OpenGL application qui tourne sous OSX. Je dois utiliser le code existant qui utilise le Diable de la bibliothèque pour le chargement des fichiers JPG et PNG textures. Malheureusement, cela fonctionne très mal sous OS X, j'ai donc décidé de ne pas utiliser Diable, à tous, et de réécrire les parties respectives de l'application à l'aide d'une autre bibliothèque. J'ai envie de la garder souple (Diable peut gérer beaucoup de formats d'image) et facile à utiliser. Est-il un bon remplacement pour le Diable que vous pouvez recommander? L'application est entièrement écrit en C++.
- Pourquoi pensez-vous que l'utilisation de JPEG, de PNG, de <mettez votre image préférée format ici> est une bonne idée de stocker les textures?
- Comme n0rd fait allusion, vous avez seulement besoin d'un soutien pour les formats d'image standard au moment de la compilation. Le processus de construction doit convertir toutes vos ressources graphiques pour un format commun. Cela réduit également le travail de votre application doit faire au démarrage, donc il se charge plus vite.
- bon point! je vais probablement s'en tenir à des images PNG.
Vous devez vous connecter pour publier un commentaire.
Ont un look à la SDL_image de la bibliothèque. Il offre des fonctions comme
IMG_LoadPNG
de charger votre image "comme une" SDL_Surface.Puisque vous avez déjà travailler avec SDL cela devrait correspondre assez bien dans votre programme.
Échantillon prélevé à partir de la SDL_image documentation:
SDL 2 SDL_image minimum praticable exemple
principal.c
GitHub en amont.
Compiler et exécuter:
Résultat:
Testé sur Ubuntu 16.04, GCC 6.4.0, SDL 2.0.4, SDL Image 2.0.1.
Prendre un coup d'oeil à freeimage. Il supporte tous les principaux formats et est facilement intégré avec macports. Agréable de travailler avec aussi bien. Détecte automatiquement le format d'image etc.
Si vous êtes sur Mac OS de toute façon, pourquoi ne pas simplement utiliser CGImageSource pour faire le chargement? OS X prend en charge le chargement de nombreux formats de fichiers y compris les formats PNG et JPEG.