Macos SDL OpenGL SDL_图像Mac:显示输出(变换颜色)
我们通过SDL_图像加载纹理,然后通过textimage2d将它们加载到OpenGL:Macos SDL OpenGL SDL_图像Mac:显示输出(变换颜色),macos,opengl,sdl,textures,Macos,Opengl,Sdl,Textures,我们通过SDL_图像加载纹理,然后通过textimage2d将它们加载到OpenGL: glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, texture->w, texture->h, 0, GL_BGRA_EXT, GL_UNSIGNED_BYTE, (GLuint**)texture->pixels ); 在我的windows电脑上,运行正常,但在我朋友的Mac电脑上,颜色似乎有所改变。他的显示器上有强烈的蓝色纹理。当然,这必须处理GL_BG
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, texture->w, texture->h,
0, GL_BGRA_EXT, GL_UNSIGNED_BYTE, (GLuint**)texture->pixels );
在我的windows电脑上,运行正常,但在我朋友的Mac电脑上,颜色似乎有所改变。他的显示器上有强烈的蓝色纹理。当然,这必须处理GL_BGRA_EXT中的内部格式。我们尝试了所有我们找到的方法并正确运行编译,但没有一个能为mac提供正确的输出。有没有关于mac如何计算SDL_image提供的像素阵列的想法?我还没有开始使用SDL openGL,但这里有一些可能相关的关键字
希望这能让你开始。好的,感谢你的链接,一些调查和丢失的脑细胞,我们得出的结果是,我们可以通过sdl曲面->格式->Rmask中定义的遮罩来检测像素数据的顺序,以确定是使用GL_UNSIGNED_INT_8_8_8_8_8_8_8_REV.还是使用GL_UNSIGNED_INT_8_8_REV.这里的内部格式是GL_BGRA_EXT No.纹理的内部格式是GL_RGBA。此外,如果你不能像描述一个强烈的蓝色纹理那样更好地描述实际问题,那么很难知道是什么错了。你不能提供问题的屏幕截图和修复版本吗?好的,多亏了你的链接、一些调查和丢失的脑细胞,我们得出的结果是,我们可以通过sdl surface->format->Rmask中定义的掩码检测像素数据的顺序,以决定我们是使用GL_UNSIGNED_INT_8_8_8_8_8_8_8_8_REV。