/*********************/ /*** Texture Cache ***/ /*********************/ #include "stdafx.h" #include "gl3d.h" #include #include #include #include // Header File For The Glaux Library #include #include "TexCache.h" #include "utils.h" /*****************************************************************************/ /*****************************************************************************/ /*****************************************************************************/ int CTexCache::GetTexIdx(char *Name,int Flags) { int ListSize=TexList.size(); for (int Count=0;CountsizeX; RGBData.Height=Aux->sizeY; RGBData.RGB=Aux->data; free(Aux); // Safe to free aux now, contents copied (I HATE AUX) } /**************************************************************************************/ void CTexCache::FreeBMP(sRGBData &RGBData) { if (RGBData.RGB) { free((unsigned char*)RGBData.RGB); } } /**************************************************************************************/ void CTexCache::LoadTex(sTex &ThisTex,sRGBData *TexData) { ThisTex.Width=TexData->Width; ThisTex.Height=TexData->Height; glGenTextures(1, &ThisTex.TexID); glBindTexture(GL_TEXTURE_2D, ThisTex.TexID); glTexImage2D(GL_TEXTURE_2D, 0, 3, TexData->Width, TexData->Height, 0, GL_RGB, GL_UNSIGNED_BYTE, TexData->RGB); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glBindTexture(GL_TEXTURE_2D, 0); } /**************************************************************************************/ /**************************************************************************************/ /**************************************************************************************/ void CTexCache::Purge() { int ListSize=TexList.size(); TRACE1("Purging %i textures\n",ListSize); for (int i=0; i