DevILを用いた画像ファイルの読み込み

// #include <IL/il.h>   // ilu.hもインクルードするなら不要
#include <IL/ilu.h>

ILuint image;
unsigned int width, height;

// 初期化(ilとiluをこの順番で初期化する)
ilInit();
iluInit();

// イメージ名(識別番号)を生成
ilGenImages(1, &image);

// 生成した名前をバインド
ilBindImage(image);

// ファイルから画像をロード
if (ilLoad(imageFile)) {
   width = ilGetInteger(IL_IMAGE_WIDTH);
   height = ilGetInteger(IL_IMAGE_HEIGHT);
   // 画素の並びが逆の場合は入れ替える
   if (ilGetInteger(IL_IMAGE_ORIGIN) != IL_ORIGIN_LOWER_LEFT) {
      iluFlipImage();
   }
} else {
  ILenum err = ilGetError();
  std:cerr << iluErrorString(err) << std::endl;
}

// 後始末
ilDeleteImage(1, &image);

テクスチャに使う

// テクスチャ名を生成
GLuint texName;
glGetTextures(1, &texName);

// 使うイメージ名をバインド
ilBindImage(image);

// テクスチャの設定
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
glBindTexture(GL_TEXTURE_2D, texName);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LENEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LENEAR);
glTexImage2D(GL_TEXTURE_2D, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, ilGetData());

:

// 後始末
glDeleteTextures(1, &texName);

まとめ

初期化
ilInit();

iluInit();

ilutRenderer(ILUT_OPENGL);

名前付け
ILvoid ilGenImages(ILsizei Num, ILuint *Images);
ILvoid ilBindImages(ILuint Image);
ILvoid ilDeleteImages(ILsizei Num, ILuint *Images);

読み込み
ILboolean ilLoadImage(const char *FileName);
ILboolean ilLoad(ILenum Type, const char *FIleName);
ILboolean ilLoadF(ILenum Type, ILHANDLE File);
ILboolean ilLoadL(ILenum Type, ILvoid *Lump, ILuint Size);

保存
ILboolean ilSaveImage(const char *FileName);
ILboolean ilSave(ILenum Type, const char *FileName);
ILboolean ilSaveF(ILenum Type, ILHANDLE File);
ILboolean ilSaveL(ILenum Type, ILvoid *Lump, ILunit Size);

画像の操作
ILboolean ilTexImage(ILuint Width, ILuint Height, ILuint depth, ILubyte Bpp, ILenum, Format, ILenum Type, ILvoid *Data);

画像データの取得
ILubyte* ilGetData(ILvoid);
ILuint ilCopyPixels(ILuint XOff, ILuint YOff, ILuint ZOff, ILuint Width, ILunit Height, ILunit Depth, ILenum Format, ILenum Type, ILvoid *Data);

画像のコピー
ILboolean ilCopyImage(ILuint Src);
ILboolean ilOverlayImage(ILuint Src, ILint XCoord, ILint YCoord, ILint ZCoord);
ILboolean ilBlit(ILuint Src, ILint DestX, ILint DestY, ILint DestZ, ILuint SrcX, ILuint SrcY, ILuint SrcZ, ILuint width, ILuint Height, ILuint Depth);

エラー処理
ILenum ilGetError(ILvoid);
const char* iluErrorString(ILenum Error);