Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 访问每个窗口';s渲染区域_Windows_Opengl_Directx_Render_Target - Fatal编程技术网

Windows 访问每个窗口';s渲染区域

Windows 访问每个窗口';s渲染区域,windows,opengl,directx,render,target,Windows,Opengl,Directx,Render,Target,在Microsoft Windows中访问每个窗口的渲染区域的最佳方法是什么,以便我可以自己在3D中渲染它们?我知道桌面窗口管理器(dwm)给每个窗口一个rendertarget,并在屏幕上一起渲染它们。 现在有很多3D窗口管理器,但是找到一些代码或其他信息对我来说很难,所以我问你。 我想在OpenGL中实现它,但我可以想象这在DirectX中是可能的,但这也很好。 提前谢谢 您必须使用专用于该任务的操作系统/图形系统特定API。OpenGL与操作和图形系统无关,没有“windows”的概念 在

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

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

在Windows中,必须使用的API是DWM API。对于DWMAPI之前的Windows版本(XP和更早版本),必须使用一些“脏”黑客来获取窗口内容(基本上是挂接WM_PAINT和WM_Erasecase背景消息,以及GDI的BeginPaint和EndPaint函数,以将窗口内容复制到可用于更新纹理的DIBSECTION中)

在X11中,要使用的API是XComposite+来自pixmap扩展的GLX\u ARB\u纹理