0

ここに私のコードがあります

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::load: の呼び出しです。

vector <Texture> bgtextures;
bgtextures.resize(1);
Loader.load(IL_JPG,"bgsnow.jpg",&bgtextures[0]);

誰でも私を助けることができますか?

4

1 に答える 1