See
http://raydium.cqfd-corp.org/svn.php , at revision 91.
I've changed:
- removed matrix4x4 typdef from headers/trigo.h and moved it to common.h. headers must only declare function and provide documentation. I've also cut doc sentences to 80 characters long max.
- in headers/sky.c, i've done the same thing (80 char max) and (this is important) changed raydium_sky_atmosphere_check()'s return from "char" to "signed char". Python bindings are VERY sensitive to this ("char" really means "character" for Python, and not "8 bit value" as C does).
- in camera.c, there was a huge problem with tabs
- in common.h, I've changed RAYDIUM_SPHERE_MAX_DETAIL to RAYDIUM_SKY_SPHERE_MAX_DETAIL (since it was unclear to what sphere it was referring) and the same for RAYDIUM_SPHERE_DEFAULT_DETAIL. As said above, I've added (and modified a bit) matrix4x4 typdef, and also moved all sky.c globals, with a more "exact" name (raydium_sky_atmosphere_enable_tag; raydium_sky_sphere_angle_orbit_u; raydium_sky_sphere_angle_orbit_v;raydium_sky_sphere_generated;).
- in sky.c, I've changed all variables according to new variable names, disabled "glPushAttrib/glPopAttrib" but restored correct "glBlendFunc" at the end of function (caution with that ! It may generate big bugs !). I've also changed orbit increments to be FPS independent (using raydium_frame_time factor).
-------
What must be done now:
- Check that "detail" is in bounds (using RAYDIUM_SKY_SPHERE_MAX_DETAIL) in sky.c
- Allow user to modify "orbit" values and increment with suitable function.
- Be more careful about tab size
- Never create function without "raydium_..." prefix, since it may collide with user functions. All trigo.c matrix4x4 internals MUST be renamed.
... But the effect looks good for a beginning ! Let's continue on that way
![Wink ;)](./images/smilies/icon_wink.gif)