//CPPBlitShader - [2020-04-13 11:57:47]
#ifndef _CPPBLITSHADER_H_
#define _CPPBLITSHADER_H_

#include "common.h"
#include "CFTTUberShader.h"

/*
001D02DC CPPBlitShader::CPPBlitShader()
001D02E8 CPPBlitShader::~CPPBlitShader()
001885EC CPPBlitShader::SetDepthTexMode(EPPBlitShader_DepthTexMode)
001896C0 CPPBlitShader::SetDepthTex(CFTTTexParam)
00189720 CPPBlitShader::SetDepthTexParams(CFTTVector32x4 const&)
0018972C CPPBlitShader::SetDOFSmall(CFTTTexParam)
00189740 CPPBlitShader::SetDOFLarge(CFTTTexParam)
00189754 CPPBlitShader::SetDOFEqFar(CFTTVector32 const&)
00189760 CPPBlitShader::SetDOFLerpBias(CFTTVector32x4 const&)
0018976C CPPBlitShader::SetDOFLerpScale(CFTTVector32x4 const&)
00189778 CPPBlitShader::SetDof(EPPBlitShader_Dof,int)
00189788 CPPBlitShader::SetFog(EPPBlitShader_Fog,int)
00189798 CPPBlitShader::SetFogParams(CFTTVector32 const&)
001897A4 CPPBlitShader::SetFogColour(CFTTVector32 const&)
001897B0 CPPBlitShader::SetGlow(EPPBlitShader_Glow,int)
001897C0 CPPBlitShader::SetGlowTex(CFTTTexParam)
001897D4 CPPBlitShader::SetMainTex(CFTTTexParam)
001D02EC CPPBlitShader::CreateMat(EPPBlitShader_Glow,EPPBlitShader_Fog,EPPBlitShader_Dof)
*/

enum EPPBlitShader_DepthTexMode {
  EPPBlitShader_DepthTexMode_0,
  EPPBlitShader_DepthTexMode_1,
  EPPBlitShader_DepthTexMode_2,
  EPPBlitShader_DepthTexMode_3,
  EPPBlitShader_DepthTexMode_4,
  EPPBlitShader_DepthTexMode_5,
};

enum EPPBlitShader_Dof {
  EPPBlitShader_Dof_0,
  EPPBlitShader_Dof_1,
  EPPBlitShader_Dof_2,
  EPPBlitShader_Dof_3,
  EPPBlitShader_Dof_4,
  EPPBlitShader_Dof_5,
};

enum EPPBlitShader_Fog {
  EPPBlitShader_Fog_0,
  EPPBlitShader_Fog_1,
  EPPBlitShader_Fog_2,
  EPPBlitShader_Fog_3,
  EPPBlitShader_Fog_4,
  EPPBlitShader_Fog_5,
};

enum EPPBlitShader_Glow {
  EPPBlitShader_Glow_0,
  EPPBlitShader_Glow_1,
  EPPBlitShader_Glow_2,
  EPPBlitShader_Glow_3,
  EPPBlitShader_Glow_4,
  EPPBlitShader_Glow_5,
};

class CPPBlitShader : public CFTTUberShader {
public:
  CPPBlitShader();                                         //001D02DC
  ~CPPBlitShader();                                        //001D02E8
  void SetDepthTexMode(EPPBlitShader_DepthTexMode eMode);  //001885EC
  void SetDepthTex(CFTTTexParam aTexParam);                //001896C0
  void SetDepthTexParams(CFTTVector32x4 const&);           //00189720
  void SetDOFSmall(CFTTTexParam);                          //0018972C
  void SetDOFLarge(CFTTTexParam);                          //00189740
  void SetDOFEqFar(CFTTVector32 const&);                   //00189754
  void SetDOFLerpBias(CFTTVector32x4 const&);              //00189760
  void SetDOFLerpScale(CFTTVector32x4 const&);             //0018976C
  void SetDof(EPPBlitShader_Dof, int);                     //00189778
  void SetFog(EPPBlitShader_Fog, int);                     //00189788
  void SetFogParams(CFTTVector32 const&);                  //00189798
  void SetFogColour(CFTTVector32 const&);                  //001897A4
  void SetGlow(EPPBlitShader_Glow, int);                   //001897B0
  void SetGlowTex(CFTTTexParam);                           //001897C0
  void SetMainTex(CFTTTexParam);                           //001897D4
  ushort CreateMat(EPPBlitShader_Glow,
                   EPPBlitShader_Fog,
                   EPPBlitShader_Dof);  //001D02EC

  static CPPBlitShader s_tInstance;  //0047BAB8
};

#endif  //_CPPBLITSHADER_H_