#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