diff options
| author | Peter Fors <peter.fors@mindkiller.com> | 2025-03-29 20:11:56 +0100 |
|---|---|---|
| committer | Peter Fors <peter.fors@mindkiller.com> | 2025-03-29 20:11:56 +0100 |
| commit | d5486a5af100fb37fac08b60d862ac14943853ce (patch) | |
| tree | e2206f620745ba49c94f0f29d180587e03bc9fda /base/incbin.h | |
| parent | ee4f15400998ca704c6ad8fc537f0d924930fabd (diff) | |
add base code for windowing and opengl crt-shader.
Diffstat (limited to 'base/incbin.h')
| -rw-r--r-- | base/incbin.h | 50 |
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[]; + +*/ |
