//CGfxShadowMap - [2020-04-13 11:57:46]
#ifndef _CGFXSHADOWMAP_H_
#define _CGFXSHADOWMAP_H_

#include "CFTTVector32.h"
#include "CFTTMatrix32.h"
/*

001C94B0 CGfxShadowMap::CGfxShadowMap(uchar)
001C9544 CGfxShadowMap::~CGfxShadowMap()
001CA854 CGfxShadowMap::~CGfxShadowMap()
001C72E4 CGfxShadowMap::Clear(bool,uchar)
001C7D90 CGfxShadowMap::GetTexture()
001C9548 CGfxShadowMap::GetRTT()
001C9584 CGfxShadowMap::BMap(bool)
001C96B4 CGfxShadowMap::MappingBounds(CFTTVector32 &,CFTTVector32 &,uchar)
001C9764 CGfxShadowMap::SamplingBounds(CFTTVector32 &,CFTTVector32 &,uchar)
001C9850 CGfxShadowMap::Scissor(uchar)

                CGfxShadowMap
                /           \
CGfxShadowMapUniform        CGfxShadowMapPSSM
*/

class CGfxShadowMapManager;
class CFTTRenderToTexture;
class CFTTTexture;

class CGfxShadowMap {
public:
  CGfxShadowMap(uchar);                                        //001C94B0
  virtual ~CGfxShadowMap();                                    //001C9544 001CA854
  virtual bool Map(bool)=0;
  virtual void BMap(bool);                                     //001C9584
  void Clear(bool, uchar);                                     //001C72E4
  CFTTTexture* GetTexture();                                   //001C7D90
  void GetRTT();                                               //001C9548
  void MappingBounds(CFTTVector32 &, CFTTVector32 &, uchar);   //001C96B4
  void SamplingBounds(CFTTVector32 &, CFTTVector32 &, uchar);  //001C9764
  void Scissor(uchar);                                         //001C9850

  CFTTRenderToTexture *filed_4;
  CFTTMatrix32 filed_8;

  float filed_48;
  float filed_4c;
  float filed_50;
  float filed_54;

  float filed_58;
  float filed_5c;
  int filed_60;
  int filed_64;

  uchar filed_68;
  uchar filed_69;
  uchar filed_6a;
  uchar filed_6b;

  float filed_6c;

  static CGfxShadowMapManager *ms_pManager;
};

void SetupShader();

#endif  //_CGFXSHADOWMAP_H_