//GFXCAMERA - [2020-06-22 11:41:46]
#ifndef _GFXCAMERA_H_
#define _GFXCAMERA_H_

#include "CFTTMatrix32.h"
#include "CGfxPostProcess.h"

/*
0017CA64 GFXCAMERA_OverrideViewport(bool,int,int)
0017CAC8 GFXCAMERA_ApplyIngameSettings(float,float)
0017CBF0 GFXCAMERA_Set(TPoint3D *,TPoint3D *,TPoint3D *,int,int,int,int,int,bool)
0017CDC0 GFXCAMERA_ScreenToWorld(CFTTVector32 *,TPoint const*,float)
0017CE20 GFXCAMERA_ScreenToWorldRay(TPoint const*,CFTTVector32 &,CFTTVector32 &)
0017CFC8 GFXCAMERA_ScreenToGame(TPoint3D *,TPoint const*,int)
0017D028 GFXCAMERA_GameToScreen(TPoint *,TPoint const*)
0017D040 GFXCAMERA_GameToScreen(TPoint *,TPoint3D const*)
0017D0D0 GFXCAMERA_WorldToScreen(TPoint *,CFTTVector32 *)
0017D168 GFXCAMERA_UpdateMatrices()
0017D2BC GFXCAMERA_CullExterior(CFTTVector32 const&,CFTTVector32 const&)
*/

//0017CA64
void GFXCAMERA_OverrideViewport(bool, int, int);

//0017CAC8
void GFXCAMERA_ApplyIngameSettings(float, float);

//0017CBF0
void GFXCAMERA_Set(TPoint3D *, TPoint3D *, TPoint3D *, int, int, int, int, int, bool);

//0017CDC0
void GFXCAMERA_ScreenToWorld(CFTTVector32 *, TPoint const *, float);

//0017CE20
void GFXCAMERA_ScreenToWorldRay(TPoint const *, CFTTVector32 &, CFTTVector32 &);

//0017CFC8
void GFXCAMERA_ScreenToGame(TPoint3D *, TPoint const *, int);

//0017D028
void GFXCAMERA_GameToScreen(TPoint *, TPoint const *);

//0017D040
void GFXCAMERA_GameToScreen(TPoint *, TPoint3D const *);

//0017D0D0
void GFXCAMERA_WorldToScreen(TPoint *, CFTTVector32 *);

//0017D168
void GFXCAMERA_UpdateMatrices();

//0017D2BC
bool GFXCAMERA_CullExterior(CFTTVector32 const &, CFTTVector32 const &);

extern CFTTVector32 GFXCAMERA_vTarget;
extern CFTTMatrix32 GFXCAMERA_mProjMatrix;
extern CFTTMatrix32 GFXCAMERA_mViewMatrix;
extern CFTTMatrix32 GFXCAMERA_mInvViewProj;
extern CFTTVector32 GFXCAMERA_vCamDir;
extern CFTTVector32 GFXCAMERA_vCamUp;
extern CFTTVector32 GFXCAMERA_vCamRight;
extern bool GFXCAMERA_bOverrideViewport;
extern int GFXCAMERA_iViewPortWidth;
extern int GFXCAMERA_iViewPortHeight;
extern float GFXCAMERA_fYOffset;
extern float GFXCAMERA_fDOFFocus;
extern float GFXCAMERA_fDOFDistance;

extern float GFXCAMERA_fFOV;
extern CFTTVector32 GFXCAMERA_vUp;
extern CFTTVector32 GFXCAMERA_vPos;
extern float GFXCAMERA_fNearClipPlane;
extern float GFXCAMERA_fFarClipPlane;
extern float GFXCAMERA_fDOFMultiplier;

#endif  //_GFXCAMERA_H_