GL_TEXTURE_WARP_S/T не работает с gluBuild2DMipmaps
Код:
void LoadTexture (char *filename, long texture_id, long mag_filter, long min_filter,
long wrap_type, bool transparent = false) {
SDL_Surface *image;
image = IMG_Load (filename);
if (image == NULL) {
cout << "Couldn't load " << filename << ": " << SDL_GetError () << endl;
return;
}
glBindTexture (GL_TEXTURE_2D, texture_name[texture_id]);
if (transparent) {
glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA, image->w, image->h, 0, GL_RGBA,
GL_UNSIGNED_BYTE, image->pixels);
gluBuild2DMipmaps (GL_TEXTURE_2D, GL_RGBA, image->w, image->h, GL_RGBA,
GL_UNSIGNED_BYTE, image->pixels);
}
else {
glTexImage2D (GL_TEXTURE_2D, 0, GL_RGB, image->w, image->h, 0, GL_RGB,
GL_UNSIGNED_BYTE, image->pixels);
gluBuild2DMipmaps (GL_TEXTURE_2D, GL_RGB, image->w, image->h, GL_RGB,
GL_UNSIGNED_BYTE, image->pixels);
};
glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
GLenum error = glGetError ();
cout << error << endl;
//glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_R, GL_REPEAT);
//glTexEnvi (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
}
Что неправильно? Я не получаю ошибок, всё должно работать, но не работает.
GL_REPEAT не работает: текстура распрастраняется на весь полигон, а должна повторяться.
Спасибо.