//CGFXSpec - [2020-04-13 11:57:46]
#ifndef _CGFXSPEC_H_
#define _CGFXSPEC_H_

#include "CFTTXmlReaderNode.h"
#include "CFTTAndroidGraphicsSettings.h"
#include "CPitchShader.h"

/*
0018E728 CGFXSpec::Initialise()
0018E878 CGFXSpec::Platform_InspectDevice()
0018EEF4 CGFXSpec::UpdateGraphicsFromConfig(CFTTXmlReaderNode *)
0018F41C CGFXSpec::ApplyResolutionClamp(CFTTXmlReaderNode *)
*/

struct GFXSPEC_Specification {
  int dFPS_0;
  float fLODMultGame_4;
  float fLODMultNIS_8;
  float fRTTScaleFactorX_C;
  float fRTTScaleFactorY_10;
  int iAtlasWidth_14;
  int iAtlasHeight_18;
  int iKitTexFormat_1C;
  int iKitDims_20;
  bool bSoftShadows_24;
  bool bEnvObjectShadows_25;
  bool bGameplayStadium_26;
  bool bCrowdAnimated_27;
  bool bDropTexMips_28;
  bool field_29;
  bool field_2A;
  bool field_2B;
  int eEnableDOF_2C;
  bool bEnableDepthFog_30;
  bool bEnableReflection_31;
  bool bEnableGodRays_32;
  bool bHighQualityNet_33;
  uchar uy_34;
  uchar uy_35;
  uchar uy_36;
  uchar uy_37;
  const char *pVHSShader_38;
  bool bHighQualityGroundShadows_3C;
  bool b3DGrass_3D;
  bool bFloatEnvMap_3E;
  bool bDynNormMap_3F;
  int eAntiAliasing_40;
  int ePlayerLightingQuality_44;
  EPitchShader_Quality eHighQualityGrass_48;
  int eCrowdQuality_4C;
  int iMinMaxResolution_50;
  bool bForce16Bit_54;
  bool b_55;
  bool b_56;
  bool b_57;
};

extern GFXSPEC_Specification *GFXSPEC_pSpecification;

class CGFXSpec {
public:
  static void Initialise();                                           //0018E728
  static void Platform_InspectDevice();                               //0018E878
  static void UpdateGraphicsFromConfig(CFTTXmlReaderNode *pXmlNode);  //0018EEF4
  static void ApplyResolutionClamp(CFTTXmlReaderNode *pXmlNode);      //0018F41C

  static char s_cDeviceReport[0x1000];
  static char s_cDeviceAnalyticsString[512];
};

#endif  //_CGFXSPEC_H_