CGFXSpec.cpp 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  1. #include "CGFXSpec.h"
  2. #include "CFTTDevice.h"
  3. #include "AndroidApp.h"
  4. #include "CFTTAndroidDevice.h"
  5. #include "CXmlUtil.h"
  6. #include "CFTTGraphicsDevice.h"
  7. #include "STORY.h"
  8. #include "CFE.h"
  9. char CGFXSpec::s_cDeviceReport[0x1000];
  10. //-------------------------------------------------------------------------------------------------
  11. const char *list_ResLimit_323204[4] = {
  12. "ResLimit_Phone", //手机
  13. "ResLimit_Phablet", //平板手机
  14. "ResLimit_Tablet", //平板电脑
  15. "ResLimit_Screen" //
  16. };
  17. //-------------------------------------------------------------------------------------------------
  18. GFXSPEC_Specification GFXSPEC_tSpecification_AndroidLow{
  19. 0x1e, //field_0
  20. 1.399999976158142, //fLODMultGame_4
  21. 1.200000047683716, //fLODMultNIS_8
  22. 0.75, //fRTTScaleFactorX_C
  23. 0.75, //fRTTScaleFactorY_10
  24. 256, //iAtlasWidth_14
  25. 256, //iAtlasHeight_18
  26. 2, //iKitTexFormat_1C
  27. 512, //iKitDims_20
  28. false, //bSoftShadows_24
  29. true, //bEnvObjectShadows_25
  30. false, //bGameplayStadium_26
  31. true, //bCrowdAnimated_27
  32. false, //bDropTexMips_28
  33. false, //field_29 unuse
  34. false, //field_2A unuse
  35. false, //field_2B unuse
  36. 0, //eEnableDOF_2C
  37. false, //bEnableDepthFog_30
  38. false, //bEnableReflection_31
  39. false, //bEnableGodRays_32
  40. false, //bHighQualityNet_33
  41. 0u,
  42. 0u,
  43. 1u,
  44. 0u,
  45. nullptr, //pVHSShader_38
  46. false, //bHighQualityGroundShadows_3C
  47. false, //b3DGrass_3D
  48. false, //bFloatEnvMap_3E
  49. false, //bDynNormMap_3F
  50. 0, //eAntiAliasing_40
  51. EPlayerShader_Quality_0, //ePlayerLightingQuality_44
  52. EPitchShader_Quality_0, //eHighQualityGrass_48
  53. 0, //eCrowdQuality_4C
  54. -1, //iMinMaxResolution_50
  55. false, //bForce16Bit_54
  56. };
  57. //-------------------------------------------------------------------------------------------------
  58. GFXSPEC_Specification GFXSPEC_tSpecification_AndroidMed{
  59. 0x1e, //field_0
  60. 1.200000047683716, //fLODMultGame_4
  61. 1.100000023841858, //fLODMultNIS_8
  62. 0.75, //fRTTScaleFactorX_C
  63. 0.75, //fRTTScaleFactorY_10
  64. 256, //iAtlasWidth_14
  65. 256, //iAtlasHeight_18
  66. 3, //iKitTexFormat_1C
  67. 256, //iKitDims_20
  68. false, //bSoftShadows_24
  69. true, //bEnvObjectShadows_25
  70. true, //bGameplayStadium_26
  71. true, //bCrowdAnimated_27
  72. false, //bDropTexMips_28
  73. false, //field_29 unuse
  74. false, //field_2A unuse
  75. false, //field_2B unuse
  76. 1, //eEnableDOF_2C
  77. true, //bEnableDepthFog_30
  78. true, //bEnableReflection_31
  79. true, //bEnableGodRays_32
  80. true, //bHighQualityNet_33
  81. 1u,
  82. 1u,
  83. 3u,
  84. 0u,
  85. "2d_vhsbasic", //pVHSShader_38
  86. false, //bHighQualityGroundShadows_3C
  87. false, //b3DGrass_3D
  88. false, //bFloatEnvMap_3E
  89. false, //bDynNormMap_3F
  90. 0, //eAntiAliasing_40
  91. EPlayerShader_Quality_1, //ePlayerLightingQuality_44
  92. EPitchShader_Quality_1, //eHighQualityGrass_48
  93. 0, //eCrowdQuality_4C
  94. -1, //iMinMaxResolution_50
  95. false, //bForce16Bit_54
  96. };
  97. //-------------------------------------------------------------------------------------------------
  98. GFXSPEC_Specification GFXSPEC_tSpecification_AndroidHigh{
  99. 0x3c, //field_0
  100. 0.875, //fLODMultGame_4
  101. 0.75, //fLODMultNIS_8
  102. 1.0, //fRTTScaleFactorX_C
  103. 1.0, //fRTTScaleFactorY_10
  104. 256, //iAtlasWidth_14
  105. 256, //iAtlasHeight_18
  106. 3, //iKitTexFormat_1C
  107. 512, //iKitDims_20
  108. true, //bSoftShadows_24
  109. true, //bEnvObjectShadows_25
  110. true, //bGameplayStadium_26
  111. true, //bCrowdAnimated_27
  112. false, //bDropTexMips_28
  113. false, //field_29 unuse
  114. false, //field_2A unuse
  115. false, //field_2B unuse
  116. 2, //eEnableDOF_2C
  117. true, //bEnableDepthFog_30
  118. true, //bEnableReflection_31
  119. true, //bEnableGodRays_32
  120. true, //bHighQualityNet_33
  121. 1u,
  122. 1u,
  123. 4u,
  124. 0u,
  125. "2d_vhsfancy", //pVHSShader_38
  126. true, //bHighQualityGroundShadows_3C
  127. true, //b3DGrass_3D
  128. true, //bFloatEnvMap_3E
  129. true, //bDynNormMap_3F
  130. 0, //eAntiAliasing_40
  131. EPlayerShader_Quality_1, //ePlayerLightingQuality_44
  132. EPitchShader_Quality_2, //eHighQualityGrass_48
  133. 2, //eCrowdQuality_4C
  134. -1, //iMinMaxResolution_50
  135. false, //bForce16Bit_54
  136. };
  137. //-------------------------------------------------------------------------------------------------
  138. GFXSPEC_Specification GFXSPEC_tSpecification_AndroidHighest{
  139. 0x3c, //field_0
  140. 0.75, //fLODMultGame_4
  141. 0.5, //fLODMultNIS_8
  142. 1.0, //fRTTScaleFactorX_C
  143. 1.0, //fRTTScaleFactorY_10
  144. 256, //iAtlasWidth_14
  145. 256, //iAtlasHeight_18
  146. 3, //iKitTexFormat_1C
  147. 512, //iKitDims_20
  148. true, //bSoftShadows_24
  149. true, //bEnvObjectShadows_25
  150. true, //bGameplayStadium_26
  151. true, //bCrowdAnimated_27
  152. false, //bDropTexMips_28
  153. false, //field_29 unuse
  154. false, //field_2A unuse
  155. false, //field_2B unuse
  156. 3, //eEnableDOF_2C
  157. true, //bEnableDepthFog_30
  158. true, //bEnableReflection_31
  159. true, //bEnableGodRays_32
  160. true, //bHighQualityNet_33
  161. 1u,
  162. 1u,
  163. 4u,
  164. 0u,
  165. "2d_vhsfancy", //pVHSShader_38
  166. true, //bHighQualityGroundShadows_3C
  167. true, //b3DGrass_3D
  168. true, //bFloatEnvMap_3E
  169. true, //bDynNormMap_3F
  170. 3, //eAntiAliasing_40
  171. EPlayerShader_Quality_2, //ePlayerLightingQuality_44
  172. EPitchShader_Quality_3, //eHighQualityGrass_48
  173. 3, //eCrowdQuality_4C
  174. -1, //iMinMaxResolution_50
  175. false, //bForce16Bit_54
  176. };
  177. //-------------------------------------------------------------------------------------------------
  178. GFXSPEC_Specification *list_Specification_323214[]{
  179. &GFXSPEC_tSpecification_AndroidLow,
  180. &GFXSPEC_tSpecification_AndroidLow,
  181. &GFXSPEC_tSpecification_AndroidMed,
  182. &GFXSPEC_tSpecification_AndroidHigh,
  183. &GFXSPEC_tSpecification_AndroidHighest,
  184. };
  185. //-------------------------------------------------------------------------------------------------
  186. GFXSPEC_Specification *GFXSPEC_pSpecification;
  187. char CGFXSpec::s_cDeviceAnalyticsString[512];
  188. //-------------------------------------------------------------------------------------------------
  189. //0018F3F0
  190. extern "C" {
  191. bool sub_18F3F0(CFTTXmlReaderNode *pXmlNode0, const char *pName, int *pOut) {
  192. return true;
  193. }
  194. }
  195. //-------------------------------------------------------------------------------------------------
  196. //0018E728 经过单元测试,功能正常
  197. void CGFXSpec::Initialise() {
  198. // 只保留android相关的代码,ios的忽略
  199. //SYS_GetHardwareType();
  200. //locret_18E80A return
  201. LOGI("CGFXSpec::Initialise End");
  202. }
  203. //-------------------------------------------------------------------------------------------------
  204. //0018E878 经过单元测试,功能正常
  205. void CGFXSpec::Platform_InspectDevice() {
  206. LOGI("CGFXSpec::Platform_InspectDevice: Entry");
  207. //loc_18EE76
  208. LOGI("CGFXSpec::Platform_InspectDevice");
  209. }
  210. //-------------------------------------------------------------------------------------------------
  211. //0018EEF4 //^_- 经过单元测试,功能正常
  212. void CGFXSpec::UpdateGraphicsFromConfig(CFTTXmlReaderNode *pXmlNode) {
  213. LOGI("CGFXSpec::UpdateGraphicsFromConfig entry");
  214. }
  215. //-------------------------------------------------------------------------------------------------
  216. //0018F41C //^_^
  217. void CGFXSpec::ApplyResolutionClamp(CFTTXmlReaderNode *pXmlNode) {
  218. //locret_18F4C6
  219. }
  220. //-------------------------------------------------------------------------------------------------