Page principale   Liste des namespaces   Hiérarchie des classes   Liste par ordre alphabétique   Liste des composants   Liste des fichiers   Membres des namespaces   Composants   Déclarations  

ExCImageLoader.h

Aller à la documentation de ce fichier.
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 /* Benjamin Michotte Linux port, webmaster                              */
00036 /*                                                                      */
00037 /* Mail             :binny@ploksoftware.org                             */
00038 /*                                                                      */
00039 /************************************************************************/
00040 
00041 /************************************************************************/
00042 /* File Description                                                                                             */
00043 /************************************************************************/
00044 /* File Name   :InputActionList.h                                                                               */
00045 /*                                                                                                                                              */
00046 /* Star Date   :03/15/2002                                                                                              */
00047 /*                                                                                                                                              */
00048 /* Last Update :                                                        */
00049 
00050 #ifndef __EXCIMAGELOADER__
00051 #define __EXCIMAGELOADER__
00052 //--------------------------------
00053 // File to include
00054 //--------------------------------
00055 #include "ExDefine.h"
00056 #include "ExMath.h"
00057 #include "ExNihiloExecption.h"
00058 
00059 //--------------------------------
00060 // Define type
00061 //--------------------------------
00062 #define TGA_RGB          2              // Normal RGB file
00063 #define TGA_A            3              // ALPHA file
00064 #define TGA_RLE         10              // Run-Length Encoded (RLE) file
00065 //-------------------------------
00066 enum TextureType
00067 {
00068         BMP,TGA,PCX,JPG,RGB,RAW,PPM,UNKNOWN
00069 };
00070 //-------------------------------
00071 class ExCImageLoader
00072 {
00073 private:
00074 //--------------------------------
00075 // Variable
00076 //--------------------------------
00077         typedef struct
00078         {
00079                 unsigned char manufacturer;
00080                 unsigned char version;
00081                 unsigned char encoding;
00082                 unsigned char bits;
00083                 unsigned char xMin;
00084                 unsigned char yMin;
00085                 unsigned char xMax;
00086                 unsigned char yMax;
00087                 unsigned char *palette;
00088         } PCXHEADER;
00089 //--------------------------------
00090 // Methode
00091 //--------------------------------
00092         unsigned char *LoadPCXFile(std::string filename, PCXHEADER *pcxHeader);
00093         //void DecodeJPG(jpeg_decompress_struct* cinfo, tImage *pImageData);
00094         TextureType FindTextureType(std::string FileName);
00095 public:
00096 //--------------------------------
00097 // Variable
00098 //--------------------------------
00099         TextureType             m_TextureType;
00100         int                             m_channels;                     // The channels in the image (3 = RGB : 4 = RGBA)
00101         int                             m_sizeX;                                // The width of the image in pixels
00102         int                             m_sizeY;                                // The height of the image in pixels
00103         long int                m_scaledWidth;
00104         long int                m_scaledHeight;
00105         unsigned int    m_type; // RGB,RGBA...
00106         unsigned char   *m_data;        // The image pixel data
00107         unsigned char   *m_palette;
00108         
00109 //--------------------------------
00110 // Constructor // Destructor
00111 //--------------------------------
00112         ExCImageLoader(void);
00113         ExCImageLoader(std::string FileName);
00114         ~ExCImageLoader(void);
00115 //--------------------------------
00116 // Methode
00117 //--------------------------------
00118         bool LoadImage(std::string FileName);
00119         bool LoadImage(const char *strFileName);
00120         bool LoadBMP(const char *strFileName);
00121 
00122         bool LoadBMP(std::string strFileName);
00123         bool LoadTGA(std::string strFileName);
00124         bool LoadJPG(std::string strFileName);
00125         bool LoadPCX(std::string strFileName);
00126         bool LoadRAW(std::string strFileName);
00127         bool LoadRGB(std::string strFileName);
00128         bool LoadPPM(std::string strFileName);
00129 };
00130 
00131 #endif //__EXCIMAGELOADER__
00132 
00133 
00134 
00135 
00136 
00137 
00138 
00139 
00140 
00141 
00142 

Généré le Tue Dec 10 18:18:08 2002 pour ExNihilo par doxygen1.3-rc1