//CGfxShadow - [2020-04-13 11:57:46]
#ifndef _CGFXSHADOW_H_
#define _CGFXSHADOW_H_

#include "CFTTModel.h"
#include "CFTTTexture.h"
#include "CFTTMatrix32.h"
#include "CFTTVector32.h"
//#include "CFTTBatchModelManager.h"

/*
001C1B18 CGfxShadow::Init()
001C1DB8 CGfxShadow::BatchModelFlushCB(CFTTBatchModelManager *,void *)
001C1DBC CGfxShadow::InitGame()
001C1E80 CGfxShadow::Debug()
001C2044 CGfxShadow::GetTexture()
001C2060 CGfxShadow::StadiumShadowCreate()
001C2278 CGfxShadow::BoxInit()
001C2288 CGfxShadow::FlushShadowBatch()
001C2368 CGfxShadow::StadiumShadowRender()
001C23D8 CGfxShadow::Shutdown()
001C2490 CGfxShadow::StadiumShadowShutdown()
001C24AC CGfxShadow::RenderToTexture()
001C2548 CGfxShadow::RenderAllShadows()
001C2664 CGfxShadow::RenderShadowsBegin()
001C2708 CGfxShadow::RenderShadowsEnd()
001C2758 CGfxShadow::RenderModelFakeShadow(CFTTModel *,float,CFTTMatrix32 *,CFTTMatrix32 *)
001C29B0 CGfxShadow::BoxAdd(TRectI *)
001C2CD4 CGfxShadow::KillStaticShadows()
001C2E28 CGfxShadow::StadiumShadowLookUpCol(CFTTTexture *,CFTTVector32 *,float,float,float)
001C2EA0 CGfxShadow::BoxRenderDebug()
001C3020 CGfxShadow::BoxRender()
001C32A8 CGfxShadow::RenderStencilShadows()
*/

class CFTTBatchModelManager;

class CGfxShadow {
public:
  static void Init();                                                                     //001C1B18
  static void BatchModelFlushCB(CFTTBatchModelManager *, void *);                         //001C1DB8
  static void InitGame();                                                                 //001C1DBC
  void Debug();                                                                           //001C1E80
  static CFTTTexture* GetTexture();                                                       //001C2044
  static void StadiumShadowCreate();                                                      //001C2060
  void BoxInit();                                                                         //001C2278
  static void FlushShadowBatch();                                                         //001C2288
  void StadiumShadowRender();                                                             //001C2368
  static void Shutdown();                                                                 //001C23D8
  void StadiumShadowShutdown();                                                           //001C2490
  static void RenderToTexture();                                                          //001C24AC
  static void RenderAllShadows();                                                         //001C2548
  void RenderShadowsBegin();                                                              //001C2664
  void RenderShadowsEnd();                                                                //001C2708
  static void RenderModelFakeShadow(CFTTModel *, float, CFTTMatrix32 *, CFTTMatrix32 *);  //001C2758
  static void BoxAdd(TRectI *);                                                           //001C29B0
  void KillStaticShadows();                                                               //001C2CD4
  void StadiumShadowLookUpCol(CFTTTexture *, CFTTVector32 *, float, float, float);        //001C2E28
  void BoxRenderDebug();                                                                  //001C2EA0
  static void BoxRender();                                                                //001C3020
  static void RenderStencilShadows();                                                     //001C32A8
};

extern CFTTTexture* GFXSHADOW_pStadiumShadowTex;			//004764FC
extern CFTTVector32 GFXSHADOW_vLightDir[4];		//004764C8
extern TRectI GFXSHADOW_tBox[768];		        //00476504
extern uint32 GFXSHADOW_iBoxCount;				//00476500
extern uint32 GFXSHADOW_iLightCount;				//004764F8

#endif  //_CGFXSHADOW_H_