Использование библиотеки DevIL в Delphi
Автор: Aut
Использование библиотеки 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.
Если вы хотите в полной мере пользоваться этой библиотекой, то советую скачать заголовочный файл в интернете (я думаю его легко можно будет найти). Единственное, чего в том файле может не хватать, так это процедуры LoadTexture, которую вы сможете добавить туда сами (способом Copy-Paste). Главное не забывайте при загрузке приложения производить инициализацию библиотеки (процедура ilInit).
Читайте статью: Библиотека OpenIL
#Delphi, #DevIL, #OpenIL, #изображения
15 октября 2009
Комментарии [4]