1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
GLuint chargeTexture(char * fich)
{
ILboolean success;
ILuint iltexID;
GLuint texID;
GLsizei width, height;
GLint internalFormat;
GLenum format;
GLenum type;
ilGenImages(1, &iltexID); // genere identifiant pour l'image IL
ilBindImage(iltexID); // définit comme image active
success = ilLoadImage(fich); // charge l'image
if (success) // si le chargement s'est bien passé
{
glGenTextures(1,&texID); // Genere l'identifiant de l'objet texture
width = ilGetInteger(IL_IMAGE_WIDTH); // récupere la largeur de l'image
height = ilGetInteger(IL_IMAGE_HEIGHT); // récupere la hauteur de l'image
internalFormat = ilGetInteger(IL_IMAGE_BPP); // recupere le format des pixels de l'image
format = ilGetInteger(IL_IMAGE_FORMAT); // récupere le format de l'image
type = ilGetInteger(IL_IMAGE_TYPE); // récupere le type de l'image
glBindTexture(GL_TEXTURE_2D, texId); // Met l'objet texture actif
gluBuild2DMipmaps(GL_TEXTURE_2D, internalFormat, width, height, format, type, ilGetData()); // Crée l'objet texture sur la carte video
glBindTexture(GL_TEXTURE_2D, 0); // désactive l'objet texture
}
else // le chargement de l'image s'est mal passé
{
std::cerr << "Erreur de chargement avec devIL" << std::endl;
exit(1); // on quitte le programme
}
ilDeleteImages(1, &iltexID); // On suprimme l'objet image IL, vu qu'on en a plus besoin
return texID; // on retourne l'identifiant de l'objet texture crée
} |
Partager