00001
00002
00003 #ifndef __RENDER_H
00004 #define __RENDER_H
00005
00006 #include <gra/GRAObject.h>
00007 #include <esg/SceneGraphObject.h>
00008 #include <gra/framebuffer/FrameBuffer.h>
00009 #include <esg/Intersector.h>
00010 #include <gra/shader/Shader.h>
00011 #include <gra/camera/Camera.h>
00012 #include <gra/scene/Scene.h>
00013
00014 using namespace esg;
00015
00016 namespace gra {
00017
00025 class GRA_EXPORT Render : public GRAObject {
00026 protected:
00027 int * _pStopFlag;
00028
00029 protected:
00039 virtual void _render (Shader& shader,
00040 FrameBuffer& fb,
00041 Camera& camera,
00042 Scene& scene) = 0;
00043
00044 public:
00050 Render (int* setStopFlag) : _pStopFlag(setStopFlag) {}
00051
00055 virtual ~Render () {}
00056
00066 virtual void renderScene (Shader& shader,
00067 FrameBuffer& fb,
00068 Camera& camera,
00069 Scene& scene)
00070 {
00071 if (scene.root()) _render(shader, fb, camera, scene);
00072 }
00073 };
00074
00075 }
00076
00077 #endif // __RENDER_H