我可以使用opengl在窗口上绘制一些不属于我的东西吗?

时间:2011-09-27 08:28:47

标签: qt opengl window

我听说您可以挂钩窗口句柄并将此窗口用作OpenGL画布。我知道如何挂钩窗户,但我找不到如何在这个窗口上绘图。

PS。如果有帮助,我正在使用Qt。

2 个答案:

答案 0 :(得分:3)

OpenGL上下文一次只能在一个线程中使用并绑定到进程。所以需要的是创建外部进程资源的OpenGL上下文。

在Windows上使用一些非常奇怪的黑客攻击,这至少可以在WinXP中使用(我不知道Vista或7);这通常包括共享大部分进程内存。

在X11 / GLX上,通过将上下文创建为间接渲染上下文(不幸的是,OpenGL-3没有完全间接的GLX规范,因为一些可疑的理由);间接上下文可以从多个进程中访问。

在任何情况下,两个流程都必须合作才能使其发挥作用。

答案 1 :(得分:0)

Qt有一些NativeWindow黑客你可以玩一点。

在Windows上,您可以使用findWindowEx获取HWND并询问其几何图形,然后将您自己的窗口置于其顶部。

你真的不应该随意干扰另一个进程的窗口 - 这是一个安全隐患。