#!/usr/bin/env python3 import os TARGET_FILE = os.path.join( os.path.dirname(__file__), "..", "default", "inc_sentences.glsl" ) SENTENCE_MAX_LENGTH = 20 SENTENCES = [ "forge", "FORGE", "F.O.R.G.E.", "Fusion", "Of", "Real-time", "Generative", "Effects", "Everything you see", "Pixel by pixel", "Live", "Generated", "Controlled", "π", "Kleπek", "Code as art", "Art as code", ] MAPPING = {"π": "0xE3"} def code(char: str) -> str: if char in MAPPING: return MAPPING[char] return "0x" + f"{ord(char):02x}".upper() def convert(txt: str) -> str: out = [] for i in range(SENTENCE_MAX_LENGTH): out += [code(txt[i]) if i < len(txt) else "0x00"] return ', '.join(out) def main() -> None: with open(TARGET_FILE, mode="w") as file: file.write("#ifndef INC_SENTENCES\n") file.write("#define INC_SENTENCES\n\n") file.write(f"#define SENTENCE_COUNT {len(SENTENCES)}\n") file.write(f"#define SENTENCE_MAX_LENGTH {SENTENCE_MAX_LENGTH}\n\n") file.write("const int sentences[] = int[SENTENCE_COUNT * SENTENCE_MAX_LENGTH](\n") for i, sentence in enumerate(SENTENCES): file.write(" " + convert(sentence) + ("," if i < len(SENTENCES) - 1 else "") + "\n") file.write(");\n\n") file.write("const int lengths[] = int[SENTENCE_COUNT](\n") file.write( " " + ", ".join(str(len(sentence)) for sentence in SENTENCES) + "\n" ) file.write(");\n") file.write("#endif") if __name__ == "__main__": main()