1

我们通过 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提供的像素数组?

4

2 回答 2

0

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

RGBA/BGRA?

SDL 程序中的颜色关闭

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

#if 用于 TARGET_CPU_PPC 并为所有内容使用一致的值,如 GL_RGBA。

希望这可以让你开始。

于 2013-02-12T21:54:40.593 回答
0

好的,感谢您的链接,一些调查和丢失的脑细胞,我们得出的结果是,我们可以通过 sdl 表面(表面->格式->Rmask)中定义的掩码检测像素数据的顺序,以决定我们是否使用 GL_UNSIGNED_INT_8_8_8_8或 GL_UNSIGNED_INT_8_8_8_8_REV。

于 2016-02-23T15:53:30.793 回答