00001 00002 00003 #ifndef SINGLETEXTUREDMESH_H 00004 #define SINGLETEXTUREDMESH_H 00005 00006 00007 #include "Mesh.h" 00008 00009 00010 namespace pge { 00011 00012 00013 class LightShader; 00014 class Texture; 00015 class VBO; 00016 00017 00018 class SingleTexturedMesh : public Mesh { 00019 00020 public: 00021 //************************************************************************ 00022 // 00023 // Constructor 00024 // 00025 //************************************************************************ 00027 SingleTexturedMesh(bool disableLightShader = false); 00028 00029 00030 //************************************************************************ 00031 // 00032 // Destructor 00033 // 00034 //************************************************************************ 00036 virtual ~SingleTexturedMesh(void); 00037 00038 00039 //************************************************************************ 00040 // 00041 // Functions 00042 // 00043 //************************************************************************ 00044 bool init(void); 00045 void render(void); 00046 00047 void setTexture(Texture *texture); 00048 00049 00050 private: 00051 //************************************************************************ 00052 // 00053 // Functions 00054 // 00055 //************************************************************************ 00056 void buildVBO(void); 00057 void renderVBO(void); 00058 void renderImmediate(void); 00059 00060 void getSurroundingLights(void); 00061 00062 00063 //************************************************************************ 00064 // 00065 // Variables 00066 // 00067 //************************************************************************ 00068 Texture *m_texture; 00069 VBO *m_vbo; 00070 int m_vertexNum; 00071 00072 bool m_disableLightShader; 00073 LightShader *m_lightShader; 00074 }; 00075 }; 00076 00077 #endif