Merge branch 'utility_grid' of https://github.com/OpenGameDevelopers/ZED into window_manager
Merge branch 'unstable' of https://github.com/OpenGameDevelopers/ZED into window_manager
Merge branch 'unstable' of https://github.com/OpenGameDevelopers/ZED into window_manager
|SOURCE|
[Common::System::File]
* Added File class which will handle opening, reading, writing, and navigating
  files
[Common::System::NativeFile]
* Added NativeFile which will access a file from storage like any other file,
  without any meta data
[Linux::System::NativeFile]
* Open
  * Uses the flags for the Access type to determine how to construct the mode
    parameter for fopen
  * Returns ZED_OK if the file was successfully opened or ZED_FAIL if it could
    not be opened
  * More specific information about any possible failures is printed to the
    terminal
* Close
  * Checks if the file is open, if it is then it is closed
* ReadByte
  * Reads in the specified amount of bytes to the data pointer passed in to the
    member function
  * Returns ZED_FAIL if the length read does not match what was requested
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
|MERGE|
renderer_material into unstable
|SOURCE|
[Common::Renderer::Renderer]
* [Fix] GetMaterial (by name) was not const