diff --git a/include/devil1tex.h b/include/devil1tex.h index ffcc2b5..db19345 100644 --- a/include/devil1tex.h +++ b/include/devil1tex.h @@ -68,23 +68,4 @@ bool unpacktexbatch(struct Texture*, const char*, const unsigned int); -// -------------------------------------------------------+ -// Retired Functions -// These require the client allocate more on the heap. -// -------------------------------------------------------+ - -void gettbd(struct TextureBatchDescriptor**, - const char*, - unsigned int); - -unsigned int gettexturebatch( - struct TextureBatch**, - struct TextureBatchDescriptor**, - const char*, - unsigned int); - -void locatetextures(unsigned int*, - struct TexturePack*, - struct TextureBatchDescriptor**); - #endif diff --git a/src/devil1tex.c b/src/devil1tex.c index 9305e6b..567aff4 100644 --- a/src/devil1tex.c +++ b/src/devil1tex.c @@ -90,82 +90,6 @@ bool unpacktexbatch(struct Texture *t, return true; } -// -------------------------------------------------------+ -// Retired Functions -// -------------------------------------------------------+ - - -// get texture pack descriptors -void gettbd (struct TextureBatchDescriptor **descriptors, - const char *filedata, - unsigned int filesize) { - if (descriptors == NULL || filedata == NULL || filesize <= 0) { - return; - } - struct TexturePack *tp = NULL; - tp = (struct TexturePack*)filedata; - if (filesize <= (sizeof(struct TextureBatchDescriptor) - * tp -> batchNumber - + sizeof(struct TexturePack))){ - fprintf(stderr, - "File Error: file size to struct sizes ratio.\n"); - return; - } - unsigned int index = sizeof(struct TexturePack); - // Batch Descriptors are structured one after another. - // therefore the next one is at - // current index + sizeof(TextureBatchDescriptor) - unsigned int i = 0; - do { - index = sizeof(struct TextureBatchDescriptor) * i - + sizeof(struct TexturePack); - printf("batch descriptor start: %x\n", index); - descriptors[i] = (struct TextureBatchDescriptor*) - (filedata + index); - i++; - } while(i < (tp -> batchNumber)); - return; -} - -// returns total count of textures in the file. -unsigned int gettexturebatch( - struct TextureBatch **tb, - struct TextureBatchDescriptor **bds, - const char *filedata, - unsigned int filesize) { - struct TexturePack *tp = (struct TexturePack*)filedata; - unsigned int offset = tp -> firstBatchOffset; - unsigned int i; - unsigned int j; - unsigned int totaltextures = 0; - // TextureBatch shares a starting address with the first texture - // and shares the ending address with the last texture. - for (i = 0; i < tp -> batchNumber; i++) { - tb[i] = (struct TextureBatch*)filedata + offset; - // the next texture batch is TextureSize * number of textures away. - offset += bds[i] -> textureSize * (bds[i] -> texNumber); - totaltextures += bds[i] -> texNumber; - } - return totaltextures; -} - -void locatetextures(unsigned int *t, - struct TexturePack *tp, - struct TextureBatchDescriptor **bds) { - unsigned int i; - unsigned int j; - // k is access to index of textures. - unsigned int k = 0; - unsigned int offset = tp -> firstBatchOffset; - for (i = 0; i < tp -> batchNumber; i++) { - for (j = 0; j < bds[i] -> texNumber; j++) { - t[k] = offset; - offset += bds[i] -> textureSize; - k++; - } - } -} - diff --git a/test/main.c b/test/main.c index 6aa2cc0..25e8c21 100644 --- a/test/main.c +++ b/test/main.c @@ -107,38 +107,6 @@ void write(const char *filename, } } -void unpacktextures(const char *filedata, - unsigned int filesize, - const char *filename) { - struct TexturePack *tp = (struct TexturePack*)filedata; - struct TextureBatch **batches = NULL; - struct TextureBatchDescriptor **descripts = NULL; - batches = (struct TextureBatch**)malloc(tp -> batchNumber); - descripts = (struct TextureBatchDescriptor**)malloc(tp -> batchNumber); - gettbd(descripts, filedata, filesize); - // array of pointers - texture data exists in memory in filedata. - unsigned int texturecount = gettexturebatch(batches, - descripts, - filedata, - filesize); - unsigned int *tloc = (unsigned int*) - malloc(sizeof(unsigned int) * texturecount); - locatetextures(tloc, tp, descripts); - // add 3 to buffer for digits, & 4 for file extension - char *fmt = (char*)malloc(strlen(filename) + 3 + 4); - unsigned int texsize = 0; - unsigned int i; - for (i = 0; i < texturecount; i++) { - texsize = descripts[i/(tp -> batchNumber)] -> textureSize; - sprintf(fmt, "%s_%d.dds", filename, i); - write(fmt, filedata + tloc[i], texsize); - } - free(fmt); - free(tloc); - free(descripts); - free(batches); -} - void exporttextures(const char *filedata, unsigned int filesize, const char *filename) {