如何用C++在同一窗体中实现两个相同的OpenGL UserControl

How to implement two same OpenGL UserControl in the same one form with C++?

本文关键字:两个 OpenGL UserControl 实现 C++ 何用 窗体      更新时间:2023-10-16

我试图在同一个窗体中用相同的OpenGL上下文实现(即绘制)两个UserControl。换句话说,我想在窗体上同时显示两个相同的图片。我的工具是VC6,使用C++。

我试过很多方法,但都失败了。有人能给我一个简单的示例代码或一些建议吗?

编辑

看起来有两种可能性——要么将最终图像复制到第二个GUI元素,要么为第二个元素创建第二个"设备上下文",使用*MakeCurrent更改为它(请参阅下面的链接和讨论),然后重新渲染或blit结果。

副本:假设GL上下文直接绘制到您的主GUI元素(这将阻止您使用GUI库进行复制),您可以通过glReadPixels复制数据,或者通过帧缓冲区对象研究绘制到纹理,并使用glGetTexImage2D。然后我想找到一些方法在第二个GUI元素上显示原始图像数据(这部分我没有经验)。

MakeCurrent:使Linux上的当前OpenGL上下文为