GLRender.h

Go to the documentation of this file.
00001 /* $Id: GLRenderer.h,v 1.6 2002/12/05 15:05:47 cvs Exp $ */
00002 
00003 #ifndef __GL_RENDER_H
00004 #define __GL_RENDER_H
00005 
00006 #include <gra/render/Render.h>
00007 #include <gra/framebuffer/FrameBuffer.h>
00008 #include <esg/SceneGraphObject.h>
00009 #include <esg/energy/PolygonalEnergy.h>
00010 #include <gra/shader/Shader.h>
00011 #include <esg/explorer/ObjsInAreaExplorer.h>
00012 #include <GL/gl.h>
00013 
00014 using namespace esg;
00015 
00016 namespace gra {
00017 
00027 class GRA_EXPORT GLRender : public Render {
00028 protected:
00029         struct TranslucentObj {
00030                 bool               transformed;
00031                 Matrix4            trMat;
00032                 SceneGraphObject * pObject;
00033         };
00034     
00035         GLuint _displayList;
00036         bool   _useDisplayList;
00037 
00038 protected:
00045         virtual void _render (Shader&      shader,
00046                               FrameBuffer& fb,
00047                               Camera&      camera,
00048                               Scene&       scene);
00049 
00050 public:
00057         GLRender (int  * stopFlag,
00058                   bool   useDisplayList = true)
00059             : Render(stopFlag),
00060               _displayList(0),
00061               _useDisplayList(useDisplayList) {}
00062 
00066         ~GLRender () { if (_displayList) glDeleteLists(_displayList,1); }
00067 
00071         virtual void clearDisplayList (void) {
00072             if (!_displayList) return;
00073             glDeleteLists(_displayList, 1);
00074             _displayList = 0;
00075         }
00076 
00080         virtual void useDisplayList (bool use) {
00081             if (!use) clearDisplayList();
00082             _useDisplayList = use;
00083         }
00084 
00088         virtual bool displayListUsed (void) const { return _useDisplayList; }
00089 };
00090 
00091 } // namespace
00092 
00093 #endif // __GL_RENDER_H

Generated on Tue Nov 21 15:11:42 2006 for gra by  doxygen 1.4.6