Fri Oct 05, 2012 6:18 am
The code you quote above is C preprocessor code - those are basically convenience macros. Let's go in details:
#define is a preprocessor keyword for defining a macro. TEXTUREREF() and TEXTURE() are the names of the macros being defined. The first is an external variable declaration statement (i.e. extern char some_name) and the second is a function call statement (i.e. func(arg)). _binary_data_##x##_bmp_start is the name of the external variable the first macro refers to. It uses the ## preprocessor op to take the macro argument and embed it in the name, so if you passed down to the macro a value of foo you'd end up with the symbol _binary_data_foo_bmp_start.
To sum it up again: those preprocessor definitions are not doing anything on their own - they're just convenience macros. You actually need the _binary_data_<stuff>_bmp_start declarations and the texture_new(char*) (or texture_new(const char*)) function defined somewhere in your C/C++ modules.