改变为SDL2.0时,纹理颜色变得不同

时间:2015-01-01 01:04:29

标签: textures glsl sdl-2

有关此主题的多个问题有关纹理颜色未正确显示的问题。我需要从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);

enter image description here

可能出现的错误是什么?格式版本如何依赖?

编辑这就是.png图片的外观。下图仅适用于飞机。 enter image description here

0 个答案:

没有答案