prime/include/MetroidPrime/Cameras/CCameraBlurPass.hpp

51 lines
1.1 KiB
C++
Raw Normal View History

#ifndef _CCAMERABLURPASS
#define _CCAMERABLURPASS
2022-10-04 00:00:46 +00:00
#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,
};
2022-11-10 16:32:18 +00:00
CCameraBlurPass();
2022-10-04 00:00:46 +00:00
void SetBlur(EBlurType type, float amount, float duration, bool usePersistentFb);
void DisableBlur(float duration);
2022-11-10 16:32:18 +00:00
void Draw() const;
static void DrawWideScreen(const CColor& color, const CTexture* tex, float v);
2022-11-10 16:32:18 +00:00
EBlurType GetCurrType() const { return x10_curType; }
bool GetNoPersistentCopy() const { return x2d_noPersistentCopy; }
2022-10-04 00:00:46 +00:00
private:
rstl::optional_object< TCachedToken< CTexture > > x0_paletteTex;
2022-10-04 00:00:46 +00:00
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