00001
00007 #ifndef RENDER_MANAGER_H
00008 #define RENDER_MANAGER_H
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00023
00036 typedef enum {IMAGE_BASED,SCENE_BASED} RenderPipelineRegime;
00037
00038 typedef struct RenderManagerProfile {
00039
00040 RenderPipelineRegime rp_regime = IMAGE_BASED;
00041
00042 } RenderManagerProfile;
00043
00044 class RenderManager {
00045
00046 public :
00047
00049 static void init(const RenderManagerProfile &profile,RenderContext *rc);
00051 static void init(const RenderManagerProfile &profile,const PrimitivePlotter &plotter);
00053 static void render(Scene &scene);
00054
00055 protected :
00056
00058 static void plot_poly(const Polygon &p);
00060 static void plot_plist(const Mesh &mesh);
00061
00062 private :
00063
00065 static RenderManagerProfile &profile;
00067 static RenderContext *rc;
00069 static PrimitivePlotter &plotter;
00070
00071 };
00072
00073
00074 #endif //RENDER_MANAGER_H