Ah ça faisait longtemps que je postais pas de code :)
Donc voilà : c'est une classe qui permet de charger des fichiers au format TGA., qui peut contenir une couche alpha : en clair les pixels de l'image peuvent être transparents ou pas.
Pour utiliser des formats TGA, le mieux est d'utiliser GIMP, Photoshop ou Paint Shop Pro. Vous pouvez aussi utiliser TGA Alpha Edit, une autre de mes sources (un peu de pub :p)
J'ai remarqué que sur CppFrance un loader de TGA est beaucoup utilisé : celui fait par Nate Miller. C'est celui que j'utilisais avant, mais j'ai préféré écrire celui-ci parce que l'autre comportait 2 défauts importants :
1) il n'était pas orienté objet (ce n'est pas un vrai problème en soi mais bon...la POO c'est beau ;))
2) le problème majeur : il ne supportait pas les fichiers TGA compressés.
Mon loader possède les caractéristiques suivantes :
-il est portable
-il est orienté objet
-il supporte les images compressées en RLE ou pas
-les images chargées doivent être 24 bits ou 32 bits.
Je poste juste le header ici, le reste est dans le zip.
Pour tester le programme, faites glisser une texture TGA sur TGA.exe.
***
Changements du 14/04/04 : maintenant on peut préciser au loader le type de filtering que l'on veut utiliser. L'exemple permet de choisir à l'exécution entre pas de filtering, linear filtering, bilinear filtering, trilinear filtering ou anisotropic filtering.
J'ai aussi rajouté les fonction LoadOpenGLTexture() et LoadOpenGLTextureWithID() à destination du programmeur fainéant (on dira "économe de lignes" ça fait mieux :p) qui permettent en un seul appel de charger une texture TGA depuis un fichier et de l'envoyer à OpenGL. On peut aussi bien sûr préciser le type de filtering à ce moment-là.
***
Changements du 17/02/05 : version 1.2 de TGALoader : j'ai rajouté 3 fonctions : LoadFromData(), LoadOpenGLTextureFromData() et LoadOpenGLTextureFromDataWithID() (ouais c'est "un peu" long mais bon j'aime bien quand le nom est explicite :p).
Elles donnent à la classe la capacité de charger des textures depuis un tableau statique C, créé avec le programme bin2h (fourni dans l'archive).
Je m'explique : avec le programme bin2h, on transforme un fichier .tga en fichier .h (si vous ne voyez pas comment l'utiliser, faites un glisser-déposer de votre fichier .tga sur le programme bin2h (que vous aurez compilé), ça vous sortira un fichier .h).
Le fichier .h contiendra un tableau de cette forme : static unsigned char tableau_image[] = {0, 23, 46...etc};.
Lorsque vous passez ce tableau en argument à une des fonctions Load*FromData(), la classe charge l'image, comme elle le fait avec un fichier TGA.
Cela permet d'embarquer vos images dans l'exécutable et non en fichiers "extérieurs" si vous le voulez.
***
Changements du 28/04/05 : version 1.3 de TGALoader.
J'ai enlevé la clause "using namespace std;", qui peut poser des problèmes dans certains codes où ce n'est pas voulu et j'ai rajouté un constructeur de copie et un opérateur d'affectation. Il y a aussi maintenant des projets Dev-C++/FreeGLUT (à utiliser avec le DevPak FreeGLUT sur devpaks.org), ainsi qu'un projet Visual C++/FreeGLUT. FreeGLUT a entre autres l'avantage de nous permettre de nous passer de glut32.dll en linkant la librairie en static.
Ben voilà c'est tout :)
***
Changements du 08/10/07 : version 1.4 de TGALoader.
J'ai juste changé quelques petits trucs dans les sources pour ne plus avoir de warnings lors de l'utilisation avec MinGW au sujet d'une variable non initialisée et de m_width et m_height qui ne sont pas initialisées dans le bon ordre, dans les constructeurs.