Fix compile issue on OpenGL-ES 2.0 platform
Fix major bug in definition of greatest negative float value

The minimum float value was actually defined as a very small
negative value close to zero, as opposed to a very large negative
value in the direction of minus infinity. This error may have
caused multiple, sometimes hard to pinpoint, bugs.

Also convert the file win32_compat.h to consistent UNIX newlines.
Move OpenGL error checking and general error exit into functions

Signed-off-by: Harm Hanemaaijer <fgenfb@yahoo.com>
Fix abberant line endings and permissions

Some files still had non-UNIX line endings (with extra CR
characters). Convert everythings to UNIX-style LF line endings.

Also remove the executable bit on a few source files.

Finally, make sure the .rules file isn't written to multiple
times with duplicate rules.

Signed-off-by: Harm Hanemaaijer <fgenfb@yahoo.com>
Introduce priority-based error and logging message functions

Information and error messages are now printed based on the
priority of the message (e.g warning, information, logging).
The degree of verboseness can be selected by the application
(from quiet to full logging, the latter only if the
'DEBUG_RENDER_LOG flag is set). Fatal errors are also handled
more efficiently by a non-returning function that also raises
an exception that acts as a breakpoint in a debugger.

Only part of the previously existing messages (using printf,
exit etc) has been converted to the new system. The rest
should follow later.

The back-end and the application itself can also make use
these functions.

An option could be added to route messages to the framebuffer
instead of the standard output.

Signed-off-by: Harm Hanemaaijer <fgenfb@yahoo.com>
Fix error when trying to upload non-existing billboard triangles

Single billboards do not have triangle data (they consist of a
triangle fan of two triangles), so sreLODModel::InitVertexBuffers
should not attempt to upload the triangle vertex index array
to the GPU.

Signed-off-by: Harm Hanemaaijer <fgenfb@yahoo.com>
Rationalize billboard-related code and update demo programs

Rationalize the billboard implementationm, which includes halos
and particle systems, improving versatility and performance.
Improve halo shader performance. Provide more versatile billboard
support (not fully tested). Particle systems can consists of
either billboards or halos.

Add demo9 to test the halo shader, and update some other demos.

Signed-off-by: Harm Hanemaaijer <fgenfb@yahoo.com>