#pragma once #include #include #include "zeus/CColor.hpp" #include "zeus/CMatrix4f.hpp" #include "zeus/CVector2f.hpp" #include "zeus/CVector3f.hpp" namespace urde { class CTexture; class CEnergyBarShader { public: struct Vertex { hsh::float3 pos; hsh::float2 uv; }; struct Uniform { hsh::float4x4 m_matrix; hsh::float4 m_color; }; private: hsh::dynamic_owner> m_vbo; std::array>, 3> m_uniBuf; std::array m_dataBind; Uniform m_uniform; size_t m_maxVerts = 0; public: void updateModelMatrix(); void draw(const zeus::CColor& color0, const std::vector& verts0, const zeus::CColor& color1, const std::vector& verts1, const zeus::CColor& color2, const std::vector& verts2, hsh::texture2d tex); }; } // namespace urde