0

我遇到了该glGenerateMipmaps功能的分段错误。有没有人有任何想法?

我的load_texture()功能如下:

void load_texture(GlobalTexture* tex, const char* texture_fpath)
{
    glGenTextures(1, &(tex->global_texture));
    glBindTexture(GL_TEXTURE_2D, tex->global_texture);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);   
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);

    int width, height, n_chan;
    unsigned char* data = stbi_load(texture_fpath, &width, &height, &n_chan, 0);

    if (!data) {
        fprintf(stderr, "Error - failed to load global texture %s.\n", texture_fpath);
        exit(-1);
    } else {
        printf("Correctly loaded texture %s!\n", texture_fpath);
    }
    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, data);
    glGenerateMipmap(GL_TEXTURE_2D);
    stbi_image_free(data);
    printf("Finished texture loading.\n");
}

GlobalTexture结构是:

typedef struct {
    unsigned int global_texture;
} GlobalTexture;
4

0 回答 0