Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.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 OS X上的glutHideWindow和glReadPixels_Macos_Opengl_Osx Snow Leopard_Glut_Freeglut - Fatal编程技术网

Macos OS X上的glutHideWindow和glReadPixels

Macos OS X上的glutHideWindow和glReadPixels,macos,opengl,osx-snow-leopard,glut,freeglut,Macos,Opengl,Osx Snow Leopard,Glut,Freeglut,在MAC OS X机器上,我使用FBO、深度RBO和纹理RBO以及freeglut将3D场景渲染到FBO,并进行纹理渲染。最后使用标准glut函数和glutMainLoop 我正在使用glReadPixels从FBO读取。我可以看到像素被正确读取 但是,当我使用glutHideWindow隐藏glut窗口时,我发现glReadPixels返回的整个缓冲区被设置为clear color(ff 00)。我没有改变其他任何事情。我认为当窗口被隐藏时,FBO根本没有被渲染到。我如何改变这个?这在MAC

在MAC OS X机器上,我使用FBO、深度RBO和纹理RBO以及freeglut将3D场景渲染到FBO,并进行纹理渲染。最后使用标准glut函数和glutMainLoop

我正在使用glReadPixels从FBO读取。我可以看到像素被正确读取


但是,当我使用glutHideWindow隐藏glut窗口时,我发现glReadPixels返回的整个缓冲区被设置为clear color(ff 00)。我没有改变其他任何事情。我认为当窗口被隐藏时,FBO根本没有被渲染到。我如何改变这个?这在MAC OS X上被观察到。如果您想查看代码,请告诉我。

窗口无法覆盖,或者缓冲区将不会更新。解决方案是渲染到屏幕外缓冲区(如果您的卡支持)。否则,请将窗口置于其他窗口之上,否则缓冲区将无效


编辑:这与窗口系统有关,而与opengl无关。窗口无法覆盖,或者缓冲区不会更新。解决方案是渲染到屏幕外缓冲区(如果您的卡支持)。否则,请将窗口置于其他窗口之上,否则缓冲区将无效


编辑:这与窗口系统有关,而与opengl无关

任何可用的渲染到屏幕外缓冲区的示例?此外,在这种情况下,我如何在OS X中设置窗口系统以使其更新?我正在使用glut。对不起,我不知道OSX是否支持glut,但linux不支持。对于离屏渲染,如果您的卡支持PBuffer,这可能会有所帮助,然后您可以使用它。使用FBO的离屏渲染可以工作,但仅当显示窗口时。OSX专家?实际上它与OpenGL有关,它被称为“像素所有权测试”,在GL规范中定义。有没有可用的渲染到屏幕外缓冲区的示例?还有,在这种情况下,我如何在OSX中设置窗口系统,以便更新它?我正在使用glut。对不起,我不知道OSX是否支持glut,但linux不支持。对于离屏渲染,如果您的卡支持PBuffer,这可能会有所帮助,然后您可以使用它。使用FBO的离屏渲染可以工作,但仅当显示窗口时。OSX专家?实际上它与OpenGL有关,它被称为“像素所有权测试”,它在GL规范中定义。