//CPPBlendShader - [2020-04-13 11:57:47]
#ifndef _CPPBLENDSHADER_H_
#define _CPPBLENDSHADER_H_

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

/*
001D0294 CPPBlendShader::CPPBlendShader()
001D02A0 CPPBlendShader::~CPPBlendShader()
0018A2C0 CPPBlendShader::SetFog(EPPBlendShader_Fog)
0018A2D2 CPPBlendShader::SetFogParams(CFTTVector32 const&)
0018A2DE CPPBlendShader::SetFogColour(CFTTVector32 const&)
0018A2EA CPPBlendShader::SetDepthTexMode(EPPBlendShader_DepthTexMode)
0018A2FC CPPBlendShader::SetDepthTexParams(float const*)
0018A308 CPPBlendShader::SetGlow(EPPBlendShader_Glow)
001D02A4 CPPBlendShader::CreateMat()
*/

enum EPPBlendShader_Fog {
  EPPBlendShader_Fog_0,
  EPPBlendShader_Fog_1,
  EPPBlendShader_Fog_2,
  EPPBlendShader_Fog_3,
  EPPBlendShader_Fog_4,
  EPPBlendShader_Fog_5,
};

enum EPPBlendShader_DepthTexMode {
  EPPBlendShader_DepthTexMode_0,
  EPPBlendShader_DepthTexMode_1,
  EPPBlendShader_DepthTexMode_2,
  EPPBlendShader_DepthTexMode_3,
  EPPBlendShader_DepthTexMode_4,
  EPPBlendShader_DepthTexMode_5,
};

enum EPPBlendShader_Glow {
  EPPBlendShader_Glow_0,
  EPPBlendShader_Glow_1,
  EPPBlendShader_Glow_2,
  EPPBlendShader_Glow_3,
  EPPBlendShader_Glow_4,
  EPPBlendShader_Glow_5,
};

class CPPBlendShader : public CFTTUberShader {
public:
  CPPBlendShader();                                         //001D0294
  ~CPPBlendShader();                                        //001D02A0
  void SetFog(EPPBlendShader_Fog eFog);                     //0018A2C0
  void SetFogParams(CFTTVector32 const& pVector32);         //0018A2D2
  void SetFogColour(CFTTVector32 const& pVector32);         //0018A2DE
  void SetDepthTexMode(EPPBlendShader_DepthTexMode eMode);  //0018A2EA
  void SetDepthTexParams(float const* pf);                  //0018A2FC
  void SetGlow(EPPBlendShader_Glow eGlow);                  //0018A308
  ushort CreateMat();                                       //001D02A4

  static CPPBlendShader s_tInstance;  //0008C560
};

#endif  //_CPPBLENDSHADER_H_
