2022-10-09 05:13:17 +00:00
|
|
|
#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
|
|
|
|
2022-10-17 17:43:21 +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;
|
|
|
|
|
2022-10-09 05:37:23 +00:00
|
|
|
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:
|
2022-11-15 13:45:15 +00:00
|
|
|
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)
|
|
|
|
|
2022-10-09 05:13:17 +00:00
|
|
|
#endif // _CCAMERABLURPASS
|