TBH Un travail de portage comme celui-ci est impliqué mais assez facile.
Vous commencez par remplacer tous les appels DirectX par des «stubs» (c'est-à-dire des fonctions vides). Vous faites cela jusqu'à ce que vous puissiez obtenir le logiciel à compiler. Une fois compilé, vous commencez à implémenter toutes les fonctions stub. Il y aura un certain nombre de pièges en cours de route, mais cela en vaut la peine.
Si vous avez besoin de porter et de prendre en charge des téléphones avant l'iPhone 3GS, vous avez une tâche plus complexe car le matériel ne prend en charge que GLES 1 qui est uniquement à fonction fixe. Vous devrez "émuler" ces shaders d'une manière ou d'une autre. Sur les plates-formes mobiles, j'ai écrit, dans le passé, du code assembleur qui effectue un "vertex shading" directement sur les données de vertex. L'ombrage des pixels est souvent plus compliqué, mais vous pouvez généralement fournir suffisamment d'informations via le "vertex shading" pour que cela fonctionne. Certaines fonctionnalités graphiques que vous pourriez avoir à laisser tomber.
Les versions ultérieures de l'iPhone utilisent GLES 2 donc vous avez accès à GLSL ... ATI a écrit, et Aras P de la renommée de Unity3D a étendu, le logiciel qui portera HLSL code to GLSL. Une fois que vous avez fait tout cela, vous passez à l'étape de l'optimisation. Vous trouverez probablement que votre premier passage n'est pas très efficace. C'est parfaitement normal. À ce stade, vous pouvez regarder le code d'un niveau supérieur et voir comment vous pouvez déplacer le code et faire les choses différemment pour obtenir les meilleures performances.
En résumé: Votre première étape consistera à compiler le code sans DirectX. Votre prochaine étape sera le portage réel des appels DirectX vers les appels OpenGL ES. Enfin, vous voudrez refactoriser le code restant pour de meilleures performances.
(P.S.: Je serais heureux de faire le travail de portage pour vous Contactez-moi par ma page linkedin dans mon profil;)).
S'agit-il de jeux PC, pour un ordinateur de bureau, que vous souhaitez connecter à un appareil mobile? Quelle est l'intensité des graphiques, je suppose qu'ils sont en 3D, est le taux de rafraîchissement attendu 30 fps?Profitez-vous de ce que propose DirectX9? –
Oui, ils sont des jeux de bureau avec 3D, mais rien de très spécial, ils ont tous 10 ans, et assez simpliste. – rjstelling