如何保存帧缓冲区然后将其恢复

时间:2009-05-17 05:56:35

标签: c++ opengl graphics

嗨,我对openGL非常陌生,我正在尝试做一个类似于绘图工具的小项目..所以我只想保存帧缓冲区中的所有内容以保存在文件中并检索他们回来..

2 个答案:

答案 0 :(得分:1)

  

帧缓冲区中的所有内容?

如果您尝试捕获前/后缓冲区中的当前图像,glReadPixels(从帧缓冲区读取像素块)以及glReadBuffer可能就是您要查找的内容。 see OpenGL manual。这不一定是最快的方法,取决于您可以使用硬件的扩展,可能有更快的方式,但glReadPixels相当直接使用。 glDrawPixels将帮助您将数据恢复到帧缓冲区。您可以将原始图像存储到磁盘或转换/压缩。

答案 1 :(得分:0)

如果您希望将所有对象保存到文件中并重新加载,我不相信您应该使用OpenGL来执行此操作。将对象发送到OpenGL后,通常不会再次修改它们。如果您正在编写某种应用程序来在屏幕上绘制许多对象,那么最简单的方法就是自己跟踪对象。

如果您要查找最终图像,可以使用glReadPixels - 获取原始像素数据,或glCopyTexImage2D - 将屏幕上的内容保存到纹理中,以便在OpenGL中进一步使用。