version: 0.2.0
Contrats graphiques : fenetre, dessin 2D et 3D, entrees.
Deux contrats chargeables separement, pas un module monolithique : un
vendor implemente IGraphic2Module seul s'il ne sait dessiner qu'en 2D, ou
IGraphic3Module (qui l'etend) s'il sait aussi faire de la 3D. Aucun
vendor n'est jamais force de simuler une capacite qu'il n'a pas.
- window ->
IWindow2 - texture ->
ITexture - font ->
IFont - polygon ->
IPolygon - sprite ->
ISprite, construit depuis uneITexture - text ->
IText, construit depuis uneIFont
- window ->
IWindow3, qui EST uneIWindow2: elle dessine la 2D aussi - camera ->
ICamera - mesh ->
IMesh - animation set ->
IAnimationSet - model ->
IModel, construit depuis unIMesh, texture par uneITexture, anime par unIAnimationSet
IWindow- cycle de vie et entrees natives, independant de toute capacite de dessin. C'est elle qui donneIKeyboard,IMouse,IGamepad.IWindow2 : IWindow- ajoute le dessin 2D.IWindow3 : IWindow2- ajoute le dessin 3D.
ITexture, IFont, IMesh et IAnimationSet portent la donnee chargee.
ISprite, IText et IModel n'en portent qu'une reference : supprimer
tous les sprites d'une texture ne supprime pas la texture, seul
deleteTexture() le fait.