我们通过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提供的像素数组?
答案 0 :(得分:0)
我还没有开始使用SDL openGL,但这里有一些可能相关的潜在关键字。
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。