#pragma once

#include "ShaderProgram.h"

namespace td {
namespace shader {

class EntityShader : public ShaderProgram {

private:
	unsigned int m_LocationCam = 0;
	unsigned int m_LocationZoom = 0;
	unsigned int m_LocationAspectRatio = 0;
	unsigned int m_LocationTranslation = 0;
	unsigned int m_LocationViewtype = 0;
protected:
	virtual void GetAllUniformLocation();
public:
	EntityShader();

	void LoadShader();
	void SetCamPos(const glm::vec2& camPos);
	void SetZoom(float zoom);
	void SetAspectRatio(float aspectRatio);
	void SetModelPos(const glm::vec2& modelPos);
	void SetIsometricView(float isometric);
};

} // namespace shader
} // namespace td
