【问题标题】:How to paint the same opengl drawing in two different borland builder windows?如何在两个不同的 borland builder 窗口中绘制相同的 opengl 绘图?
【发布时间】:2011-04-12 20:58:58
【问题描述】:

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

我应该使用像素缓冲区对象还是帧缓冲区对象? 与 glReadPixels ?或 glBindFrameBuffer ? 我什么时候需要调用这些函数?在我画之前还是之后?

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

【问题讨论】:

    标签: c++ opengl c++builder


    【解决方案1】:

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

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

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

    请注意,没有像 “OpenGL 项目”这样的东西。 OpenGL 一次只处理一个图元(=三角形、四边形、点、线),并且在渲染中没有持久性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多