X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;ds=sidebyside;f=Source%2FTexture.cpp;h=ef20536da7b37f7268607d0a52ba0e44df69569e;hb=26debbd380c6922e5a0b60d99567c6374a4fef9a;hp=5c8834d70be6e83ec69a6b6fa5b3bf5cf078293c;hpb=35b5d8a643d2ff04614a8b9f57026b57d4a82667;p=lugaru.git diff --git a/Source/Texture.cpp b/Source/Texture.cpp index 5c8834d..ef20536 100644 --- a/Source/Texture.cpp +++ b/Source/Texture.cpp @@ -20,6 +20,7 @@ private: int skinsize; GLubyte* data; int datalen; + GLubyte* skindata; void load(); @@ -37,9 +38,11 @@ vector TextureRes::list; void TextureRes::load(){ //load image into 'texture' global var - unsigned char filenamep[256]; - CopyCStringToPascal(ConvertFileName(filename.c_str()),filenamep); - upload_image(filenamep,hasAlpha); + if(!skindata){ + unsigned char filenamep[256]; + CopyCStringToPascal(ConvertFileName(filename.c_str()),filenamep); + upload_image(filenamep,hasAlpha); + } skinsize=texture.sizeX; GLuint type=GL_RGBA; @@ -62,14 +65,18 @@ void TextureRes::load(){ } if(isSkin){ - free(data); - const int nb=texture.sizeY*texture.sizeX*(texture.bpp/8); - data=(GLubyte*)malloc(nb*sizeof(GLubyte)); - datalen=0; - for(int i=0;i::iterator it=list.begin();it!=list.end();it++) + for(vector::iterator it=list.begin();it!=list.end();it++){ + (*it)->id=0; (*it)->load(); + } }