Hi,
Pleased to see playing around with Raydium in a particularly unusual way !
About "raydium_init_args", it's supposed to be an issue only for raydium.dll, it should be fine with libraydium.so where it's exported, IIRC. In C, with win32, we solve this issue by this hack :
Code:
#define raydium_init_args(argc,argv)\
{\
atexit(raydium_atexit_call);\
raydium_init_args_hack(argc,argv);\
}
#define raydium_init_args_name(argc,argv,app_name)\
{\
atexit(raydium_atexit_call);\
raydium_init_args_name_hack(argc,argv,app_name);\
}
In other words, if you have any atexit-like functionality in Newlisp, you can "regain" raydium_init_args using raydium_atexit_call and raydium_init_args_hack, which are exported in win32 library.
Let me know if this answer is not clear enough
About OpenGL version, vendor drivers always provides retro-compliant APIs (not always true with OpenGL ES on embedded devices, of course), so it means that your OpenGL 4 compliant driver+card will also provides all OpenGL features of OpenGL 3.3, 3.2, and so on down to OpenGL 1.0.
If you want to create OpenGL 2 code, you must watch out and only use OpenGL 2 functions (and avoid 1.x, for this particular case). Note that you can set explicitly your GLSL version in your shaders, it's an easy way to keep them compliant with a particular OpenGL version (GLSL 1.20 for OpenGL 2.1)