//CGfxGroundShadow - [2020-04-13 11:57:46]
#ifndef _CGFXGROUNDSHADOW_H_
#define _CGFXGROUNDSHADOW_H_

#include "CFTTModel.h"
//#include "CFTTBatchModelManager.h"

/*
001C3658  CGfxGroundShadow::CGfxGroundShadow()
001C3B88  CGfxGroundShadow::~CGfxGroundShadow()
001C3888  CGfxGroundShadow::Init()
001C1D94  CGfxGroundShadow::Initialise()
001C1F20  CGfxGroundShadow::Get()
001C1F30  CGfxGroundShadow::Debug()
001C2470  CGfxGroundShadow::Shutdown()
001C2510  CGfxGroundShadow::PreRender()
001C32D0  CGfxGroundShadow::Render()
001C3C18  CGfxGroundShadow::Shut()
001C3CC4  CGfxGroundShadow::BatchModelFlushCB(CFTTBatchModelManager *,void *)
001C3CD4  CGfxGroundShadow::FlushShadowBatch()
001C3D60  CGfxGroundShadow::PrepareDepthHack()
001C406C  CGfxGroundShadow::DepthHack(uchar)
001C4138  CGfxGroundShadow::CreateAABBs()
001C4444  CGfxGroundShadow::MergeAABB()
001C4794  CGfxGroundShadow::SplitAABB()
001C4A14  CGfxGroundShadow::SetupAtlas()
001C4CD4  CGfxGroundShadow::CalculateZ()
001C4ED8  CGfxGroundShadow::RenderAtlas()
001C5470  CGfxGroundShadow::CreateAABB(CFTTModel *,CFTTMatrix32,float)
001C6278  CGfxGroundShadow::SortAtlas()
001C62CC  CGfxGroundShadow::GetAtlas(uchar)
*/

class CFTTBatchModelManager;

class CGfxGroundShadow {
public:
  CGfxGroundShadow();                                       //001C3658
  ~CGfxGroundShadow();                                      //001C3B88
  void Init();                                              //001C3888
  static void Initialise();                                 //001C1D94
  void Get();                                               //001C1F20
  void Debug();                                             //001C1F30
  void Shutdown();                                          //001C2470
  void PreRender();                                         //001C2510
  void Render();                                            //001C32D0
  void Shut();                                              //001C3C18
  void BatchModelFlushCB(CFTTBatchModelManager *, void *);  //001C3CC4
  void FlushShadowBatch();                                  //001C3CD4
  void PrepareDepthHack();                                  //001C3D60
  void DepthHack(uchar);                                    //001C406C
  void CreateAABBs();                                       //001C4138
  void MergeAABB();                                         //001C4444
  void SplitAABB();                                         //001C4794
  void SetupAtlas();                                        //001C4A14
  void CalculateZ();                                        //001C4CD4
  void RenderAtlas();                                       //001C4ED8
  void CreateAABB(CFTTModel *, CFTTMatrix32, float);        //001C5470
  void SortAtlas();                                         //001C6278
  void GetAtlas(uchar);                                     //001C62CC

  char filed_0[197756]; //数据结构没有分析， 先放这
  static CGfxGroundShadow *ms_pInstance;
};

#endif  //_CGFXGROUNDSHADOW_H_