有关此主题的多个问题有关纹理颜色未正确显示的问题。我需要从SDL1.2将代码更改为SDL2.0。 SDL2.0中的代码如下: 最初在SDL1.2中,我使用GL_RGBA作为格式,在SDL2.0中也是如此,它没有用,然后在搜索了一段时间后我才知道GL_BGRA可以提供帮助,但它没有
unsigned int num;
glGenTextures(1,&num);
SDL_Surface* img=IMG_Load(filename);
SDL_Surface* img2=SDL_ConvertSurface( img, gScreenSurface->format,0 );
glBindTexture(GL_TEXTURE_2D,num);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA,img2->w,img2->h,0,GL_BGRA,GL_UNSIGNED_INT_8_8_8_8,img2->pixels);
SDL_FreeSurface(img);
SDL_FreeSurface(img2);
可能出现的错误是什么?格式版本如何依赖?
编辑这就是.png图片的外观。下图仅适用于飞机。