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

Winapi 将像素数据直接从windows设备上下文复制到openGL渲染上下文,winapi,opengl,gdi,Winapi,Opengl,Gdi,是否可以将像素数据直接从windows设备上下文复制到openGL渲染上下文(具体来说是openGL纹理)中?我知道我可以将windows设备上下文像素数据复制到系统内存中(从图形卡中取出),然后稍后将其上传回openGL帧缓冲区,但我要寻找的是直接传输,数据不必离开GPU 我试图写一个应用程序,本质上是一个虚拟的放大镜。它由一个窗口组成,其中显示在其下方打开的任何其他窗口的内容。我的应用程序的目标是使用windows 8及更高版本的计算机,我使用的是基本的win32 API。我希望使用open

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

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

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


任何帮助都将不胜感激。

听起来像是过早的优化。为什么不将像素数据复制到系统内存中,并从中构建OpenGL纹理?如果没有其他东西的话,它会让你感觉到你可以期望的性能,并为将来可能的评测比较提供一个基准。我确实采取了先将像素数据复制到系统内存中,然后再将其复制回openGL纹理的方法。就我的目的而言,这种方法似乎足够快。