00001 /************************************************************************/ 00002 /* Ex Nihlo Engine by Hermanns Christophe */ 00003 /************************************************************************/ 00004 /* This program is free software; you can redistribute it and/or */ 00005 /* modify it under the terms of the GNU General Public License */ 00006 /* as published by the Free Software Foundation; either version 2 */ 00007 /* of the License, or (at your option) any later version. */ 00008 /* */ 00009 /* This program is distributed in the hope that it will be useful, */ 00010 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ 00011 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ 00012 /* */ 00013 /* See the GNU General Public License for more details. */ 00014 /* */ 00015 /* You should have received a copy of the GNU General Public License */ 00016 /* along with this program; if not, write to the Free Software */ 00017 /* Foundation, Inc., 59 Temple Place - Suite 330, */ 00018 /* Boston, MA 02111-1307, USA. */ 00019 /* */ 00020 /* If you use a important part of this code please send me a mail */ 00021 /* I just want to see where my code go thks :) */ 00022 /************************************************************************/ 00023 00024 00025 /************************************************************************/ 00026 /* Contact */ 00027 /************************************************************************/ 00028 /* ExNihilo Website :www.ploksoftware.org */ 00029 /* */ 00030 /* Hermanns Christophe ExNihilo creator and main programmer */ 00031 /* */ 00032 /* Mail : Data@ploksoftware.org */ 00033 /* ICQ : 8030901 */ 00034 /* MSN Messenger : Data_7@hotmail.com */ 00035 /* */ 00036 /* */ 00037 /************************************************************************/ 00038 00039 /************************************************************************/ 00040 /* File Description */ 00041 /************************************************************************/ 00042 /* File Name :ExManagerVertexProgram.h */ 00043 /* */ 00044 /* Start Date :03/15/2002 */ 00045 /* */ 00046 /* Last Update :06/20/2003 */ 00047 /* */ 00048 /* File Description : */ 00049 /* */ 00050 /* For update of this file check : www.ploksoftware.org */ 00051 /************************************************************************/ 00052 00053 #ifndef __EXMANAGERVERTEXPROGRAM_H__ 00054 #define __EXMANAGERVERTEXPROGRAM_H__ 00055 //------------------------------------------------------------------------ 00056 //Includes 00057 //------------------------------------------------------------------------ 00058 #include "ExDefine.h" 00059 00060 //------------------------------------------------------------------------ 00061 #include "Manager/ManagerObject/ExManagerObject.h" 00062 //------------------------------------------------------------------------ 00063 #include "Object/ExCVertexProgram.h" 00064 //------------------------------------------------------------------------ 00065 class ExManagerVertexProgram : public ExManagerObject<ExCVertexProgram> 00066 { 00067 private: 00068 //------------------------------------------------------------------------ 00069 // Variable 00070 //------------------------------------------------------------------------ 00071 PFNGLGENPROGRAMSNVPROC glGenProgramsNV; 00072 PFNGLDELETEPROGRAMSNVPROC glDeleteProgramsNV; 00073 PFNGLBINDPROGRAMNVPROC glBindProgramNV; 00074 PFNGLLOADPROGRAMNVPROC glLoadProgramNV; 00075 PFNGLPROGRAMPARAMETER4FNVPROC glProgramParameter4fNV; 00076 PFNGLTRACKMATRIXNVPROC glTrackMatrixNV; 00077 GLuint g_vertexProgramID; 00078 //------------------------------------------------------------------------ 00079 // Singleton creation 00080 //------------------------------------------------------------------------ 00081 static bool m_flag; 00082 static ExManagerVertexProgram *m_instance; 00083 ExManagerVertexProgram(void); 00084 ~ExManagerVertexProgram(void); 00085 public: 00086 static ExManagerVertexProgram* CreateSingleton(void); 00087 //------------------------------------------------------------------------ 00088 // Methode 00089 //------------------------------------------------------------------------ 00090 void Init (void); 00091 void Reset (void); 00092 void Draw (void); 00093 unsigned char * readShaderFile( const char *fileName ); 00094 }; 00095 //------------------------------------------------------------------------ 00096 #endif //__EXMANAGERVERTEXPROGRAM_H__