gpt4 book ai didi

c++ - 如何将 win32 窗口渲染为 opengl 纹理?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:41:59 27 4
gpt4 key购买 nike

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

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

最佳答案

您可以通过多种方式来解决这个问题。在所有情况下,您都需要从目标窗口(GetDCGetDCEx)获取设备上下文 (DC)。

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

既然您想“嵌入”Internet Explorer,那么您的意思可能是隐藏它的窗口;您将需要考虑如何在不可见、部分可见等窗口上进行上述工作。还要考虑您的 Windows 版本和/或 DWM 是否可能被禁用(因此窗口的内容可能不可用) ).看看PrintWindow强制执行 WM_PAINT/WM_PRINT

一个小型 MSDN 指南可以向您介绍这一切并有一个完整的例子:Capturing an Image .

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

关于c++ - 如何将 win32 窗口渲染为 opengl 纹理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50074138/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com