1 |
#!/usr/bin/perl |
2 |
|
3 |
print "#ifndef GLDEBUG_H\n#define GLDEBUG_H\n\n"; |
4 |
|
5 |
while (<>) { |
6 |
if (/^GLAPI\s+(.*?)\s+(?:GL)?APIENTRY\s+(gl[A-Z][A-Za-z0-9]+)/) { |
7 |
my ($k, $v) = ($2, $1); |
8 |
$api{$k} = $v; |
9 |
} |
10 |
} |
11 |
|
12 |
delete $api{glGetError}; |
13 |
|
14 |
while (my ($k, $v) = each %api) { |
15 |
if ($v eq "void") { |
16 |
print "#define $k(...) do { $k(__VA_ARGS__); gl::errchk(\"$k\", # __VA_ARGS__, __FILE__, __LINE__); } while (0)\n"; |
17 |
} else { |
18 |
print "#define $k(...) ({ $v ___ = $k(__VA_ARGS__); gl::errchk(\"$k\", # __VA_ARGS__, __FILE__, __LINE__); ___; })\n"; |
19 |
} |
20 |
} |
21 |
|
22 |
print "#endif\n"; |