diff options
author | RĂ©mi Verschelde <remi@verschelde.fr> | 2016-09-06 18:06:29 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-09-06 18:06:29 +0200 |
commit | 78275aad871031ea0a4e20b901ba60d741415300 (patch) | |
tree | 4715ae47670daa54325e2151a806ca58fcabc653 /tools/scripts | |
parent | a66a23fafedd975f28f865deaba0b4ba783f59ba (diff) | |
parent | 3b3502b758fb4127eca7f71dc0c41c95fac97025 (diff) |
Merge pull request #6364 from akien-mga/pr-tools-cleanup
Cleanup of the tools folder
Diffstat (limited to 'tools/scripts')
-rw-r--r-- | tools/scripts/addheader.py | 72 | ||||
-rw-r--r-- | tools/scripts/make_bmfhdr.py | 70 | ||||
-rw-r--r-- | tools/scripts/make_glwrapper.py | 183 | ||||
-rw-r--r-- | tools/scripts/make_icons.sh | 5 | ||||
-rw-r--r-- | tools/scripts/memsort.py | 35 |
5 files changed, 365 insertions, 0 deletions
diff --git a/tools/scripts/addheader.py b/tools/scripts/addheader.py new file mode 100644 index 0000000000..d040d8b5d6 --- /dev/null +++ b/tools/scripts/addheader.py @@ -0,0 +1,72 @@ +header="""\ +/*************************************************************************/ +/* $filename */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* http://www.godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ +""" + +f = open("files","rb") + +fname = f.readline() +while (fname!=""): + + fr = open(fname.strip(),"rb") + l = fr.readline() + bc=False + fsingle = fname.strip() + + if (fsingle.find("/")!=-1): + fsingle=fsingle[fsingle.rfind("/")+1:] + rep_fl="$filename" + rep_fi=fsingle + len_fl=len(rep_fl) + len_fi=len(rep_fi) + if (len_fi<len_fl): + for x in range(len_fl-len_fi): + rep_fi+=" " + elif (len_fl<len_fi): + for x in range(len_fi-len_fl): + rep_fl+=" " + if (header.find(rep_fl)!=-1): + text=header.replace(rep_fl,rep_fi) + else: + text=header.replace("$filename",fsingle) + + + while (l!=""): + if ((l.find("//")!=0 and l.find("/*")!=0 and l.strip()!="") or bc): + text+=l + bc=True + l=fr.readline() + + fr.close() + fr=open(fname.strip(),"wb") + fr.write(text) + fr.close() + #print(text) + fname=f.readline() + diff --git a/tools/scripts/make_bmfhdr.py b/tools/scripts/make_bmfhdr.py new file mode 100644 index 0000000000..0f6f453004 --- /dev/null +++ b/tools/scripts/make_bmfhdr.py @@ -0,0 +1,70 @@ + + +import sys + +if (len(sys.argv)!=2): + print("Pass me a .fnt argument!") + +f = open(sys.argv[1],"rb") + +name = sys.argv[1].lower().replace(".fnt","") + +l = f.readline() + +font_height=0 +font_ascent=0 +font_charcount=0 +font_chars=[] +font_cc=0 + +while(l!=""): + + fs = l.strip().find(" ") + if (fs==-1): + l=f.readline() + continue + t = l[0:fs] + + dv = l[fs+1:].split(" ") + d = {} + for x in dv: + if (x.find("=")==-1): + continue + s = x.split("=") + d[ s[0] ] = s[1] + + + if (t=="common"): + font_height=d["lineHeight"] + font_ascent=d["base"] + + if (t=="char"): + font_chars.append(d["id"]) + font_chars.append(d["x"]) + font_chars.append(d["y"]) + font_chars.append(d["width"]) + font_chars.append(d["height"]) + font_chars.append(d["xoffset"]) + font_chars.append(d["yoffset"]) + font_chars.append(d["xadvance"]) + font_cc+=1 + + + + l = f.readline() + + +print("static const int _bi_font_"+name+"_height="+str(font_height)+";") +print("static const int _bi_font_"+name+"_ascent="+str(font_ascent)+";") +print("static const int _bi_font_"+name+"_charcount="+str(font_cc)+";") +cstr="static const int _bi_font_"+name+"_characters={" +for i in range(len(font_chars)): + + c=font_chars[i] + if (i>0): + cstr+=", " + cstr+=c + +cstr+=("};") + +print(cstr)
\ No newline at end of file diff --git a/tools/scripts/make_glwrapper.py b/tools/scripts/make_glwrapper.py new file mode 100644 index 0000000000..f3f8d39837 --- /dev/null +++ b/tools/scripts/make_glwrapper.py @@ -0,0 +1,183 @@ +#! /usr/bin/python +import sys + +if (len(sys.argv)<2): + print("usage: make_glwrapper.py <headers>") + sys.exit(255) + + +functions=[] +types=[] +constants=[] + +READ_FUNCTIONS=0 +READ_TYPES=1 +READ_CONSTANTS=2 + +read_what=READ_TYPES + +for x in (range(len(sys.argv)-1)): + f=open(sys.argv[x+1],"r") + + while(True): + + line=f.readline() + if (line==""): + break + + line=line.replace("\n","").strip() + """ + if (line.find("[types]")!=-1): + read_what=READ_TYPES + continue + elif (line.find("[constants]")!=-1): + read=READ_TYPES + continue + elif (line.find("[functions]")!=-1): + read_what=READ_FUNCTIONS + continue + """ + + if (line.find("#define")!=-1): + if (line.find("0x")==-1 and line.find("GL_VERSION")==-1): + continue + constants.append(line) + elif (line.find("typedef")!=-1): + if (line.find("(")!=-1 or line.find(")")!=-1 or line.find("ARB")!=-1 or line.find("EXT")!=-1 or line.find("GL")==-1): + continue + types.append(line) + elif (line.find("APIENTRY")!=-1 and line.find("GLAPI")!=-1): + + if (line.find("ARB")!=-1 or line.find("EXT")!=-1 or line.find("NV")!=-1): + continue + + line=line.replace("APIENTRY","") + line=line.replace("GLAPI","") + + glpos=line.find(" gl") + if (glpos==-1): + + glpos=line.find("\tgl") + if (glpos==-1): + continue + + ret=line[:glpos].strip(); + + line=line[glpos:].strip() + namepos=line.find("(") + + if (namepos==-1): + continue + + name=line[:namepos].strip() + line=line[namepos:] + + argpos=line.rfind(")") + if (argpos==-1): + continue + + args=line[1:argpos] + + funcdata={} + funcdata["ret"]=ret + funcdata["name"]=name + funcdata["args"]=args + + functions.append(funcdata) + print(funcdata) + + + +#print(types) +#print(constants) +#print(functions) + + +f=open("glwrapper.h","w") + +f.write("#ifndef GL_WRAPPER\n") +f.write("#define GL_WRAPPER\n\n\n") + +header_code="""\ +#if defined(__gl_h_) || defined(__GL_H__) +#error gl.h included before glwrapper.h +#endif +#if defined(__glext_h_) || defined(__GLEXT_H_) +#error glext.h included before glwrapper.h +#endif +#if defined(__gl_ATI_h_) +#error glATI.h included before glwrapper.h +#endif + +#define __gl_h_ +#define __GL_H__ +#define __glext_h_ +#define __GLEXT_H_ +#define __gl_ATI_h_ + +#define GL_TRUE 1 +#define GL_FALSE 0 + +#define GL_ZERO 0 +#define GL_ONE 1 +#define GL_NONE 0 +#define GL_NO_ERROR 0 + +\n\n +""" + +f.write("#include <stddef.h>\n\n\n") + +f.write(header_code); + +f.write("#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n\n") +f.write("#if defined(_WIN32) && !defined(__CYGWIN__)\n") +f.write("#define GLWRP_APIENTRY __stdcall\n") +f.write("#else\n"); +f.write("#define GLWRP_APIENTRY \n") +f.write("#endif\n\n"); +for x in types: + f.write(x+"\n") + +f.write("\n\n") + +for x in constants: + f.write(x+"\n") + +f.write("\n\n") + +for x in functions: + f.write("extern "+x["ret"]+" GLWRP_APIENTRY (*__wrapper_"+x["name"]+")("+x["args"]+");\n") + f.write("#define "+x["name"]+" __wrapper_"+x["name"]+"\n") + +f.write("\n\n") +f.write("typedef void (*GLWrapperFuncPtr)(void);\n\n"); +f.write("void glWrapperInit( GLWrapperFuncPtr (*wrapperFunc)(const char*) );\n") + +f.write("#ifdef __cplusplus\n}\n#endif\n") + +f.write("#endif\n\n") + +f=open("glwrapper.c","w") + +f.write("\n\n") +f.write("#include \"glwrapper.h\"\n") +f.write("\n\n") + +for x in functions: + f.write(x["ret"]+" GLWRP_APIENTRY (*__wrapper_"+x["name"]+")("+x["args"]+")=NULL;\n") + +f.write("\n\n") +f.write("void glWrapperInit( GLWrapperFuncPtr (*wrapperFunc)(const char*) ) {\n") +f.write("\n") + +for x in functions: + f.write("\t__wrapper_"+x["name"]+"=("+x["ret"]+" GLWRP_APIENTRY (*)("+x["args"]+"))wrapperFunc(\""+x["name"]+"\");\n") + +f.write("\n\n") +f.write("}\n") +f.write("\n\n") + + + + diff --git a/tools/scripts/make_icons.sh b/tools/scripts/make_icons.sh new file mode 100644 index 0000000000..71037cd1c3 --- /dev/null +++ b/tools/scripts/make_icons.sh @@ -0,0 +1,5 @@ +convert -resize 32x32 ../../icon.svg icon32.ico +convert -resize 32x32 ../../icon.svg icon32.icns +for s in 16 24 32 64 96 128 256; do convert -resize ${s}x$s ../../icon.svg icon$s.png; done +zip icons.zip icon*.png +rm icon*.png diff --git a/tools/scripts/memsort.py b/tools/scripts/memsort.py new file mode 100644 index 0000000000..d2e4fe0226 --- /dev/null +++ b/tools/scripts/memsort.py @@ -0,0 +1,35 @@ + +import sys + +arg="memdump.txt" + +if (len(sys.argv)>1): + arg=sys.argv[1] + +f = open(arg,"rb") + + +l=f.readline() + + +sum = {} +cnt={} + + +while(l!=""): + + s=l.split("-") + amount = int(s[1]) + what=s[2] + if (what in sum): + sum[what]+=amount + cnt[what]+=1 + else: + sum[what]=amount + cnt[what]=1 + + l=f.readline() + + +for x in sum: + print(x.strip()+"("+str(cnt[x])+"):\n: "+str(sum[x])) |