我遇到了该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;