2

我正在编写一个应用程序,它希望使用 OpenGL 在 Windows 7 桌面上绘制基本的多边形和椭圆。根据this previous question,这可能是通过获取桌面的窗口句柄,我知道该怎么做。 在没有窗口的windows桌面上绘制OpenGL

但是,我有两个问题:

  1. 您实际上在哪里告诉 OpenGL 要绘制到哪个窗口?我一直在查看示例 1,但我根本无法弄清楚它到底在哪里通过 openGL 的 hwnd。我是否给 openGL 一个窗口句柄或设备上下文?

  2. 是否可以使用 PyOpenGL 或 Pyglet 做到这一点?还是我必须用 C 编写它,然后将代码包装在 ctypes 中?

4

1 回答 1

2

尝试在另一个进程的窗口上执行 OpenGL 是一个非常非常糟糕的主意!为了让 OpenGL 工作,它需要设置窗口的像素格式。然而,一个窗口的像素格式只能设置一次,所以在一个外部窗口上这样做是灾难的根源。

正确的方法是使用 PBuffer,它有自己的离屏 HDC,渲染到这个 PBuffer 和从 PBuffer 到目标窗口的 BitBlt,但它很慢。我自己从来没有实现过这个,所以我不能告诉你它的第一手效果如何。但这听起来像是一件有趣的事情,所以也许我下次在我的机器上启动 Windows 时会这样做。

于 2011-06-29T21:08:40.773 回答