From d5486a5af100fb37fac08b60d862ac14943853ce Mon Sep 17 00:00:00 2001 From: Peter Fors Date: Sat, 29 Mar 2025 20:11:56 +0100 Subject: add base code for windowing and opengl crt-shader. --- base/incbin.h | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 base/incbin.h (limited to 'base/incbin.h') 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[]; + +*/ -- cgit v1.2.3