是否存在用于在c ++中嵌入的HTML5 Canvas实现

时间:2011-08-01 12:48:32

标签: javascript c++ html5 canvas embedded-v8

我正在研究基于浏览器的游戏atm,并且已经开始研究将其移植到其他平台的选项,例如控制台或在网络浏览器中播放可能不合适的设备。

游戏几乎都是通过2D画布上下文完成渲染的JavaScript。

我所希望的是已经有一个c ++库/ api可以与google的v8引擎配合使用来处理JavaScript中的画布调用并使用opengl或类似的方式渲染它们

是否有人知道可能提供此功能的项目?

否则你会怎么想我在j ++中嵌入我的javascript,并尽可能少地修改javascript,因为我真的不想在平台之间保持太多差异?

4 个答案:

答案 0 :(得分:4)

Qt是一个非常好的C ++库,与LGPL许可兼容,其中包括一个基于webkit的小部件,支持javascript。此外,作为脚本语言Qt使用javascript与C ++紧密集成(很容易编写C ++类,并使其在javascript级别可见)。

Qt是一个多平台,并配有一个高度复杂的IDE。

Qt目前没有使用V8,但移植正在进行中,他们的目标是提供100%向后兼容的解决方案。

Qt的唯一“问题”是IMO:

  • 这是巨大的
  • 这是一个框架,而不是一个库。你不能轻易“使用”Qt,你应该接受视图(但文档质量很好)。
  • 长期前景有点模糊(不像几个月前那么糟糕),

答案 1 :(得分:1)

我想我在这里有点晚了,但我正在寻找类似的解决方案。我发现node-canvas并且我不知道是否可以将其挂钩,以便将其渲染为SDLSFML - 托管窗口。

但是出于我自己的目的,我会将代码移植到C ++并直接使用Cairo和SFML和OpenGL。

答案 2 :(得分:0)

有趣的想法 - 另一种可能性是使用Adobe Air,并通过StageWebView和Flex 4渲染游戏。如果您感兴趣,可以使用以下内容的一些示例代码:

https://github.com/JustinBeckwith/frink/blob/master/frink-flex/src/controls/WebBrowser.as

答案 3 :(得分:0)

我使用的一个有趣的项目是使用id FireBreath(firebreath.org)。这不是你想要的,但在某些方面它会让你接近。 Firebreath允许在C ++中创建浏览器插件。 Firebreath的一个功能是它允许您从浏览器插件中的C ++访问和修改DOM,以及在C ++中创建可以从页面上的JavaScript访问的方法和属性。