Voir la version complète : Organisation d'un moteur graphique
Flamaros
15/08/2005, 11h15
Voila je vais me lancer dans un moteur 2D(menu)/3D en OpenGL, mais surtout en C++. J'ai des petites questions au niveau de l'architecture qu'il doit prendre.
Les reponses sont forcement subjective, mais c'est pour avoir des avis histoire de voir si mes idees sont bonnes.
- La gestion des evenements (et la fenetre) doit elle faire partie integrante du moteu, peut-etre que le moteur peux integrer les plus courantes (SDL/GLUT/GTK)?
- Le moteur doit-il etre compose de plusieurs classes (texture manager, camera,...) qui heritent les une des autres, qui sont totalement independantes ou imbriquees?
- La gestion des evenements (et la fenetre) doit elle faire partie integrante du moteu, peut-etre que le moteur peux integrer les plus courantes (SDL/GLUT/GTK)?
Ca dépend de la finalité de ton moteur, mais en général ça l'est oui. Une bonne idée serait de coder une interface totalement abstraite pour ça, après libre à toi ou à l'utilisateur de fournir la couche bas niveau qui l'implémente.
- Le moteur doit-il etre compose de plusieurs classes (texture manager, camera,...) qui heritent les une des autres, qui sont totalement independantes ou imbriquees?
Ben... Il n'y a pas de réponse à cete question. Dans ton moteur tu auras des centaines de classes, des hiérarchies, des imbrications, etc... Ca dépend bien entendu de chaque classe. Par contre un conseil : utilise bien les espaces nommés.
Pour l'heritage la seule regle qui existe c'est qu'entre la classe parente et la classe fille il doit y avoir une relation "isA". Par exemple Moto et Voiture peuvent heriter de Vehicule mais Vehicule ne peut surement pas heriter de roues. Un vehicule a des roues mais n'est surement pas des roues...
Flamaros
16/08/2005, 11h38
Merci pour la confirmation, donc j'ai plus que le choix entre l'imbriquation et l'independance des classes.
Je crois que je vais les rendre independantes. Il va falloir que je vois pour que ca ne soit pas trop galere pour l'utilisateur.
Le mot juste est collaboration. Il faut que tes classes collaborent pour obtenir ce que tu desires. La difficulte reside dans l'obtention d'un design de classes flexible :00000013:
vBulletin® v.3.6.5, Copyright ©2000-2008, Jelsoft Enterprises Ltd. Tous droits réservés - Version française vbulletin-fr.org