вот мой кодзагрузки OGL текстуры с помощью DEVIL
typedef struct Texture
{
GLubyte *Data;
GLuint bpp;
GLuint width, height;
GLuint ID;
}Texture;
class TextureLoader
{
public:
TextureLoader()
{
ilInit();
iluInit();
}
void load(ILenum FileType, const char *filename, Texture *texture)
{
ilLoad(FileType, filename);
texture->width = ilGetInteger(IL_IMAGE_WIDTH);
texture->height = ilGetInteger(IL_IMAGE_HEIGHT);
texture->bpp = ilGetInteger(IL_IMAGE_BYTES_PER_PIXEL);
texture->Data = ilGetData();
ilEnable(IL_CONV_PAL);
unsigned int type = ilGetInteger(IL_IMAGE_FORMAT);
glGenTextures(1, &texture->ID);
glBindTexture(GL_TEXTURE_2D,texture->ID);
gluBuild2DMipmaps(GL_TEXTURE_2D, texture->bpp, texture->width,
texture->height, type, GL_UNSIGNED_BYTE, texture->Data);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR_MIPMAP_NEAREST);
}
}Loader;
и это не похоже на работу.
Существует ошибка сегментации после вызова gluBuild2DMipmaps.
Я не могу понять, что это проблема, потому что код был в основном копировать-вставить из примера (... Это вызов TextureLoader :: нагрузки:
vector <Texture> bgtextures;
bgtextures.resize(1);
Loader.load(IL_JPG,"bgsnow.jpg",&bgtextures[0]);
Может кто-нибудь помочь мне
'ilLoad()' может выйти из строя, почему вы не проверяете возвращаемое значение? Ставите, что вы получаете 'IL_COULD_NOT_OPEN_FILE', потому что ваш текущий рабочий каталог не соответствует вашей программе. – genpfault
ilLoad() desn't fail проблема с gluBuild2DMipmaps() – user4695473