From 6cb08bbe4937f9122b0b6712d8674c3085b57349 Mon Sep 17 00:00:00 2001 From: Mitya Selivanov Date: Sun, 11 Feb 2024 00:23:20 +0100 Subject: Add code --- _gen.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 _gen.c (limited to '_gen.c') diff --git a/_gen.c b/_gen.c new file mode 100644 index 0000000..b1e9d30 --- /dev/null +++ b/_gen.c @@ -0,0 +1,52 @@ +#if 0 +SRC=${0##*/} +BIN=${SRC%.*} +glslc compute_module.comp -o COMPUTE_MODULE.tmp +gcc $SRC -o $BIN -lm -lvulkan && ./$BIN && rm $BIN +rm COMPUTE_MODULE.tmp +exit 0 +#endif + +#include + +int main(int argc, char **argv) { + FILE *in = fopen("COMPUTE_MODULE.tmp", "rb"); + + if (in == NULL) { + printf("Cannot open compiled module code.\n"); + return -1; + } + + FILE *out = fopen("compute_module.inl.h", "wb"); + + if (out == NULL) { + printf("Cannot write compiled module inlined data.\n"); + return -1; + } + + fprintf(out, "#ifndef SAMPLE_COMPUTE_COMPUTE_MODULE_INL_H\n"); + fprintf(out, "#define SAMPLE_COMPUTE_COMPUTE_MODULE_INL_H\n"); + + fprintf(out, "\n"); + fprintf(out, "unsigned COMPUTE_MODULE_CODE[] = {\n "); + + while (!feof(in)) { + int x = 0; + + int n = fread(&x, 1, 4, in); + + if (n <= 0) + break; + + fprintf(out, " %d,", x); + } + + fprintf(out, "\n};\n\n"); + + fprintf(out, "#endif\n"); + + fclose(in); + fclose(out); + + return 0; +} -- cgit v1.2.3