我希望能够在OpenGL纹理中渲染Win32控件。为了能够对其进行3d转换。具体来说,我想将Internet Explorer嵌入到3D转换后的窗口中显示网页和视频。
如何以足够快的方式将win32窗口渲染到纹理(我需要保持60 fps)?
您可以通过几种方法进行操作。在任何情况下,你需要从获取目标窗口的设备上下文(DC)( ,)。GetDC
GetDCEx
然后,您可以直接读取像素(GetPixel
);或将内容切成自己的DC(BitBlt
),然后访问它(例如GetDIBits
)。
由于您想“嵌入” Internet Explorer,因此您可能要隐藏其窗口。您将要考虑如何在不可见,部分可见等的窗口上执行上述操作。还要考虑您的Windows版本和/或是否禁用DWM(因此窗口的内容可能不可用) )。看一下PrintWindow
强制WM_PAINT
/ WM_PRINT
。
可以为您介绍所有这一切并提供完整示例的一个小型MSDN指南是:捕获图像。
无论如何,您始终可以通过将其他一些浏览器/引擎嵌入为库(例如Chromium Embedded Framework(CEF),Qt的WebEngine,Electron ...)来寻求替代解决方案。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句