#ifndef _CCAMERABLURPASS #define _CCAMERABLURPASS #include "types.h" #include "MetroidPrime/TGameTypes.hpp" #include "Kyoto/Graphics/CColor.hpp" #include "Kyoto/TToken.hpp" #include "rstl/auto_ptr.hpp" #include "rstl/optional_object.hpp" class CTexture; class CCameraBlurPass { public: enum EBlurType { kBT_NoBlur, kBT_LoBlur, kBT_HiBlur, kBT_XRay, }; CCameraBlurPass(); void SetBlur(EBlurType type, float amount, float duration, bool usePersistentFb); void DisableBlur(float duration); void Draw() const; static void DrawWideScreen(const CColor& color, const CTexture* tex, float v); EBlurType GetCurrType() const { return x10_curType; } bool GetNoPersistentCopy() const { return x2d_noPersistentCopy; } private: rstl::optional_object< TCachedToken< CTexture > > x0_paletteTex; EBlurType x10_curType; EBlurType x14_endType; float x18_endValue; float x1c_curValue; float x20_startValue; float x24_totalTime; float x28_remainingTime; bool x2c_usePersistent; bool x2d_noPersistentCopy; uint x30_persistentBuf; }; CHECK_SIZEOF(CCameraBlurPass, 0x34) #endif // _CCAMERABLURPASS