Существует ли функция для загрузки текстуры которая уже поделена на все степени двойки? У меня в памяти идет сплошной массив из картинок (формат XImage из одиной игры): [mipmapImage32,mipmapImage16,mipmapImage8,mipmapImage4,mipmapImage1] Для обычной картинки, я использую: Код (Text): gluBuild2DMipmaps(GL_TEXTURE_2D,4,32,32, GL_RGBA,GL_UNSIGNED_BYTE,mipmapImage32); Может есть функция которая загрузит этот массив? или же мне вручную разбивать данные и делать так: Код (Text): glTexImage2D(GL_TEXTURE_2D,0,4,32,32,0, GL_RGBA,GL_UNSIGNED_BYTE,mipmapImage32); glTexImage2D(GL_TEXTURE_2D,1,4,16,16,0, GL_RGBA,GL_UNSIGNED_BYTE,mipmapImage16); glTexImage2D(GL_TEXTURE_2D,2,4,8,8,0, GL_RGBA,GL_UNSIGNED_BYTE,mipmapImage8); glTexImage2D(GL_TEXTURE_2D,3,4,4,4,0, GL_RGBA,GL_UNSIGNED_BYTE,mipmapImage4); glTexImage2D(GL_TEXTURE_2D,4,4,2,2,0, GL_RGBA,GL_UNSIGNED_BYTE,mipmapImage2); glTexImage2D(GL_TEXTURE_2D,5,4,1,1,0, GL_RGBA,GL_UNSIGNED_BYTE,mipmapImage1);
AlexBond Среди функций OpenGL 1.4, а также ARB и EXT расширений вплоть до последней спецификации, если не ошибаюсь, такой функции нет.
Ясно, единственное что я нашел, это пользовательская функция загрузки DDS, но там через glCompressedTexImage2D, а у меня обычный формат. Ну напишу свою, может кому пригодится: Код (Text): procedureglLoad2DMipmaps(target: GLenum; Components, Width, Height: GLint; Format, atype: GLenum; Data: Pointer); var i:integer; begin for i:=0 to 10 do begin glTexImage2D(target,i,Components,Width,Height,0,Format,atype,Data); inc(Longword(Data),(Width*Height*Components)); if ((Width=1)and(Height=1))then break; Width:=Width div 2; Height:=Height div 2; end; end;