2017-04-27 14:57:43 +08:00
|
|
|
#!/usr/bin/env python
|
2014-02-10 09:10:30 +08:00
|
|
|
|
2016-11-01 07:24:30 +08:00
|
|
|
import glob
|
2019-07-22 20:02:33 +08:00
|
|
|
import os
|
2014-02-10 09:10:30 +08:00
|
|
|
|
2018-05-19 21:51:49 +08:00
|
|
|
enc = "utf-8"
|
2014-02-10 09:10:30 +08:00
|
|
|
|
2019-07-22 20:02:33 +08:00
|
|
|
# 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__)))
|
|
|
|
|
2016-10-31 01:57:40 +08:00
|
|
|
# Generate include files
|
2014-02-10 09:10:30 +08:00
|
|
|
|
2016-10-31 01:57:40 +08:00
|
|
|
f = open("theme_data.h", "wb")
|
2014-02-10 09:10:30 +08:00
|
|
|
|
2020-03-30 14:28:32 +08:00
|
|
|
f.write(b"// THIS FILE HAS BEEN AUTOGENERATED, DON'T EDIT!!\n")
|
2014-02-10 09:10:30 +08:00
|
|
|
|
2016-10-31 01:57:40 +08:00
|
|
|
# Generate png image block
|
2018-05-19 21:51:49 +08:00
|
|
|
f.write(b"\n// png image block\n")
|
2015-12-21 05:21:53 +08:00
|
|
|
|
2016-11-01 07:24:30 +08:00
|
|
|
pixmaps = glob.glob("*.png")
|
|
|
|
pixmaps.sort()
|
2015-12-21 05:21:53 +08:00
|
|
|
|
2014-02-10 09:10:30 +08:00
|
|
|
for x in pixmaps:
|
2015-12-21 05:21:53 +08:00
|
|
|
|
2016-11-01 07:24:30 +08:00
|
|
|
var_str = x[:-4] + "_png"
|
2015-12-21 05:21:53 +08:00
|
|
|
|
2018-05-19 21:51:49 +08:00
|
|
|
s = "\nstatic const unsigned char " + var_str + "[] = {\n\t"
|
|
|
|
f.write(s.encode(enc))
|
2015-12-21 05:21:53 +08:00
|
|
|
|
2016-11-01 07:24:30 +08:00
|
|
|
pngf = open(x, "rb")
|
2015-12-21 05:21:53 +08:00
|
|
|
|
2016-11-01 07:24:30 +08:00
|
|
|
b = pngf.read(1)
|
2020-03-30 14:28:32 +08:00
|
|
|
while len(b) == 1:
|
2018-05-19 21:51:49 +08:00
|
|
|
f.write(hex(ord(b)).encode(enc))
|
2016-11-01 07:24:30 +08:00
|
|
|
b = pngf.read(1)
|
2020-03-30 14:28:32 +08:00
|
|
|
if len(b) == 1:
|
2018-05-19 21:51:49 +08:00
|
|
|
f.write(b", ")
|
2015-12-21 05:21:53 +08:00
|
|
|
|
2018-05-19 21:51:49 +08:00
|
|
|
f.write(b"\n};\n")
|
2016-11-01 07:24:30 +08:00
|
|
|
pngf.close()
|
2014-02-10 09:10:30 +08:00
|
|
|
|
2016-10-31 01:57:40 +08:00
|
|
|
# Generate shaders block
|
2020-03-30 14:28:32 +08:00
|
|
|
f.write(b"\n// shaders block\n")
|
2015-12-21 05:21:53 +08:00
|
|
|
|
|
|
|
shaders = glob.glob("*.gsl")
|
2016-11-01 07:24:30 +08:00
|
|
|
shaders.sort()
|
2015-12-21 05:21:53 +08:00
|
|
|
|
|
|
|
for x in shaders:
|
|
|
|
|
2016-11-01 07:24:30 +08:00
|
|
|
var_str = x[:-4] + "_shader_code"
|
2015-12-21 05:21:53 +08:00
|
|
|
|
2018-05-19 21:51:49 +08:00
|
|
|
s = "\nstatic const char *" + var_str + " = \n"
|
|
|
|
f.write(s.encode(enc))
|
2015-12-21 05:21:53 +08:00
|
|
|
|
2016-11-01 07:24:30 +08:00
|
|
|
sf = open(x, "rb")
|
2015-12-21 05:21:53 +08:00
|
|
|
|
2016-11-01 07:24:30 +08:00
|
|
|
b = sf.readline()
|
2020-03-30 14:28:32 +08:00
|
|
|
while b != "":
|
|
|
|
if b.endswith("\r\n"):
|
2016-10-31 01:57:40 +08:00
|
|
|
b = b[:-2]
|
2020-03-30 14:28:32 +08:00
|
|
|
if b.endswith("\n"):
|
2016-10-31 01:57:40 +08:00
|
|
|
b = b[:-1]
|
2020-03-30 14:28:32 +08:00
|
|
|
s = ' "' + b
|
2018-05-19 21:51:49 +08:00
|
|
|
f.write(s.encode(enc))
|
2016-11-01 07:24:30 +08:00
|
|
|
b = sf.readline()
|
2020-03-30 14:28:32 +08:00
|
|
|
if b != "":
|
2018-05-19 21:51:49 +08:00
|
|
|
f.write(b'"\n')
|
2015-12-21 05:21:53 +08:00
|
|
|
|
2018-05-19 21:51:49 +08:00
|
|
|
f.write(b'";\n')
|
2016-11-01 07:24:30 +08:00
|
|
|
sf.close()
|
2015-12-21 05:21:53 +08:00
|
|
|
|
2016-11-01 07:24:30 +08:00
|
|
|
f.close()
|