OK, donc pour ce tutoriel j’ai va être expliquant en détail comment on peut installer une application Novell c# qui s’exécute sur WP 8.1, Windows 8.1 (magasin), Android et iOS * et c’est très important permet l’utilisation d’OpenGL ES 2.0 vues alimentés par des convertisseurs de C++. C’est quelque chose que j’ai récemment eu besoin de mettre en œuvre pour un projet de mon propre et je suis sûr que d’autres pourraient aussi trouve ça pratique. En fait, j’ai déjà ai déjà trouvé quelqu'un sur le Forum de Novell qui a besoin de cela.
La raison pour laquelle on voudrait cela est assez évident. J’entends beaucoup de OpenGL ES code est écrit en C++ et toutes les principales plates-formes prennent désormais en charge elle par le biais de C++. Cela inclut Windows Store et Windows Phone avec les récentes avancées dans le projet de l’ANGLE. Dans bien des cas le gain de performances de C++ sur Visual c# serait également très bénéfique dans ce domaine. OpenTK sur toutes les plateformes sauf les fenêtres ceux (qui utilisent les ANGLE et n’avez pas encore de prise en charge OpenTK) semble être le moyen principal d’utiliser OpenGL de c# mais malheureusement comme je l’ai déjà mentionné, il n’est pas disponible sur les plateformes de Windows non de bureau. En outre, comme je la conçois, OpenTK utilise P/Invoke, ce qui est bien, mais avec un marshaling participants pouvaient voir une performance sérieuse diminuent lorsque vous exécutez un convertisseur c# vs C++ lorsqu’il y a beaucoup de OGL appelle et énormément de transfert de données (et, par conséquent, conversion).
Maintenant, la question évidente est peut-être, pourquoi pas il suffit d’utiliser C++ dans l’ensemble ? La réponse à cela, comme beaucoup d'entre vous qui lisez ceci probablement déjà savent est parce que ce n’est pas vraiment donc tout droit vers l’avant. L’un des principaux avantages de l’utilisation de c#, par rapport à C++ pour les projets multi-plateforme est bien sûr Novell et Xamarin.Forms** qui permet de créer des interfaces utilisateur natif sur toutes les plateformes prises en charge sans vraiment avoir à faire beaucoup plates-formes spécifiques de travail, surtout quand votre travail uniquement avec les contrôles standard. Malheureusement, vous devrez écrire des implémentations pour les contrôles d’affichage GLES séparément pour chaque plate-forme, mais une fois que vous avez eux nous pouvons réutiliser autant que nous aimons. Pour en revenir à mon histoire, la seule façon que je sais de parvenir à quelque chose comme cela en C++ est par le biais de Qt et qui est vraiment juste créer des applications de plateforme agnostique qui sont de style pour ressembler à des systèmes d’exploitation au moment de l’élaboration ou juste un style avec quelques illustrations génériques qui ressemblait sorte de droite sur les différentes plateformes au moment de la création. Pas quelque chose que vous voulez... En dehors de cela, je ne sais pas du tout ce qui prend également en charge Windows (magasin et téléphone). En outre, Qt ne fournit pas de toute forme de native Windows style Phone-ish au moment de l’écriture... Enfin, à l’aide de C++ pour le développement multi-plateforme général est également pas vraiment aussi à l’aise d’utiliser ni aussi facile à gérer comme c# avec Novell, qui offre une très grande quantité de partage de codes. En outre, je pense que la plupart d'entre vous conviendrez qu’à l’aide de c# est tout simplement plus agréable en utilisant C++ de quelques façons. Nous souhaitons donc vraiment juste que C++ pour faire le rendu 3D et probablement scène construction et manipulation, mais nous ne le veux pas près des autres parties de la demande pour éviter certaine frustration grave pour la plupart.
* Actuellement, je ne peux pas mettre en oeuvre la partie iOS en raison du manque de matériel Mac, mais vous pouvez voir la page étape dédié pour plus de détails sur ce que vous pouvez toujours essayer de le faire.
** Actuellement Xamarin.Forms ne fonctionne pas pour Android sur VS 2015 communauté RC et je ne pouvais donc pas implémenter Xamarin.Forms mais vous pouvez voir la page étape dédié pour plus de détails sur ce que vous pouvez toujours essayer de le faire.