如何在两个不同的Borland构建器窗口中绘制相同的opengl绘图?

时间:2011-04-12 20:58:59

标签: c++ opengl c++builder

我有一个borland构建器窗口窗体,其中在计时器上绘制一个opengl项。 我想在anther borland builder窗口中同时绘制这个opengl项目。

我应该使用Pixel Buffer Objects还是Frame Buffer对象? 使用glReadPixels?还是glBindFrameBuffer? 什么时候需要我调用这些功能?在我画画之前或之后?

或者在第二种形式中调用我的第一张表格的RC或DC是否更简单? 如果有可能,我怎么称呼它?

1 个答案:

答案 0 :(得分:1)

为其他窗口创建其他OpenGL上下文,使用也共享纹理的wglShareLists共享上下文对象。

  • 如果可以看到相同的视图(相同的分辨率,渲染等): 使用纹理作为帧缓冲对象的颜色缓冲附件,绘制到此FBO。然后在所有窗口中使用此纹理绘制纹理四边形。

  • 如果是不同的视图:单独渲染每个窗口。

请注意,不存在像“OpenGL项目” 这样的事情。 OpenGL一次只处理一个基元(=三角形,四边形,点,线),并且渲染中没有任何持久性。