#pragma once

#include "ShaderProgram.h"

namespace blitz {
namespace shader {

class WorldShader : public ShaderProgram {
  private:
	unsigned int m_LocationProjection = 0, m_LocationView = 0, m_LocationLight = 0;

  protected:
	void GetAllUniformLocation() override;

  public:
	WorldShader();

	void LoadShader();

	void SetProjectionMatrix(const Mat4f& proj) const;
	void SetViewMatrix(const Mat4f& view) const;
	void SetLightPosition(const Vec3f& lightPos) const;
};

}  // namespace shader
}  // namespace blitz
