Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos SDL OpenGL SDL_图像Mac:显示输出(变换颜色)_Macos_Opengl_Sdl_Textures - Fatal编程技术网

Macos SDL OpenGL SDL_图像Mac:显示输出(变换颜色)

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

我们通过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_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。