Moved TextureType to a different package. Added ShadowType.java. Files now has the option to turn off prefixing the GLSL version when requesting a shader.
Started adding support for OpenGL 2.X. Broke out methods for VAs and VBOs into strategy pattern.
Added two methods to ShaderHelper. Added OpenGL 2.X methods to VertexArrayHelper and VertexBufferObjectHelper. Renamed TextureCoordinate to TexCoord. Fixed bug with ByteBuffers.java when setting all the byte buffers to the interleaved one non-interleaved buffers weren't working anymore. Now that there is no longer a method to set them all the same had to change AbstractBuilder to take each byte buffer separately. Added two new bind states for VAs and VBOs for OpenGL 2.X. VertexArrays.java was changed to set a variable on creation instead of doing a null check since each byte buffer is now passed seperately. Previously it was not possible to have a NullPointerException since the method was called only when the mesh has the correct type.
Added two more RenderableFactories for each OpenGL version. LegacyRenderer.java was renamed to RendererGL1.java. Added two more renderers one for each OpenGL version. Exposed GLFontRenderer to GL. Added two static member variables for Shader support. Added render methods to Graphics along with create renderable methods. These methods produce renderables for the correct OpenGL version but the correct version much be picked with switchRenderableFactoryAndRenderer. We cannot determine this at runtime automatically since OpenGL 1.X and 2.X share compatibility mode which has the same OpenGL version.
GameObjects now use Graphics create methods instead of LegacyRenderer. They will have the correct object created depending on the OpenGL version. The GLSL version in the Configuration object is now an integer. It should have a version like "120", "150" or "330" depending on what profile is used.
Combined the VA and VBO bind states for each OpenGL version. Renamed bind strategies with the version number appended.
BindStateGL2 now works with vertex attributes.
Add empty files so that the directories are committed.
Package names cannot start with a number.
Added a shader template for GLSL 120.
Added missing license headers.
Prepend "v" to the folder name since Java cannot have packages that start with numbers.
Added buildShader method to Graphics. Now initializing shaderBindState which is to be used by rendererGL2 and rendererGL3. Added three new methods to switch and unbind shaders on the renderer.
Added MatrixHelper and ShaderUniformHelper to GL.
Fixed a bug in BindStateGL2. It was using the vertex attribute for color in the place of vertices. This was causing a black screen when rendering.
Changed the default unique shader ID for the draw call to match the value in the pool (not found).
ShaderBindState is responsible for switching shaders and sending matrix and texture flag uniforms to the binded shader. This class works with MatrixHelper to update the projection and view matrices from the camera. It also helps changing the model matrix along with rotation and translation. By default bindShader() is called from the draw calls in all OpenGL versions so a true dummy shader is set by default.
ShaderPool is now using AbstractShader instead of Shader.
Added three methods to Renderer. Moved common interface TextRenderer into an abstract class to be used by all three renderers. RendererGL2 now works with shaders.
Added MatrixHelper.java and ShaderUniformHelper.java