godot/scene/resources/default_theme/make_header.py
Hugo Locurcio 31eb116d49
Make make_header.py functional when run from any location
This removes the need to `cd` to `scene/resources/default_theme/`
to get the expected result.
2019-07-22 14:02:33 +02:00

74 lines
1.4 KiB
Python
Executable File

#!/usr/bin/env python
import glob
import os
enc = "utf-8"
# Change to the directory where the script is located,
# so that the script can be run from any location
os.chdir(os.path.dirname(os.path.realpath(__file__)))
# Generate include files
f = open("theme_data.h", "wb")
f.write(b"// THIS FILE HAS BEEN AUTOGENERATED, DON\'T EDIT!!\n")
# Generate png image block
f.write(b"\n// png image block\n")
pixmaps = glob.glob("*.png")
pixmaps.sort()
for x in pixmaps:
var_str = x[:-4] + "_png"
s = "\nstatic const unsigned char " + var_str + "[] = {\n\t"
f.write(s.encode(enc))
pngf = open(x, "rb")
b = pngf.read(1)
while(len(b) == 1):
f.write(hex(ord(b)).encode(enc))
b = pngf.read(1)
if (len(b) == 1):
f.write(b", ")
f.write(b"\n};\n")
pngf.close()
# Generate shaders block
f.write(b"\n// shaders block\n");
shaders = glob.glob("*.gsl")
shaders.sort()
for x in shaders:
var_str = x[:-4] + "_shader_code"
s = "\nstatic const char *" + var_str + " = \n"
f.write(s.encode(enc))
sf = open(x, "rb")
b = sf.readline()
while(b != ""):
if (b.endswith("\r\n")):
b = b[:-2]
if (b.endswith("\n")):
b = b[:-1]
s = ' \"' + b
f.write(s.encode(enc))
b = sf.readline()
if (b != ""):
f.write(b'"\n')
f.write(b'";\n')
sf.close()
f.close()