meshgroup.h

00001 /*--License:
00002         Lilith 3D Engine
00003         Copyright Lee Thomason (Grinning Lizard Software) 2002-2004
00004         www.grinninglizard.com/lilith
00005 
00006         This program is free software; you can redistribute it and/or
00007         modify it under the terms of the GNU General Public License
00008         as published by the Free Software Foundation; either version 2
00009         of the License, or (at your option) any later version.
00010 
00011         This program is distributed in the hope that it will be useful,
00012         but WITHOUT ANY WARRANTY; without even the implied warranty of
00013         MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014         GNU General Public License for more details.
00015 
00016         You should have received a copy of the GNU General Public License
00017         along with this program; if not, write to the Free Software
00018         Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
00019 
00020         The full text of the license can be found in license.txt
00021 */
00022 
00023 #ifndef LILITH_MESHGROUP_INCLUDED
00024 #define LILITH_MESHGROUP_INCLUDED
00025 
00026 #include <stdio.h>
00027 #include "../grinliz/gldebug.h"
00028 #include "../grinliz/glgeometry.h"
00029 
00030 namespace lilith3d
00031 {
00032 
00033 class Mesh;
00034 class StaticMesh;
00035 class Lilith3D;
00036 struct Shader;
00037 
00038 enum ELightPass
00039 {
00040         BRIGHT_PASS,
00041         SHADOW_PASS,
00042         STENCIL_PASS
00043 };
00044 
00045 enum EPass
00046 {
00047         OPAQUE_PASS,
00048         BLEND_PASS,
00049 };
00050 
00051 //struct PolyCount
00052 //{
00053 //      int terrainPoly;
00054 //      int terrainQuad;
00055 //      int objectPoly;
00056 //      int objectCount;        // The # of objects, not the polys
00057 //      int particleQuad;
00058 //
00059 //};
00060 
00066 class MeshGroup
00067 {
00068   public:
00069         MeshGroup()     {}
00070         virtual ~MeshGroup()    {}
00071 
00072         virtual void DoCulling() = 0;
00073         virtual void StreamOut( const Shader* shader, ELightPass light, EPass pass ) = 0;
00074 };
00075 };
00076 
00077 #endif
00078 

Generated on Fri Mar 23 19:36:22 2007 for Lilith3D by  doxygen 1.5.1-p1