/*! \mainpage OpenGL ES Simple Light Example
 *
 * \ref intro_sec
 * \n\ref Pre_sec
 * \n\ref Desing_sec
 *
 * <HR>
 *
 * \section intro_sec 1. About this Example
 *
 *  This example demonstrates the use of materials and lighting in OpenGL ES. The example consists
 *  of two different lights, a lamp and a spotlight. The example also consists of two different objects,
 *  a duck and a head. All the object geometries are defined in files duck.h and head.h. Both objects
 *  have different materials. The user can change the setup by accessing the menu by pressing the left
 *  software button.
 *
 *  This example can be extended to any kind of OpenGL ES application, but you might
 *  want to look at the other example applications as well for how to use other,
 *  different kinds of, OpenGL ES features.
 *
 *  Only classes used by this example are the basic UI framework baseclasses. Open GL ES itself is pure C
 *  method call API and doesn't use classes.
 *
 * <HR>
 *
 * \section Pre_sec 2. Prerequisites
 *   To build and run this example you need to have the S60 SDK installed and working correctly on your computer.
 *   You also need basic understanding on how to build S60 applications.
 *
 *   To work with this example application you need basic understanding on how to build S60 applications and
 *   basic undestanding of how Symbian (or COE) UI and application framework works. Also basic knowledge on
 *   OpenGL or OpenGL ES is required if you wish to modify the example.
 *
 *	<HR>
 *
 *  \section Desing_sec 3. Desing and Implemention
 *
 *  In Series 60, OpenGL ES can have up to eight different light sources at a time, from GL_LIGHT0 to GL_LIGHT7.
 *  These can each be separately enabled and disabled. Each light can have the following properties defined:
 *  diffuse, ambient, specular, and position. In addition to these, a spotlight can have its direction, exponent,
 *  cut-off values, and three different attenuation values defined.
 *
 *  In order for the lights to actually work, the object material needs to be defined. For that, the calculation
 *  of object normals is needed. The normals need to be unit-length for the calculations, so the automatic
 *  normalization of the normals is enabled in the example to make sure of this. Enabling the autonormalize
 *  slows down the renderer handling a bit. This can be avoided by using fixed-point values and by normalizing
 *  the normals beforehand.
 *
 *  Also objects can have different material definitions. Setting of the object material is much like setting up
 *  the lighting. The object’s ambient, diffuse, specular colors, the shininess, and the color of any emitted light
 *  can be set.
 *
 *  \subsection Sub31 3.1 Capabilities
 *
 *  The application has only NONE capability as it only needs the rights to execute and access to the screen.
 *
 *  \subsection Sub32 3.2 ScalabaleUI
 *
 *  All Open GL ES examples support various screen modes. The examples also support changing the screen size while the
 *  application is running.
 *
 */