【问题标题】:Offscreen & embeddable browsers comparison (for use in a game) [closed]屏幕外和可嵌入浏览器比较(用于游戏)[关闭]
【发布时间】:2011-07-01 20:54:36
【问题描述】:

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

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

【问题讨论】:

  • 这显然是题外话,因为它是关于推荐一个场外资源。

标签: c++ 3d embedded-browser awesomium berkelium


【解决方案1】:

免责声明:我创建了 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 函数,反之亦然,设置回调,公开全局属性等等。我写了一个big guide on my blog here

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

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

【讨论】:

  • 感谢您的回复。出于兴趣,您是否与我提到的其他库有任何直接比较?我没有有兴趣从头开始,我同意这工作量太大了!
  • 当然,Berkelium 的 API 更简单一些(您必须实现一些额外的功能),但它的许多核心功能与 Awesomium 相同(并非巧合,Berkelium 是在 Awesomium 之后创建的)。两者都支持 Windows 和 Mac OSX,Berkelium 也支持 Linux。 Awesomium 有很多额外的修改:全局样式表(用于样式滚动条等)、JS 回调、标题重写、URL 过滤、自定义资源加载、HTML 字符串加载、自定义 cookie、暂停/恢复等等。您可以自己将所有内容添加到 Berkelium/Chromium 源中,只是需要更长的时间。
  • 其他一些框架也值得一看:CEF(更多用于 Chromium 的窗口嵌入)、QtWebKit(如果你已经在使用 Qt 那就太好了)、Mozilla Gecko(呃,XPCOM)、EAWebKit(非常原始,但它支持 PS3 和 xbox360)。希望这会有所帮助。
  • 我对他们两个的主要问题是在 OSX 上似乎都没有 64 位版本会破坏我的构建系统......没有时间处理这个问题。
  • 有 64 位版本的计划吗?除了这个,Awesomium 上的一切看起来都很有希望 ;)
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

    看看Chromium Embedded Framework。 CEF 3 支持所有操作系统上的离屏渲染:Windows/Mac/Linux。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-17
      • 1970-01-01
      • 2014-08-13
      • 2014-10-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多