Metal-CPP 入门 – Metal – Développeur Apple

Metal-CPP 入门 – Metal – Développeur Apple

Metal-CPP 是适用于 Metal 的低开销 C ++ 接口 , 可帮助你将 Métal 功能添加到以 C ++ 语言编写的图形类 App 、游戏和游戏引擎中。

Découpe Laser Métal _ Banner _ R3V Laser

亮点

  • 使用 C ++ 接口替代 Metal 的 Objectif-C 头文件。
  • 直接映射所有 Metal Objective-C 类、常量和枚举到 C ++ 的 MTL 名字空间中。
  • 由于使用了 C ++ 内联函数调用 , 因此相较于使用 Métal 的 Objectif-C 头文件 , 无显著开销。
  • 没有使用需要额外内存分配的封装容器类。
  • 为 iOS 、 iPados 、 macOS 和 Apple tvos 提供完全相同的头文件和函数 / 常量 / 枚举。
  • 向后兼容 : 所有 bool MTL::Device::supports...() 函数都会检查其所需的 Sélecteur 是否存在;如果不存在 , 则自动返回 false
  • 字符串 (ErrorDomain) 常量为弱链接 , 在不可用时会自动设置为 nullptr

安装说明

1. 准备好 Mac。

2. 将 metal-cpp 文件夹添加到构建版本系统的头文件搜索路径中。

在 Xcode 中 :

  • 点按 «Project Navigator» (项目导航器)。
  • 点按所需项目。
  • 点按 «Créer des paramètres» (构建版本设置)。
  • 搜索 «Chemins de recherche d'en-tête» (头文件搜索路径)。
  • metal-cpp/ Xcode 截屏 , 其中显示了所输入的路径
  • 搜索 «C ++ Language Dialect» , 并确保将其设置为 C ++ 17 或更高版本。 Xcode 截屏 , 其中高亮显示了设置
  • 请务必将 Foundation 、 Quartzcore 和 Métal 框架添加到 框架添加到 «Build Phases» (构建版本阶段) 标签页下要链接的框架列表中。 Xcode 截屏 , 其中高亮显示了开发库

3. 生成实现代码。

metal-cpp 是一个只包含头文件的开发库。要生成实现代码 , 请在你的任意一个 .cpp : :

#define NS_PRIVATE_IMPLEMENTATION
#define CA_PRIVATE_IMPLEMENTATION
#define MTL_PRIVATE_IMPLEMENTATION
#include 
#include 
#include 

注 : 也可以将 metal-cpp 头文件放在引号中。

4. 使用 Metal-CPP。

在任何需要引用 metal-cpp 对象或类型的文件中 , 只需包含头文件即可让那些符号可见。

#include 
#include 
#include 

Ns_private_implementation 、Mtl_private_implementationCA_PRIVATE_IMPLATION 宏只能定义一次。

单个头文件的 Metal-cpp

为方便操作 , 你还可以在项目中以单个头文件的形式来包含 Metal-CPP。

在提取 Zip 文件内容后 , 请从终端运行以下命令以生成单个用来包含的头文件。

./SingleHeader/MakeSingleHeader.py Foundation/Foundation.hpp QuartzCore/QuartzCore.hpp Metal/Metal.hpp

运行完成后 , : :./SingleHeader/Metal.hpp。这个文件中包含你在项目中使用 metal-cpp 所需的一切。

请记得在一个 CPP 文件中生成实现代码。

#define NS_PRIVATE_IMPLEMENTATION
#define CA_PRIVATE_IMPLEMENTATION
#define MTL_PRIVATE_IMPLEMENTATION
#include 

内存管理注意事项

Metal-cpp 遵循 Cocoa 和 Coco-coco 的对象分配策略。了解这些规则对于使用 metal-cpp 尤其重要 , 因为 c ++ 对象不符合自动引用计数 (arc) 的条件。有关更多信息 , 请参考 metal-cpp 下载项中的 Readme 文件。

Source link

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Panier
Retour en haut
découpe laser pub