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
1.5.1-p1