00001 ////////////////////////////////////////////////////////////////////// 00002 // 6/6/02 Aaron Lefohn Scientific Computing and Imagint Institute 00003 // School of Computing University of Utah 00004 // 00005 // This library is free software; you can redistribute it and/or 00006 // modify it under the terms of the GNU Lesser General Public 00007 // License as published by the Free Software Foundation; either 00008 // version 2.1 of the License, or (at your option) any later version. 00009 // 00010 // This library is distributed in the hope that it will be useful, 00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 // Lesser General Public License for more details. 00014 // 00015 // You should have received a copy of the GNU Lesser General Public 00016 // License along with this library; if not, write to the Free Software 00017 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00018 00019 #if !defined(AFX_RENDERABLE_H__7A743838_5317_4D57_B2D5_6D5500997092__INCLUDED_) 00020 #define AFX_RENDERABLE_H__7A743838_5317_4D57_B2D5_6D5500997092__INCLUDED_ 00021 00022 #if _MSC_VER > 1000 00023 #pragma once 00024 #endif // _MSC_VER > 1000 00025 00026 #include "../core/gliftObject.h" 00027 #include "../util/compilable.h" 00028 #include "../util/dispList.h" 00029 00030 namespace glift { 00031 00032 ////////////////////////////////////////////////////////////////////////// 00033 /// 00034 /// Renderable: Base class for a render pass. 00035 /// 00036 /////////////////////////////////////////////////////////////////////// 00037 00038 class _export_ RenderableGLI : 00039 public Compilable, 00040 public GliftObject 00041 { 00042 public: 00043 RenderableGLI(); 00044 virtual ~RenderableGLI(); 00045 00046 void render(); 00047 void compile(); 00048 00049 protected: 00050 virtual void renderDef() = 0; 00051 00052 virtual bool isCompiled() const {return m_renderList.isCompiled();} 00053 private: 00054 DispList m_renderList; 00055 }; 00056 00057 } /// End of namespace glift 00058 00059 #endif /// !defined(AFX_RENDERABLE_H__7A743838_5317_4D57_B2D5_6D5500997092__INCLUDED_)