#pragma once

#include "ShaderProgram.h"

namespace blitz {
namespace shader {

class BulletShader : public ShaderProgram {
  private:
	unsigned int m_LocationProjectionMatrix = 0;
	unsigned int m_LocationViewMatrix = 0;
	unsigned int m_LocationAlpha = 0;
	unsigned int m_LocationTransform = 0;

  protected:
	virtual void GetAllUniformLocation() override;

  public:
	BulletShader();

	bool LoadShader();

	void SetProjectionMatrix(const Mat4f& proj) const;
	void SetViewMatrix(const Mat4f& view) const;
	void SetTransform(const Mat4f& trans) const;
	void SetDecay(float decay) const;
};

}  // namespace shader
}  // namespace blitz
