Chromium Embedded Framework:我可以使用DirectX渲染到画布中吗?

时间:2014-07-02 16:07:21

标签: chromium-embedded

我想将CEF嵌入到我的DirectX应用程序中。现在我想使用DirectX在显示的html页面中绘制Canvas元素。这个画布可能会被它上面的其他html元素遮挡,所以我不能只采用绝对Canvas坐标并在其上渲染,因为它也会渲染到我画布上的元素上。

我认为有两种可能性来解决这个问题:

  • 我可以让CEF在页面中显示我的纹理,因此CEF使用我的bytebuffer作为图像并经常更新该区域。
  • 我可以获得Canvas元素所在的屏幕区域,实际上可以看到它。

我无法在文档或示例应用程序中找出这两种可能性中的任何一种。

所以我的问题是:CEF可以实现吗?如果是的话。

1 个答案:

答案 0 :(得分:2)

CEF功能您正在寻找名为“屏幕外渲染”的功能,并在今年将其重命名为“无窗口渲染”。

刚才真正可用的(在稳定的1916分支中) - 它是由纯软件渲染器渲染到像素缓冲区。在此之后,您可以将像素缓冲区移动到曲面。请注意,软件渲染器不支持仅限gpu的加速内容。即像3D CSS变换之类的东西和一些动画将无法正常工作。但总的来说它运作正常。

您可以通过运行cefclient --off-screen-rendering-enabled来测试此模式。

在CEF中继分支2042中 - 它被切换到新的呈现代码路径。一旦问题https://code.google.com/p/chromiumembedded/issues/detail?id=1006得到解决 - 您就可以直接渲染到表面。

希望这有帮助。