#pragma once #include #include #include #include "zeus/CRectangle.hpp" #include "zeus/CVector4f.hpp" namespace urde { class CFogVolumePlaneShader { template friend struct CFogVolumePlanePipeline; struct Vert { hsh::float4 pos; Vert(hsh::float4 pos) : pos(pos) {} }; hsh::dynamic_owner> m_vbo; std::array m_dataBinds; std::vector m_verts; size_t m_vertCapacity = 0; void CommitResources(size_t capacity); public: static const zeus::CRectangle DefaultRect; void reset(size_t numVerts) { m_verts.clear(); m_verts.reserve(numVerts); } void addFan(const zeus::CVector3f* verts, size_t numVerts); void draw(size_t pass); }; } // namespace urde