#include #include #include #include"cmd_parse.h" #include"pixel_format.h" #include #include using namespace hgl; bool sub_folder =false; const PixelFormat * pixel_fmt[4] ={nullptr,nullptr,nullptr,nullptr}; //选中格式 bool gen_mipmaps =false; //是否产生mipmaps bool use_color_key =false; //是否使用ColorKey uint8 color_key[3]; //ColorKey颜色 const PixelFormat *ParseParamFormat(const cmd_parse &cmd,const char *flag,const PixelFormat *default_format) { std::string fmtstr; if(!cmd.GetString(flag,fmtstr))return(nullptr); const PixelFormat *result=GetPixelFormat(fmtstr.c_str()); if(result)return(result); return default_format; } void ParseParamFormat(const cmd_parse &cmd) { //指定格式 pixel_fmt[0]=ParseParamFormat(cmd,"/R:", GetPixelFormat(ColorFormat::R8UN)); pixel_fmt[1]=ParseParamFormat(cmd,"/RG:", GetPixelFormat(ColorFormat::RG8UN)); pixel_fmt[2]=ParseParamFormat(cmd,"/RGB:", GetPixelFormat(ColorFormat::RGB565)); pixel_fmt[3]=ParseParamFormat(cmd,"/RGBA:", GetPixelFormat(ColorFormat::RGBA8UN)); } void ParamColorKey(const cmd_parse &cmd) { std::string ckstr; if(!cmd.GetString("/ColorKey:",ckstr))return; char rgbstr[6]; hgl_cpy(rgbstr,ckstr.c_str(),6); //注意:hgl_cpy是跨类型复制的,不要替换成strcpy或memcpy ParseHexStr(color_key[0],rgbstr+0); ParseHexStr(color_key[1],rgbstr+2); ParseHexStr(color_key[2],rgbstr+4); use_color_key=true; } int main(int argc,char **argv) { std::cout<<"Image to Texture Convert tools 1.1"<\n" "\n" "Params:\n" "\t/s : proc sub-directory\n" "\n\n"; return 0; } cmd_parse cp(argc,argv); if(cp.Find("/s")!=-1)sub_folder=true; //检测是否处理子目录 if(cp.Find("/mip")!=-1)gen_mipmaps=true; //检测是否生成mipmaps ParamColorKey(cp); ParseParamFormat(cp); //检测推荐格式 ilInit(); ilShutDown(); }