直接从C++应用程序绘制到WebGL画布

use*_*407 8 c++ qt canvas opengl-es webgl

我一直在尝试使用Qt Webkit在浏览器中呈现视频元素.我的所有帧都由C++应用程序(通过网络接收的源视频数据包)解码,我可以使用Qt在元素中显示视频,如下所述:QtWebEngine在DOM中渲染原生Qt小部件?但我受到Qt Webkit的z-index问题的限制:(

相反,我想知道以下任何一种情况是否可能,以及是否有人之前已经取得了这些成就.

我有一个C++应用程序,可以启动Chrome嵌入式框架窗口(基本上是一个浏览器窗口).我的C++应用程序有没有办法直接将视频呈现到浏览器窗口 - 使用webGL或类似的库?也许有一些方法我可以在C++应用程序中使用openGL写入显卡内存并让webGL读取显卡数据 - 如果存在这样的技术,这将是很棒的但我担心沙盒不会允许这样做.

例如

Browser webGL surface/object <--- C++ application <--- file/network data
Run Code Online (Sandbox Code Playgroud)

一个(非常!)天真的方法是浏览器窗口使用环回地址上的websocket连接到C++核心应用程序,websocket将表面流式传输到浏览器.然后可以将这些表面绘制到html5画布或由webGL使用 - 但这在延迟方面可能会很糟糕.

例如

Browser <--- websocket <--- C++ decode <--- file/network data
Run Code Online (Sandbox Code Playgroud)

非常感谢 - 任何其他我可以用于此代码示例的替代库的建议将非常感谢:)

arm*_*scu 0

我建议 CEF: https: //en.wikipedia.org/wiki/Chromium_Embedded_Framework 它完全支持现代 Google Chrome 浏览器可以执行的任何操作。事实上它就是 Chrome 浏览器。