Cette étude personnelle est développée en C++. Les API DirectX et OpenGL sont utilisées. La source est compilable à la fois sur Windows (via Visual Studio 2005, ainsi DirectX ou OpenGL peut-être utilisé avec une gestion de la fenêtre grâce aux libs de windows) et sur d'autres plateforme (testé sur Linux : Ubuntu 7.10, ainsi OpenGL est utilisé avec une gestion de la fenêtre grâce à la lib GLUT). Je n'ai pas voulu utiliser SDL, ce qui permet de s'affranchir de programmes externes.
(FreeGLUT a été utilisé pour remplacer GLUT)
Il n'y a aucune modification à apporter au code pour compiler l'ensemble sur visual studio 2005 ou par g++.
Historique :
22-01-2008 ::: Création du projet OGL/DX multi-plateformes
Conclusion :
Au final, on obtient un tas de #ifdef _WINDOWS... Ce qui est assez redondant mais nécessaire.
Un autre problème beaucoup plus embêtant est l'utilisation de GLUT. C'est une bibliothèque développée en C, ce qui pose donc quelques inconvénients quand à la modélisation du rendu sous forme de classes : glut nécessite de faire appel à des fonctions globales effectuant le rendu.
glutReshapeFunc(reshape);
glutDisplayFunc(draw);
Ces deux méthodes prennent une fonction en paramètre, et on ne peut les remplacer par des méthodes de classe. Il faut donc créer deux fonctions globales appelant les méthodes des diverses classes.
Je suis donc en train de réfléchir à une meilleur solution que GLUT pour le développement sous linux (ou d'autres plateformes).
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.