#pragma once #include #include #include #include #include #include namespace zeus { class CVector3f; } namespace metaforce { class CFogVolumePlaneShader { boo::ObjToken m_vbo; std::array, 4> m_dataBinds; std::vector m_verts; size_t m_vertCapacity = 0; void CommitResources(size_t capacity); public: static void Initialize(); static void Shutdown(); static const zeus::CRectangle DefaultRect; void reset(int numVerts) { m_verts.clear(); m_verts.reserve(numVerts); } void addFan(const zeus::CVector3f* verts, int numVerts); void draw(int pass); }; } // namespace metaforce