【问题标题】:Can I draw something on window, that does not belongs to me, using opengl?我可以使用opengl在窗口上画一些不属于我的东西吗?
【发布时间】:2011-11-25 20:14:13
【问题描述】:

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

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

【问题讨论】:

    标签: qt opengl window


    【解决方案1】:

    Qt 有一些NativeWindow hack,你可以玩一下。

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

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

    【讨论】:

      【解决方案2】:

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

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

      在 X11/GLX 上,通过将上下文创建为间接渲染上下文要容易得多(不幸的是,OpenGL-3 没有完整的间接 GLX 规范,出于某些不正当的借口);可以从多个进程访问间接上下文。

      在任何情况下,两个进程都必须合作才能完成这项工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-29
        相关资源
        最近更新 更多