如何在桌面上绘制PyOpengl或pyglet?

时间:2011-06-29 20:10:51

标签: python windows opengl pyglet pyopengl

我正在编写一个应用程序,希望使用OpenGL在Windows 7桌面上绘制基本多边形和椭圆。根据前一个问题,这可能是通过将窗口句柄移到桌面上,我知道该怎么做。 Draw OpenGL on the windows desktop without a window

但是,我有两个问题:

  1. 你在哪里告诉OpenGL要绘制哪个窗口?我一直在查看示例1,我根本无法弄清楚它在哪里传递openGL hwnd。我是否给openGL一个窗口句柄或设备上下文?

  2. 是否可以使用PyOpenGL或Pyglet执行此操作?或者我是否必须在C中编写它,然后将代码包装在ctypes中?

1 个答案:

答案 0 :(得分:2)

尝试在另一个进程窗口上执行OpenGL是一个非常非常糟糕的想法!要使OpenGL工作,需要设置窗口的像素格式。然而,窗口的像素格式只能设置一次,因此在外部窗口上执行此操作会导致灾难。

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