17

我们一直在考虑为我们的 C++ 应用程序添加不错的浏览器支持;这个问题是关于独立于 GUI 的浏览器库,因为我们的项目涉及 3D 渲染并且不太适合普通的 GUI。

到目前为止我见过的两个是BerkeliumAwesomium。从我的快速调查来看,两者似乎都以类似的方式工作,渲染到屏幕外缓冲区,您可以将其插入您自己的窗口/游戏/任何东西。Awesomium 是专有的,成本相当高(5000 美元),Berkelium 是开源和免费的。有没有人比较过这些(和其他)这样的工具?跨平台是一个好处,但不是 100% 必不可少的。

4

3 回答 3

13

看看Chromium 嵌入式框架。CEF 3 支持所有操作系统上的离屏渲染:Windows/Mac/Linux。

于 2013-07-01T19:23:33.567 回答
11

免责声明:我创建了 Awesomium。尽管如此,我会在我的回答中尽量保持客观。

Awesomium 确实要花一些钱,但它绝对是完成这项工作的最佳工具,我将用一个项目符号列表来捍卫我的理由:

  • 简单、有据可查的 API;我们已尽最大努力使 API 尽可能直观和易读。当您嵌入像整个浏览器框架一样大而复杂的东西时,这一点非常重要。(相信我,你不想直接嵌入 WebKit ——这就像吞下太阳一样。)

  • 无窗口渲染;该库从一开始就被设计为在标准“窗口框架”之外使用。我们让将 WebView 渲染到纹理变得非常容易:

void update()
{
    if(webView->isDirty())
        webView->render()->copyTo(texture, width * bpp, bpp, false);
}
  • 可靠的 Javascript 集成;如果您使用 Awesomium 作为 3D 游戏的 HTML GUI 渲染器,那么您肯定会想要利用我们的 Javascript <-> C++ 集成。您可以直接从 C++ 调用 Javascript 函数,反之亦然,设置回调,公开全局属性等等。我在这里的博客上写了一个大指南。

  • 得到很好的支持;我们使用从顶级商业许可证中获得的资金来资助图书馆的支持和发展。如果您需要帮助,请访问http://support.awesomium.com,我们很乐意提供帮助。

该库可免费用于非商业用途,并且对于独立开发者来说非常实惠。如果您想在您的下一个项目中使用 Awesomium 并且担心价格问题,请发送电子邮件至 adam@khrona.com 给我发电子邮件,我会看看是否能帮到您。:-)

于 2011-04-07T16:56:20.327 回答
3

Berkelium 使用起来真的很轻松。我在 6 天内将它集成到我的游戏中,您可以在此处阅读所有相关信息(以及其他一些选项):http ://www.onemanmmo.com/index.php?cmd=newsitem&comment=news.1.31.0

唯一的缺点是没有调试版本和 40MB 的二进制文件。

于 2011-04-14T07:40:35.747 回答