Metal-CPP est une interface C ++ à faible échelle pour le métal qui vous aide à ajouter des fonctionnalités métalliques aux applications graphiques, aux jeux et aux moteurs de jeu qui sont écrits en C ++.
Points forts
- Déposez l'interface alternative C ++ aux en-têtes Metal Objective-C.
- Mappage direct de toutes les classes, constantes et énumérations de l'objectif-C métallique à C ++ dans l'espace de noms MTL C ++.
- Pas de frais généraux mesurables par rapport à l'appel des en-têtes Metal Objective-C, en raison de l'installation des appels de fonction C ++.
- Aucune utilisation de conteneurs en wrapper qui nécessitent des allocations supplémentaires.
- Fichiers d'en-tête identiques et fonction de fonction / constante / énumération pour iOS, iPados, macOS et TVOS.
- Compatibilité arrière: tout
bool MTL::Device::supports...()
Les fonctions vérifient si leurs sélecteurs requis existent et renvoient automatiquementfalse
sinon. - Chaîne
(ErrorDomain)
Les constantes sont liées faibles et réglées automatiquement surnullptr
Si ce n'est pas disponible.
Instructions d'installation
1. Préparez votre Mac.
2. Ajouter le metal-cpp dossier sur le chemin de recherche d'en-tête de votre système de construction.
Dans xcode:
- Cliquez sur le Navigator du projet.
- Cliquez sur le projet.
- Cliquez sur Créer des paramètres.
- Recherchez des chemins de recherche d'en-tête.
- Ajoutez le chemin du dossier extrait,
metal-cpp/
. - Recherchez le dialecte du langage C ++ et assurez-vous qu'il est défini sur C ++ 17 ou supérieur.
- Assurez-vous d'ajouter les cadres Foundation, Quartzcore et Metal à la liste des cadres à lier dans l'onglet Build Phases.
3. Générez l'implémentation.
metal-cpp est une bibliothèque d'en-tête uniquement. Pour générer l'implémentation, ajoutez le code suivant dans un de vos fichiers .cpp:
#define NS_PRIVATE_IMPLEMENTATION
#define CA_PRIVATE_IMPLEMENTATION
#define MTL_PRIVATE_IMPLEMENTATION
#include
#include
#include
Remarque: il est également possible d'inclure le metal-cpp En-têtes avec guillemets.
4. Utiliser Metal-CPP.
À partir de tous les fichiers qui doivent référencer metal-cpp objets ou types, incluez simplement les en-têtes pour rendre les symboles disponibles.
#include
#include
#include
IMPORTANT: ne définissez pas le NS, MTL ou Ca _private_implementation Macros plus d'une fois.
Metal-cpp Alternative d'en-tête unique
Pour plus de commodité, vous pouvez également utiliser metal-cpp En tant que tête à tête, incluez dans votre projet.
Après avoir extrait le contenu du fichier zip, exécutez la commande suivante à partir du terminal pour générer un seul en-tête d'inclusion.
./SingleHeader/MakeSingleHeader.py Foundation/Foundation.hpp QuartzCore/QuartzCore.hpp Metal/Metal.hpp
Une fois terminé, la commande aura généré un seul fichier: ./SingleHeader/Metal.hpp
. Ce fichier comprend tout ce que vous devez utiliser metal-cpp dans votre projet.
N'oubliez pas de générer l'implémentation dans un fichier CPP.
#define NS_PRIVATE_IMPLEMENTATION
#define CA_PRIVATE_IMPLEMENTATION
#define MTL_PRIVATE_IMPLEMENTATION
#include
Considérations de gestion de la mémoire
Metal-cpp suit les politiques d'allocation d'objets du cacao et Cocoa Touch. Comprendre ces règles est particulièrement important lors de l'utilisation metal-cpp Parce que les objets C ++ ne sont pas éligibles au comptage automatique de référence (ARC). Pour plus d'informations, reportez-vous au fichier Read Me dans le metal-cpp télécharger.