我目前正在使用C ++开发轻量级游戏引擎,但是我正在Mac上进行开发。最初,我使用的是Bootcamp,但我想尝试使用premake在Mac上实现它。我想在引擎中实现一些Metal支持,我知道我需要使用Objective-C ++。有什么方法可以在Objective-C ++中创建金属窗口并将其绑定到我的C ++代码中?
[现有一个用于C ++的Metal包装器库,https://github.com/naleksiev/mtlpp(由MIT许可)。我还没有任何亲身经历,所以我不能这样,但是代码看起来很简单,如果遇到任何问题或限制,则可以修复或扩展它没有太多麻烦。有一个示例也创建了一个窗口,因此至少涵盖了该窗口的基本知识:https://github.com/naleksiev/mtlpp/blob/master/examples/04_window.cpp
正如@warrenm在评论中指出的那样,在Objective-C和C ++之间创建“胶水”的关键是通过不包含任何Objective-C关键字或类型(在其中的
runtime
标头)。