// CGraphicsRewindEffect - [2020-04-13 11:57:46]
#ifndef _CGRAPHICSREWINDEFFECT_H_
#define _CGRAPHICSREWINDEFFECT_H_

#include "CGfxPostProcessBlitter.h"

/*
0018B368 CGraphicsRewindEffect::CGraphicsRewindEffect()
0018B598 CGraphicsRewindEffect::~CGraphicsRewindEffect()
0018B600 CGraphicsRewindEffect::~CGraphicsRewindEffect()
0018B468 CGraphicsRewindEffect::Reset()
0018B610 CGraphicsRewindEffect::Update(float)
0018B880 CGraphicsRewindEffect::UpdateRandom(float,float,float,float,float)
0018B8C8 CGraphicsRewindEffect::HUDRender()
0018B954 CGraphicsRewindEffect::IsActive()
0018B980 CGraphicsRewindEffect::GetVHSShaderSettings(CFTTVector32x4 *)
0018BA58 CGraphicsRewindEffect::GetPriority()
0018BA70 CGraphicsRewindEffect::PostProcessBlit(CFTTTexture *,int)
0018BE44 CGraphicsRewindEffect::GetDiscontinuityPos(int)
0018BE64 CGraphicsRewindEffect::CalcDiscontinuityOffset(float)
0018BEA0 CGraphicsRewindEffect::CalcUOffset(int,int)
0018BF20 CGraphicsRewindEffect::RandomInRange(float,float)

vptr_CGraphicsRewindEffect_3231F4:
   CGraphicsRewindEffect::~CGraphicsRewindEffect()
   CGraphicsRewindEffect::~CGraphicsRewindEffect()
   CGraphicsRewindEffect::GetPriority(void)
   CGraphicsRewindEffect::PostProcessBlit(CFTTTexture *,int)

0x38
*/

struct TRand_10 {
  float f_0[4];
};

class CGraphicsRewindEffect : public CGfxPostProcessBlitter {
public:
  CGraphicsRewindEffect();                                // 0018B368
  virtual ~CGraphicsRewindEffect();                       // 0018B598 0018B600
  virtual int GetPriority();                              // 0018BA58
  virtual void PostProcessBlit(CFTTTexture*, int) const;  // 0018BA70
  void Reset();                                           // 0018B468
  void Update(float);                                     // 0018B610
  void UpdateRandom(float, float, float, float, float);   // 0018B880
  void HUDRender();                                       // 0018B8C8
  bool IsActive() const;                                  // 0018B954
  bool GetVHSShaderSettings(CFTTVector32x4*);             // 0018B980
  void GetDiscontinuityPos(int);                          // 0018BE44
  void CalcDiscontinuityOffset(float);                    // 0018BE64
  float CalcUOffset(int, int) const;                      // 0018BEA0
  void RandomInRange(float, float);                       // 0018BF20

  float f_8;

  int dCount_C;  // pRand_10的数量
  TPointF* pPointF_10;

  int dCount_14;  // pRand_18的数量
  TRand_10* pRand_18;

  float f_1C;
  CFTTTexture* pTexture_20;
  CFTTTexture* pTexture_24;
  ushort dVHSEffectsShader_28;  // 0018B5A8   LDRH R1, [R4,#0x28]
  ushort unuse_2A;              //仅对齐
  CFTTTexture* pTexture_2C;
  CFTTTexture* pTexture_30;
  float f_34;
};

#endif  //_CGRAPHICSREWINDEFFECT_H_