blob: fc1ecd2f9f9cfb7207eb8e919d45b4fb29af2634 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
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[];
*/
|