(Long titre mais précis)
Je suis en train de retravailler un peu mes bases sous OpenGL, essentiellement en vue de passer à OpenGL|ES pour un prochain projet, et je me demandais s'il était envisageable semblable à celle-ci:

Une interface
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
class Renderable
{
public:
  virtual render();
};
 
typedef boost::shared_ptr<Renderable> RenderablePtr;
dont héritent les classes utilitaires.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
class RenderableVA : public Renderable {}; //rendu avec Vertex Array
class RenderableVBO : public Renderable {}; //rendu avec VBO
class RenderableDL : public Renderable {}; //rendu avec DisplayList
class RenderableDirect : public Renderable {}; //rendu avec les glBegin/glEnd etc.
Vu que le rendu direct avec glBegin/glEnd va jarter avec OpenGL 3.0, ca me laisse la liberté de l'implémenter ou pas (et si implmentation il y a, juste pour debugger).

Qu'est-ce que vous pensez de ce genre d'hiérarchie?