#pragma once #include "Runtime/CToken.hpp" //#include #include namespace metaforce { class CTexture; enum class EFilterShape; enum class EFilterType; class CRandomStaticFilter { struct Uniform { zeus::CColor color; float randOff; float discardThres; }; // boo::ObjToken m_vbo; // boo::ObjToken m_uniBuf; // boo::ObjToken m_dataBind; Uniform m_uniform; bool m_cookieCutter; public: static void Initialize(); static void Shutdown(); explicit CRandomStaticFilter(EFilterType type, bool cookieCutter = false); explicit CRandomStaticFilter(EFilterType type, const TLockedToken&) : CRandomStaticFilter(type) {} void draw(const zeus::CColor& color, float t); void DrawFilter(EFilterShape, const zeus::CColor& color, float t) { draw(color, t); } }; class CCookieCutterDepthRandomStaticFilter : public CRandomStaticFilter { public: explicit CCookieCutterDepthRandomStaticFilter(EFilterType type) : CRandomStaticFilter(type, true) {} explicit CCookieCutterDepthRandomStaticFilter(EFilterType type, const TLockedToken&) : CCookieCutterDepthRandomStaticFilter(type) {} }; } // namespace metaforce