是否有任何HTML5画布实现嵌入到c++中

Are there any HTML5 Canvas implementations for embedding in c++

本文关键字:c++ 实现 任何 HTML5 布实现 是否      更新时间:2023-10-16

我正在制作一款基于浏览器的游戏atm,并且已经在考虑将其移植到其他平台(游戏邦注:如主机或不适合在网页浏览器上玩游戏的设备)。

游戏基本上都是通过2d画布上下文进行渲染的JavaScript。

我希望的是,已经有一个c++库/api,将与可能谷歌的v8引擎一起工作,以处理JavaScript中的画布调用,并渲染它们与opengl或类似的东西

有人知道有一个项目可能提供这个功能吗?

否则你会认为我如何去嵌入我的javascript在c++与javascript需要尽可能少的变化,因为我真的不想要保持太多的平台之间的差异?

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

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

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

Qt的唯一"问题"是:

  • 它巨大的
  • 它是一个框架,而不是一个库。你不能只是简单地"使用"Qt,你应该接受这个观点(然而文档的质量非常好)。
  • 长期前景有点模糊(但不像几个月前那么糟糕)

我想我有点晚了,但我正在寻找一个类似的解决方案。我发现了node-canvas,我不知道挂钩它是否可行,因此它呈现为SDL或sfml管理的窗口之类的东西。

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

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

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

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