SDL OpenGL SDL_image Mac:显示输出(移位颜色)

时间:2013-02-12 21:33:34

标签: macos opengl sdl textures

我们通过SDL_image加载纹理,然后通过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机上,颜色似乎转移了。他的显示器上有一种强烈的蓝色纹理。当然,那必须处理internalFormat(这里是GL_BGRA_EXT)。我们尝试了所有我们发现并运行的(正确编译),但没有给出正确的mac输出。任何想法如何了解mac如何计算SDL_image提供的像素数组?

2 个答案:

答案 0 :(得分:0)

我还没有开始使用SDL openGL,但这里有一些可能相关的潜在关键字。

RGBA/BGRA?

Colors are off in SDL program

http://www.opengl.org/wiki/Common_Mistakes

#if for TARGET_CPU_PPC and using a consistent value like GL_RGBA for everything.

希望这可以帮助你开始。

答案 1 :(得分:0)

好的,多亏了你的链接,一些调查和脑细胞丢失,我们得出的结果是我们可以通过sdl表面中定义的掩模(surface-> format-> Rmask)来检测像素数据的顺序。决定我们是否使用GL_UNSIGNED_INT_8_8_8_8或GL_UNSIGNED_INT_8_8_8_8_REV。