我希望能够在win32纹理中呈现一个OpenGL控件。以便能够对其进行三维变换。具体来说,我想嵌入Internet资源管理器,在3D转换窗口中显示网页和视频。
如何以足够快的速度将win32窗口呈现为纹理(我需要保留60 fps)?
发布于 2018-04-28 09:15:24
有几种方法你可以这样做。在所有情况下,您都需要从目标窗口(GetDC,GetDCEx )获取设备上下文(DC)。
然后,您可以直接读取像素(GetPixel;或者将内容混合到您自己的DC中) (BitBlt,然后访问它(例如,GetDIBits )。
由于您希望“嵌入”Internet Explorer,因此您可能意味着将其窗口隐藏起来;您将考虑如何在不可见、部分可见的窗口上工作,同时考虑您的windows版本和/或是否禁用了DWM (因此窗口的内容可能不可用)。看看PrintWindow来强制使用WM_PAINT/WM_PRINT。
一个小的MSDN指南可以向您介绍所有这些,并有一个完整的例子是:捕捉图像。
在任何情况下,您都可以通过将其他浏览器/引擎嵌入库(例如铬嵌入框架(CEF)、Qt's WebEngine、电子.)来寻找另一种解决方案。
https://stackoverflow.com/questions/50074138
复制相似问题