From 5c88d99026b963e9c32e10dc18e42fdef74075ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20GUEZO?= Date: Tue, 30 Dec 2025 16:37:12 +0100 Subject: [PATCH] feat(glsl2c.py): add xxd -i like program --- glsl2c.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 glsl2c.py diff --git a/glsl2c.py b/glsl2c.py new file mode 100644 index 0000000..24643c2 --- /dev/null +++ b/glsl2c.py @@ -0,0 +1,35 @@ +#!/usr/bin/env python3 +import sys +from pathlib import Path + +if len(sys.argv) != 3 or not sys.argv[1].endswith((".glsl", ".vert", ".frag")): + sys.exit(1) + +src = Path(sys.argv[1]) +dst = Path(sys.argv[2]) + +# variable name +varname = src.replace("/", "_").replace(".", "_") + +# read to binary mode +content = src.read_bytes() + +line = 12 + +with open(dst, "wb") as f: + # content array + f.write(f"unsigned char {varname}[] = {{\n") + + for i, byte in enumerate(content): + # tab + if i % line == 0: + f.write("\t") + # hexa + f.write(f"0x{byte:02x}, ") + + # LF/CRLF + if (i + 1) % line == 0: + f.write("\n") + + # content size + f.write(f"unsigned int {varname}_len = {len(content)};") \ No newline at end of file