Fix polygon fill mode to work with OpenGL 3.3.
SegmentMaterial holds a string to the material light instead of an object. There is now a MaterialLightPool which holds the object. Uniforms are now sent once per bind, once per renderable and once per draw call. There is no longer a conversion to a render call and the mesh's segment now is used directly. This allows much more flexibility and makes things a bit more dynamic. There is now a global UniformVariables object which is attached to GL. This should be the spot all shaders pull in global variables which need to be sent to shaders with the excaption of matrices which use MatrixHelper.
Sending material light per draw call to the shader. Fixed bug in Graphics and the loadCubeMapTexture method was not using the extension for the filename.
Fixed a bug in phong shaders. For some reason when RdotE was 0.0 and I set a material light inside a draw call things started to appear black. NVIDIA's pow() function is so flaky.
Cleaned up AbstractSpecularShader files. AbstractDiffuseShader now sends ambient light and light(s) once per bind.
Now that the shaders send ambient light, material light and light(s) automatically all demos have been updated accordingly.
Create default uniform variables.
Clean up creating lights.
Remove unused import.
CustomClassLoader now remembers which natives have been loaded. Add missing license header. Add sound system as a dependency.
Create Audio facade for Paulscode 3D sound system.
Add methods to check if modifier keys have been pressed. Fix assertion in RenderableConfiguration. Add method in timer to get the current delta in nano seconds.
Now saving keyboard and mouse events so that other systems can process them. This is needed to support Nifty GUI. The mouse helper now has the current X, Y position of the mouse and methods to set a native cursor and cursor position.
Audio is no longer initialized by Application since not every application needs audio. Audio is still destroyed by Application. Added many methods to change various settings on the sound system. Since Application no longer initialized the audio system it gives us the chance to load libraries and codecs.
Enabling and disabling textures in OpenGL3 has been removed and I've added methods to the Renderer so that they can be implemented when needed.
Expose all internals of TextureBuilder so that other systems can get data in intermediate states instead of implementing duplicate code.
Added a audio demo which plays a MIDI file. There is a short delay in the beginning of the audio file.
Removed wireframe mode from OpenGL1. Added new blend mode, a getter for viewport dimentions and scissor test methods. OpenGL3 has a method to get the max number of color buffers a FBO supports.
Clean up enable/disable texture method calls. They are only needed for OpenGL 1. Using Fw.graphics.enableTexture* instead of doing it directly since it makes things slightly more portable if you were to enable a different OpenGL version.
Removed most resources from the framework. Moving them to examples.