MS Windows-捕获Windows的gpu位图

MS Windows-捕获Windows的gpu位图,windows,opengl,textures,screenshot,Windows,Opengl,Textures,Screenshot,我假设dwm保存GPU中每个渲染窗口的位图数据。我可以访问这些数据吗?我想在D3D或OpenGL中使用它作为纹理。将每个窗口截屏到RAM并返回到GPU的速度太慢 我看过其他类似的帖子: 所以我很怀疑,但也许在过去的三年里发生了一些变化 编辑 那么,所有应用程序都使用Direct3D绘制所有组件吗?比如说,这个chrome浏览器的内容,或者文件浏览器的内容,或者任何东西在图形卡中以图像的形式存在,或者仅仅是通过Direct3D/2D渲染的边框之类的东西?在追求之前,我想确定一下。顺便说一句:我的想

我假设dwm保存GPU中每个渲染窗口的位图数据。我可以访问这些数据吗?我想在D3D或OpenGL中使用它作为纹理。将每个窗口截屏到RAM并返回到GPU的速度太慢

我看过其他类似的帖子:

所以我很怀疑,但也许在过去的三年里发生了一些变化

编辑


那么,所有应用程序都使用Direct3D绘制所有组件吗?比如说,这个chrome浏览器的内容,或者文件浏览器的内容,或者任何东西在图形卡中以图像的形式存在,或者仅仅是通过Direct3D/2D渲染的边框之类的东西?在追求之前,我想确定一下。顺便说一句:我的想法是在不运行备用外壳的情况下为Rift设计一个桌面。

每个进程都有一组可以共享的WDDM表面,但实现这一点所需的API几乎没有公开。这是按Alt+Tab键时翻转3D所做的事情。你能得到的最接近的方法是使用WDM缩略图API,但这真的不能满足你的需要。解释一下你的整个程序,可能还有另一种解决方案。我想如果你使用gdi和winform,你可以绑定到mono gdi,它是开源的,并且可以让你更容易地访问gpu内存。谷歌一下,我找到了一些的链接,也许会有帮助。。。