Page principale | Hiérarchie des classes | Liste des classes | Liste des fichiers | Membres de classe | Membres de fichier

mipmaps_2d.cpp

Aller à la documentation de ce fichier.
00001 #include "mipmaps_2d.h" 00002 #include "texture_manager.h" 00003 #include "window_sdl.h" 00004 00005 CMipmaps2D::CMipmaps2D ( 00006 const char* szMipmap1, 00007 const char* szMipmap2, 00008 const char* szMipmap3, 00009 const char* szMipmap4, 00010 const char* szMipmap5) 00011 { 00012 _Load (szMipmap1, szMipmap2, szMipmap3, szMipmap4, szMipmap5); 00013 } 00014 00015 CMipmaps2D::~CMipmaps2D () 00016 { 00017 glDeleteTextures (1, &m_uiTexture); 00018 } 00019 00020 void CMipmaps2D::_Load ( 00021 const char* szMipmap1, 00022 const char* szMipmap2, 00023 const char* szMipmap3, 00024 const char* szMipmap4, 00025 const char* szMipmap5) 00026 { 00027 m_szFilename = szMipmap1; 00028 00029 // Groove - 03/03/2004 - Chargement de l'image grâce à GTL, une ligne et c'est fait ! 00030 gtl::CImageTGA Image1 (szMipmap1); 00031 gtl::CImageTGA Image2 (szMipmap2); 00032 gtl::CImageTGA Image3 (szMipmap3); 00033 gtl::CImageTGA Image4 (szMipmap4); 00034 gtl::CImageTGA Image5 (szMipmap5); 00035 00036 // Groove - 08/09/2004 - Création d'un objet de texture 00037 glGenTextures (1, &m_uiTexture); 00038 // Groove - 03/03/2004 - La texture indiqué par m_uiTexture est la testure courante. 00039 glBindTexture (GL_TEXTURE_2D, m_uiTexture); 00040 // Groove - 03/03/2004 - Indique le filtre qui sera appliqué à la texture. 00041 glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); 00042 glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); 00043 // Groove - 03/03/2004 - Indique comment la texture sera appliqué en decors des coordonnées de la texture. 00044 glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); 00045 glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_R, GL_REPEAT); 00046 glTexParameteri (GL_TEXTURE_2D, GL_GENERATE_MIPMAP_SGIS, GL_TRUE); 00047 00048 // 14/03/2004 - Le second paramètre de la fonction glTexImage2D () indique le numero de mipmap. Plus le numéro est grand, plus la mipmap sera utilisé pour une distance lointaine par rapport au point de vue 00049 // 14/03/2004 - Usuellement, pour chaque incrément du numéro de mipmap, la texture est 2 fois plus petite. Personnaliser les mipmaps permet d'outrepasser cette règle. 00050 glTexImage2D (GL_TEXTURE_2D, 0, GL_RGB, Image1.GetSizeX (), Image1.GetSizeY (), 0, GL_BGR, GL_UNSIGNED_BYTE, Image1.GetData ()); 00051 glTexImage2D (GL_TEXTURE_2D, 1, GL_RGB, Image2.GetSizeX (), Image2.GetSizeY (), 0, GL_BGR, GL_UNSIGNED_BYTE, Image2.GetData ()); 00052 glTexImage2D (GL_TEXTURE_2D, 2, GL_RGB, Image3.GetSizeX (), Image3.GetSizeY (), 0, GL_BGR, GL_UNSIGNED_BYTE, Image3.GetData ()); 00053 glTexImage2D (GL_TEXTURE_2D, 3, GL_RGB, Image4.GetSizeX (), Image4.GetSizeY (), 0, GL_BGR, GL_UNSIGNED_BYTE, Image4.GetData ()); 00054 glTexImage2D (GL_TEXTURE_2D, 4, GL_RGB, Image5.GetSizeX (), Image5.GetSizeY (), 0, GL_BGR, GL_UNSIGNED_BYTE, Image5.GetData ()); 00055 } 00056 00057 void CMipmaps2D::Bind () const 00058 { 00059 glBindTexture (GL_TEXTURE_2D, m_uiTexture); 00060 } 00061 00062 ETextureType CMipmaps2D::Type () const 00063 { 00064 return TEXTURE_TYPE_MIPMAPS_2D; 00065 }

Généré le Sun Sep 26 11:36:46 2004 pour Shoot(r) par doxygen 1.3.8