【问题标题】:Access every window's rendering area访问每个窗口的渲染区域
【发布时间】:2014-09-14 14:09:46
【问题描述】:

访问 Microsoft Windows 中每个窗口的渲染区域的最佳方法是什么,以便我可以自己以 3D 形式渲染它们?我知道桌面窗口管理器 (dwm) 为每个窗口提供了一个渲染目标,并将它们一起呈现在屏幕上。 那里有大量的 3D 窗口管理器,但对我来说很难找到一些代码或其他信息,所以我问你。 我想在 OpenGL 中做,但我可以想象它在 DirectX 中是可能的,但这也很好。 提前致谢!

【问题讨论】:

    标签: windows opengl directx render target


    【解决方案1】:

    您必须使用专用于该任务的操作系统/图形系统特定 API。 OpenGL 与操作和图形系统无关,没有“窗口”的概念。

    在 Windows 中,您必须使用的 API 是 DWM API。对于早于 DWM API(XP 和更早版本)的 Windows 版本,必须使用一些“肮脏”的技巧来获取窗口的内容(主要是挂钩 WM_PAINT 和 WM_ERASEBACKGROUND 消息,以及 GDI 的 BeginPaint 和 EndPaint 函数来复制窗口' 将内容放入可用于更新纹理的 DIBSECTION 中)。

    在 X11 中使用的 API 是 XComposite + GLX_ARB_texture_from_pixmap 扩展

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-14
      相关资源
      最近更新 更多