#pragma once #include #include "Runtime/GCNTypes.hpp" #include "Runtime/Graphics/CGraphics.hpp" #include #include namespace metaforce { class CSpaceWarpFilter { struct Uniform { zeus::CMatrix4f m_matrix; zeus::CMatrix4f m_indXf; zeus::CVector3f m_strength; }; std::array, 8>, 4> m_shiftTexture{}; std::shared_ptr m_warpTex; // boo::ObjToken m_vbo; // boo::ObjToken m_uniBuf; // boo::ObjToken m_dataBind; Uniform m_uniform; float m_strength = 1.f; void GenerateWarpRampTex(); public: static void Initialize(); static void Shutdown(); CSpaceWarpFilter(); void setStrength(float strength) { m_strength = strength; } void draw(const zeus::CVector3f& pt); }; } // namespace metaforce