将像素数据直接从Windows设备上下文复制到openGL渲染上下文

时间:2016-01-25 23:01:17

标签: winapi opengl gdi

是否可以将像素数据直接从Windows设备上下文复制到openGL渲染上下文(openGL纹理,具体)?我知道我可以将windows设备上下文像素数据复制到系统内存中(从显卡中取出),然后将其上传回我的openGL帧缓冲区,但我所寻找的是直接转移到哪里数据不必离开GPU。

我正在尝试编写一个本质上是虚拟放大镜的应用程序。它由一个窗口组成,该窗口显示在其下面打开的任何其他窗口的内容。我的应用程序的目标是具有Windows 8及更高版本的计算机,我使用的是基本的win32 API。我之所以想使用openGL显示窗口内容是因为我希望用GPU执行各种空间变换(扭曲),而不仅仅是放大。使用openGL,我相信我可以非常快速地执行这些转换。

以前,我认为我所要做的就是"移动"我的openGL渲染上下文到每个"第三方"我希望从中窃取像素数据的窗口,并使用glReadPixels()将此数据复制到PBO中。然后,我可以将渲染上下文切换回放大镜窗口,然后继续渲染。但是,我知道这是不可能的,因为openGL无法访问任何未使用openGL本身呈现的像素数据。

非常感谢任何帮助。

0 个答案:

没有答案