summaryrefslogtreecommitdiff
path: root/base/incbin.h
diff options
context:
space:
mode:
authorPeter Fors <peter.fors@mindkiller.com>2025-03-29 20:11:56 +0100
committerPeter Fors <peter.fors@mindkiller.com>2025-03-29 20:11:56 +0100
commitd5486a5af100fb37fac08b60d862ac14943853ce (patch)
treee2206f620745ba49c94f0f29d180587e03bc9fda /base/incbin.h
parentee4f15400998ca704c6ad8fc537f0d924930fabd (diff)
add base code for windowing and opengl crt-shader.
Diffstat (limited to 'base/incbin.h')
-rw-r--r--base/incbin.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/base/incbin.h b/base/incbin.h
new file mode 100644
index 0000000..fc1ecd2
--- /dev/null
+++ b/base/incbin.h
@@ -0,0 +1,50 @@
+
+
+#define STR2(x) #x
+#define STR(x) STR2(x)
+
+#ifdef _WIN32
+#define INCBIN_SECTION ".data, \"aw\""
+#else
+#define INCBIN_SECTION ".data"
+#endif
+
+/*
+#ifdef _WIN32
+#define INCBIN_SECTION ".rdata, \"dr\""
+#else
+#define INCBIN_SECTION ".rodata"
+#endif
+*/
+
+#define INCBIN(name, file) \
+ __asm__(".section " INCBIN_SECTION "\n" \
+ ".global " STR(name) "_data\n" \
+ ".balign 64\n" \
+ STR(name) "_data:\n" \
+ ".incbin " STR(file) "\n" \
+ ".zero 64\n" \
+ ".global " STR(name) "_end\n" \
+ ".balign 1\n" \
+ STR(name) "_end:\n"); \
+ extern __attribute__((aligned(64))) char name##_data[]; \
+ extern char name##_end[];
+
+/*
+// INCBIN_SHADER(vertexshader, "#version 140", "shader_header.glsl", "vertex_shader.glsl");
+#define INCBIN_SHADER(name, version_str, header_file, shader_file) \
+ __asm__(".section " INCBIN_SECTION "\n" \
+ ".global " STR(name) "_data\n" \
+ ".balign 64\n" \
+ STR(name) "_data:\n" \
+ ".ascii \"" version_str "\\n\"\n" \
+ ".incbin \"" header_file "\"\n" \
+ ".incbin \"" shader_file "\"\n" \
+ ".byte 0\n" \
+ ".global " STR(name) "_end\n" \
+ ".balign 1\n" \
+ STR(name) "_end:\n"); \
+ extern __attribute__((aligned(64))) char name##_data[]; \
+ extern char name##_end[];
+
+*/