在MAC OS X机器上,我使用FBO,深度RBO和带有freeglut的纹理RBO将3D场景渲染到FBO并对纹理进行渲染。所有人都使用标准的过剩功能和最后的glutMainLoop。
我正在使用glReadPixels来阅读FBO。我可以看到像素正在被正确读取。
然而,当我使用glutHideWindow隐藏过剩窗口时,我发现由glReadPixels重新启动的整个缓冲区设置为清除颜色(ff 00 00 00)。我不改变任何其他东西。我认为隐藏窗口时FBO根本没有渲染。我该如何改变?这是在MAC OS X上观察到的。如果您想查看代码,请告诉我。
答案 0 :(得分:1)
无法覆盖窗口,或者不会更新缓冲区。解决方案是渲染到屏幕外缓冲区(如果您的卡支持它)。否则,请将窗口保持在其他窗口之上,否则缓冲区将无效。
编辑:这与窗口系统有关,而与opengl无关