Merge branch 'unstable' into renderer_material
Merge branch 'renderer_material' of https://github.com/OpenGameDevelopers/ZED into renderer_material
|SOURCE|
[Common::Renderer::Sprite]
* This class is responsible for scaling, positioning, and rendering sprites
|SOURCE|
[Common::Renderer::Material]
* Added GetID to return the current material's ID
[Common::Renderer::RenderTypes]
* Added ZED_SCREEN_POINT, which represents a point on the screen using unsigned
  32-bit integers
* Changed ZED_POINT to use signed 32-bit integers to represent negative points
  as well as positive points
* Added ZED_RECTANGLE which defines an axis-aligned rectangle
[Common::Renderer::Sprite]
* Added SPRITE_VERTEX which represents the vertexattributes for a sprite
  (position and a UV)
* Added Move to add the velocity passed in to the sprite's position
* Added SetPosition to force the sprite into a location
* Added GetPosition to return the sprite's current location
* Added GetHitBox to be used for determining the bounds of a sprite
* Added four vertices to represent the extremities of the sprite
* Added six indices to draw the sprite with
* Added a hitbox which the sprite will update
[Linux::Renderer::Sprite]
* Render is rendering the sprite to nothing, as there is no shader associated
  with the sprite, yet
* Move adds the velocity passed in to the sprite
* SetPosition relocates the sprite according to the point passed in
* GetPosition returns the current position to the parameter passed in
* GetHitBox returns the rectangle representing the sprite to the parameter
  passed in
|SOURCE|
[Common::Renderer::OGL::GLShaderMaterial]
* Re-named m_NameMap to m_ShaderConstantsNameMap to make it more readily
  understandable as to what it does
[Common::Renderer::ShaderMaterial]
* Added a shader member variable
|MERGE|
renderer_material of https://github.com/OpenGameDevelopers/ZED into renderer_material
|SOURCE|
[ZED::Renderer::OGL::GLShaderMaterial]
* Fixed the compiler error about GLuint by adding the RenderTypes header
|SOURCE|
[Common::Renderer::ShaderMaterial]
* Re-named RegisterCount accessor to GetRegisterCount to make the member
  funciton's  intent explicit
[Common::Renderer::OGL::GLShaderMaterial]
* Using updated member function names from the base class
* Stubbed-out all member functions
|SOURCE|
[Common::Renderer::MaterialManager]
* Changed the ZED::Renderer::Material parameter in AddMaterial to be a pointer
  const reference
[Common::Renderer::Renderer]
* Added AddMaterial which invokes the material manager's AddMaterial member
  function
* Added GetMaterial to get a material by its ID, which calls the material
  manager's GetMaterial member function
* Added GetMaterial to get a material by its name, using the underlying
  material manager's GetMaterial member function
[Linux::Renderer::LinuxRendererOGL3]
* Added a ZED::Renderer::MaterialManager to preside over the material access
  and input funcitons
|SOURCE|
[Common::Renderer::MaterialManager]
* typdef'd the two std::map variable declarations to shorter alternatives
* Suffixed Map to both std::map member variables
* Desctructor iterates over both map member variables and deallocates the
  materials pertaing to both
|SOURCE|
[Common::Renderer::Material]
* Added a constructor to handle initialising the new name and ID member
  variables
* GetID returns the ID, while SetID re-assigns it
* GetName returns the material's name, SetName allocates memory for the string,
  then copies the name parameter into it
* The destructor frees up memory used by the name
[Common::Renderer::MaterialManager]
* AddMaterial checks if the material's ID is already present in the ID map, if
  it is, nothing is done and a success state is returned.  If there was an
  error inserting the ID and pointer, then a failure state is returned
[Common::System::Memory]
* Moved the inline member funcitons out into a separate source file
|SOURCE|
[Common::Renderer::MaterialManager]
* GetMaterial's p_pMaterialName parameter changed to a character pointer to a
  const reference
* AddMaterial
  * Using const_iterator instead of an iterator for the ID and name iterators
  * When an existing name is found in the name->material map, failure is
    returned
  * If the named version of the material can be added without incident, success
    is returned
* GetMaterial will attempt to find the material by ID, if it can't be found,
  failure is returned, otherwise success is returned
* GetMaterial will attempt to find the material by name, if it can't be found,
  failure is returned, otherwise success is returned
[Common::Renderer::Renderer]
* GetMaterial has been updated to use a character pointer to a const reference,
  as the MaterialManager uses
[Linux::Renderer::LinuxRendererOGL3]
* GetMaterial has been changed to reflect the MaterialManager's member function
  definition
|SOURCE|
[Common::Renderer::MaterialManager]
* Added error messages for the failure states
|SOURCE|
[Common::Renderer::Material]
* The constructor requires a name
* Removed the texture unit parameter from AttachTexture as the texture object
  incorporates the texture unit to use
* Added a std::set for the textures
* AttachTexture inserts the passed in texture to the set of textures
[Common::Renderer::OGL::GLShaderMaterial]
* Constructor requires a name, which is passed down to ShaderMaterial's
  constructor
* Removed AttachTexture member function
* Removed the texture array
[Common::Renderer::ShaderMaterial]
* Constructor requires a name, which is passed down to Material's constructor
[Common::System::Array]
* Resolved header files to point to their correct locations
[Common::System::Hash]
* Resolved header files to point to their correct locations
* Added HashString, which performs a simple hash on a string, returning an
  unsigned 32-bit integer equivalent
|SOURCE|
[Common::Utility::Camera]
* Moved the Rotate member function to be a pure virtual function of the Camera
  class (considering the same for Move)
[Common::Utility::FirstPersonCamera]
* Removed HeadOffset, as the position for the camera will be used instead of
  trying to impose any rules other than the maximum head up/down and the way
  the camera rotates on the yaw
* Added virtual member function Update from the base class
* Rotate and Update replicate the same functionality from the FreeCamera class
* Move only moves along the X, Z plane
* m_MaxPitch is set to ZED_Pi / 2.0f by default
|MERGE|
renderer_material into unstable
|SOURCE|
[Common::Renderer::Renderer]
* [Fix] GetMaterial (by name) was not const
|SOURCE|
[Linux::Renderer::GLExtender]
* Some GL functions have dropped the EXT postfix, prefering the non-EXT
  functions over the EXT ones
|SOURCE|
[Common::System::InputTypes]
* Added KeyToString to convert a ZED key to it's string representation
[Common::Utility::InputBinder]
* Added a constructor which takes an integer to decide how many inputs can be
  bound to an action
* Added PrintBoundKeys to help with ensuring that the keys expected are bound
  to the correct actions