如何将Win32窗口渲染为opengl纹理?

桑托斯

我希望能够在OpenGL纹理中渲染Win32控件。为了能够对其进行3d转换。具体来说,我想将Internet Explorer嵌入到3D转换后的窗口中显示网页和视频。

如何以足够快的方式将win32窗口渲染到纹理(我需要保持60 fps)?

橡子

您可以通过几种方法进行操作。在任何情况下,你需要从获取目标窗口的设备上下文(DC)( ,)。GetDCGetDCEx

然后,您可以直接读取像素(GetPixel);或将内容切成自己的DC(BitBlt),然后访问它(例如GetDIBits)。

由于您想“嵌入” Internet Explorer,因此您可能要隐藏其窗口。您将要考虑如何在不可见,部分可见等的窗口上执行上述操作。还要考虑您的Windows版本和/或是否禁用DWM(因此窗口的内容可能不可用) )。看一下PrintWindow强制WM_PAINT/ WM_PRINT

可以为您介绍所有这一切并提供完整示例的一个小型MSDN指南是:捕获图像

无论如何,您始终可以通过将其他一些浏览器/引擎嵌入为库(例如Chromium Embedded Framework(CEF)Qt的WebEngineElectron ...)来寻求替代解决方案

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章