将OpenGL FBO纹理渲染到GLXPixmap

时间:2009-12-31 21:43:23

标签: opengl x11 render-to-texture glx

我正在编写一些代码,旨在: 1.使用FBO渲染为OpenGL纹理。 2.从FBO纹理绘制到GLXPixmap,GLXPixmap附加到X Pixmap。 3.将X Pixmap绘制到屏幕上的一个窗口。

第3步效果很好,如果用普通的OpenGL绘图替换FBO纹理,第2步工作正常。

但是,如果我做上面的事情,至少使用我的代码,它不起作用。如果我给GLXPixmap一个彩色背景,然后做1-3,屏幕上的窗口变成白色,但是我没有画出任何其他内容。

所以我希望有人可以提供提示,或者指出一些简单的示例代码。我为此获得的代码相当复杂,但如果需要,我可以尝试编写一个简单的示例版本发布到此处进行审核。

1 个答案:

答案 0 :(得分:1)

如果你的最后两个步骤有效,但没有使用你在第一步中创建的FBO,那么你可能错误地初始化了FBO。有些事要检查:

  • 是FBO“framebuffer complete”吗?在将所有纹理和/或渲染缓冲区附加到其后使用glCheckFramebufferStatus( GL_FRAMEBUFFER_COMPLETE )进行检查。
  • 你有没有办法在渲染后检查FBO(例如使用glGetTexImage)来确定问题是写入FBO还是从中读取?
  • 您可能已经检查过了,但值得一提的是:glGetError()是否会返回任何错误?

如果一切都正确检查出来,那么发布一些骨架设置和渲染代码......虽然回复越少越好,当然=)

相关问题