diff --git a/CLTool/src/clunix.cpp b/CLTool/src/clunix.cpp index a2cdb68..0ec8d87 100644 --- a/CLTool/src/clunix.cpp +++ b/CLTool/src/clunix.cpp @@ -1,18 +1,68 @@ #include #include +#include #include "TexComp.h" +void PrintUsage() { + fprintf(stderr, "Usage: tc [-s|-t ] \n"); +} + int main(int argc, char **argv) { - if(argc != 2) { - fprintf(stderr, "Usage: %s \n", argv[0]); + int fileArg = 1; + + int quality = 50; + int numThreads = 1; + bool bUseSIMD = false; + + bool knowArg = false; + do { + knowArg = false; + + if(strcmp(argv[fileArg], "-s") == 0) { + fileArg++; + bUseSIMD = true; + knowArg = true; + } + + if(strcmp(argv[fileArg], "-t") == 0) { + fileArg++; + + if(fileArg == argc || (numThreads = atoi(argv[fileArg])) < 1) { + PrintUsage(); + exit(1); + } + + fileArg++; + knowArg = true; + } + + if(strcmp(argv[fileArg], "-q") == 0) { + fileArg++; + + if(fileArg == argc || (quality = atoi(argv[fileArg])) < 1) { + PrintUsage(); + exit(1); + } + + fileArg++; + knowArg = true; + } + + } while(knowArg); + + if(fileArg == argc) { + PrintUsage(); exit(1); } - ImageFile file (argv[1]); + ImageFile file (argv[fileArg]); SCompressionSettings settings; + settings.bUseSIMD = bUseSIMD; + settings.iNumThreads = numThreads; + CompressedImage *ci = CompressImage(file, settings); // Cleanup