Использование библиотеки DevIL (OpenIL) (для загрузки изображений из графических файлов) в Delphi просто и удобно.
Для начала советую скачать саму библиотеку с официального сайта http://openil.sourceforge.net/. А затем написать простенький модуль для работы с этой библиотекой:
unit DevIL; interface uses Windows, OpenGL2; const OPENILDLL = 'DevIL.DLL'; procedure ilInit; stdcall; external OPENILDLL; procedure LoadTexture(FileName: string; var Texture: TGLuint); implementation type TILenum = LongWord; TILboolean = Byte; TILint = Integer; PILubyte = ^Byte; const IL_IMAGE_WIDTH = $0DE4; IL_IMAGE_HEIGHT = $0DE5; IL_IMAGE_BYTES_PER_PIXEL = $0DE8; IL_IMAGE_FORMAT = $0DEA; function ilLoadImage(FileName: PChar): TILboolean; stdcall; external OPENILDLL; function ilGetData: PILubyte; stdcall; external OPENILDLL; function ilGetInteger(Mode: TILenum): TILint; stdcall; external OPENILDLL; procedure LoadTexture(FileName: string; var Texture: TGLuint); begin ilLoadImage(PChar(FileName)); glGenTextures(1, @Texture); glBindTexture(GL_TEXTURE_2D, Texture); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR_MIPMAP_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); gluBuild2DMipmaps(GL_TEXTURE_2D, ilGetInteger(IL_IMAGE_BYTES_PER_PIXEL), ilGetInteger(IL_IMAGE_WIDTH), ilGetInteger(IL_IMAGE_HEIGHT), ilGetInteger(IL_IMAGE_FORMAT), GL_UNSIGNED_BYTE, ilGetData); end; end. |
Читайте статью: Библиотека OpenIL