Voila, pour mon jeu en 2D avec OpenGL j'utilise la fonction loadTGA():
bool LoadTGA(char *filename, UINT * uTex)
{
unsigned char TGAheader[12] = {0,0,2,0,0,0,0,0,0,0,0,0};
unsigned char tgacompare[12];
unsigned char header[6];
int imageSize;
int type;
unsigned char *imageData;
int bpp;
int width;
int height;
FILE *fichier;
fichier = fopen(filename, "rb");
if(fread(tgacompare, 1, sizeof(tgacompare), fichier) != sizeof(tgacompare))
{
fclose(fichier);
return FALSE;
}
if(memcmp(TGAheader, tgacompare, sizeof(TGAheader)) != 0)
{
fclose(fichier);
return FALSE;
}
if(fread(header, 1, sizeof(header), fichier) != sizeof(header))
{
fclose(fichier);
return FALSE;
}
width = header[1] * 256 + header[0];
height = header[3] * 256 + header[2];
bpp = header[4];
if(bpp==24)
type = GL_RGB;
else
type = GL_RGBA;
imageSize = width * height * bpp/8;
imageData = (unsigned char *)malloc(imageSize);
if(fread(imageData, 1, imageSize, fichier) != imageSize)
{
free(imageData);
fclose(fichier);
return FALSE;
}
fclose(fichier);
unsigned char t;
for(int i=0; i<imageSize;i += bpp/8) // pout inverser R et B
{
t = imageData[i];
imageData[i] = imageData[i + 2];
imageData[i + 2] = t;
}
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glGenTextures(1, uTex);
glBindTexture(GL_TEXTURE_2D, *uTex);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexImage2D(GL_TEXTURE_2D, 0, type, width, height, 0, type, GL_UNSIGNED_BYTE, imageData);
free(imageData);
return TRUE;
}
Et j'appliquais ma texture... mais ca marchait pas...
Je sais que ca vient de là :
if (LoadTGA("intro.tga",&textures[0])!=TRUE)PostQuitMessage (0);
et en effet ca quitte. Donc, help !
Dante41 (ou Vengeur41 ca dépend de l'humeur)"Un myope qui lit sur les lèvres entend mieux lorsqu'il porte des lunettes",Phillipe Geluck