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 /* Contact */ 00026 /************************************************************************/ 00027 /* ExNihilo Website :www.ploksoftware.org */ 00028 /* */ 00029 /* Hermanns Christophe ExNihilo creator and main programmer */ 00030 /* */ 00031 /* Mail : Data@ploksoftware.org */ 00032 /* ICQ : 8030901 */ 00033 /* MSN Messenger : Data_7@hotmail.com */ 00034 /* */ 00035 /* */ 00036 /************************************************************************/ 00037 00038 /************************************************************************/ 00039 /* File Description */ 00040 /************************************************************************/ 00041 /* File Name :ExCTexture.h */ 00042 /* */ 00043 /* Star Date :03/15/2002 */ 00044 /* */ 00045 /* Last Update :06/20/2003 */ 00046 /* */ 00047 /* File Description : */ 00048 /* */ 00049 /* For update of this file check : www.ploksoftware.org */ 00050 /************************************************************************/ 00051 00052 #ifndef __EXCTEXTURE_H__ 00053 #define __EXCTEXTURE_H__ 00054 //------------------------------------------------------------------------ 00055 //Includes 00056 //------------------------------------------------------------------------ 00057 #include "ExDefine.h" 00058 //------------------------------------------------------------------------ 00059 #include "Math/ExMath.h" 00060 //------------------------------------------------------------------------ 00061 #include "Object/ExCObject.h" 00062 //------------------------------------------------------------------------ 00063 #include "Tools/ExCImageLoader.h" 00064 //------------------------------------------------------------------------ 00065 class ExCTexture : public ExCObject 00066 { 00067 //------------------------------------------------------------------------ 00068 // Variable 00069 //------------------------------------------------------------------------ 00070 protected: 00071 // ARB_texture_compression 00072 PFNGLCOMPRESSEDTEXIMAGE3DARBPROC glCompressedTexImage3DARB; 00073 PFNGLCOMPRESSEDTEXIMAGE2DARBPROC glCompressedTexImage2DARB; 00074 PFNGLCOMPRESSEDTEXIMAGE1DARBPROC glCompressedTexImage1DARB; 00075 PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC glCompressedTexSubImage3DARB; 00076 PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC glCompressedTexSubImage2DARB; 00077 PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC glCompressedTexSubImage1DARB; 00078 PFNGLGETCOMPRESSEDTEXIMAGEARBPROC glGetCompressedTexImageARB; 00079 00080 int m_Anisotropy_level; 00081 bool m_Anisotropy; 00082 bool m_SGIS_Mimap; 00083 bool m_ARB_Texture_Compression; 00084 00085 public: 00086 GLuint m_Texture; 00087 int m_Compression; 00088 ExCImageLoader *m_Image; 00089 //------------------------------------------------------------------------ 00090 // Constructor // Destructor 00091 //------------------------------------------------------------------------ 00092 ExCTexture(void); 00093 ExCTexture(std::string FileName); 00094 ~ExCTexture(void); 00095 //------------------------------------------------------------------------ 00096 // Methode 00097 //------------------------------------------------------------------------ 00098 void SetName(std::string Name); 00099 bool LoadFile(std::string FileName); 00100 bool SaveFile(std::string FileName,int width,int height); 00101 void SetActive(void); 00102 inline GLuint GetGlTextureId(void){return m_Texture;} 00103 inline void SetAnisotropyLevel(bool state,int level){m_Anisotropy=state;m_Anisotropy_level=level;} 00104 inline void SetSGISMipMap(bool state){m_SGIS_Mimap=state;} 00105 inline void SetTextureCompression(bool state){m_ARB_Texture_Compression=state;} 00106 }; 00107 //------------------------------------------------------------------------ 00108 #endif //__EXCTEXTURE_H__