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
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
00037 glGenTextures (1, &m_uiTexture);
00038
00039 glBindTexture (GL_TEXTURE_2D, m_uiTexture);
00040
00041 glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
00042 glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
00043
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
00049
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 }