屏幕外和可嵌入浏览器比较(用于游戏)

17

我们考虑将良好的浏览器支持添加到我们的C ++应用程序中; 这个问题是关于独立于GUI的浏览器库,因为我们的项目涉及3D渲染,不太适合常规GUI。

到目前为止,我看到的两个都是BerkeliumAwesomium。从我的快速调查中,它们似乎以类似的方式工作,将内容呈现到一个离屏缓冲区中,然后您可以将其blt到自己的窗口/游戏/任何其他项目中。 Awesomium是专有的,并且价格相当高(5000美元),而Berkelium是开源且免费的。是否有人比较过这些(和其他)工具?跨平台是一个优点,但不是必需的。


1
这显然是不相关的,因为它涉及到推荐一个非本站资源。 - Puppy
3个回答

13

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,我会尽力帮助你。 :-)


谢谢您的回复。顺便问一下,您是否有与我提到的另一个库进行过直接比较?我对从头开始没有任何兴趣,我同意这太费力了! - Mr. Boy
1
当然,Berkelium的API有点更加简洁(需要实现一些额外的内容),但它执行许多与Awesomium相同的核心功能(这并非巧合,Berkelium是在Awesomium之后创建的)。两者都支持Windows和Mac OSX,而Berkelium还支持Linux。Awesomium有很多额外的修改:全局样式表(用于样式滚动条等),JS回调,头部重写,URL过滤,自定义资源加载,HTML字符串加载,自定义cookie,暂停/恢复等等。你可以将所有这些添加到Berkelium / Chromium源代码中,只是需要更长的时间。 - Adam
还有一些其他的框架也值得关注:CEF(更适合嵌入Chromium窗口),QtWebKit(如果你已经在使用Qt,那么这个框架非常棒),Mozilla Gecko(呃,XPCOM),EAWebKit(比较原始但支持PS3和xbox360)。希望这能帮到你。 - Adam
我的主要问题是它们似乎都没有64位版本的OSX,这破坏了我的构建系统...我没有时间处理这个。 - Matthew Clark
有没有64位版本的计划?除此之外,Awesomium上的一切看起来都很有前途 ;) - Andy Reimann
Awesomium在Mac上没有提供x86_64版本:/ 我不想为了使用它而降低我的工具链。 - Qix - MONICA WAS MISTREATED

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接