CFTTShaderBuiltInConstants.cpp 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. #include "CFTTShaderBuiltInConstants.h"
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5. #include "CFTTMatrix32.h"
  6. #include "FTTGraphics.h"
  7. #include "Matrix.h"
  8. // 003489AC
  9. bool CFTTShaderBuiltInConstants::ms_bRecalcWorldMatrix3x3 =
  10. true; // 002014E6 = 1, 00201720 = 0
  11. bool CFTTShaderBuiltInConstants::ms_bRecalcWorldView =
  12. true; // 002014FC = 1, 002015A6 = 1, 00201808 = 0
  13. bool CFTTShaderBuiltInConstants::ms_bRecalcWorldViewProj =
  14. true; // 002014FE = 1, 002015A0 = 1, 00201614 = 1, 002017C4 = 0
  15. bool CFTTShaderBuiltInConstants::ms_bRecalcPosWorldViewProj =
  16. true; // 00201500 = 1, 002015A2 = 1, 00201616 = 1, 002016B0 = 1, 0020177C =
  17. // 0
  18. bool CFTTShaderBuiltInConstants::ms_bRecalcPosWorld =
  19. true; // 00201502 = 1, 002016B2 = 1, 00201890 = 0
  20. bool CFTTShaderBuiltInConstants::ms_bRecalcWorldViewMatrixZ =
  21. true; // 00201506 = 1, 002015AA = 1, 00201A72 = 0
  22. bool CFTTShaderBuiltInConstants::ms_bRecalcWorldInvTrans =
  23. true; // 00201508 = 1, 002018DA = 0
  24. bool CFTTShaderBuiltInConstants::ms_bRecalcOrthoProj =
  25. true; // 0020150A = 1, 002015B2 = 1, 0020161A = 1, 002019F4 = 0
  26. bool CFTTShaderBuiltInConstants::ms_bRecalcViewProj =
  27. true; // 002015A4 = 1, 00201618 = 1, 0020184C = 0
  28. bool CFTTShaderBuiltInConstants::ms_bRecalcInvView =
  29. true; // 002015AE = 1, 0020197C = 0
  30. float CFTTShaderBuiltInConstants::ms_fFragCoordToUVMatrix[9]; // 005A9E08
  31. CFTTVector32 CFTTShaderBuiltInConstants::ms_vCamDir; // 005A9D50
  32. CFTTVector32x4 CFTTShaderBuiltInConstants::ms_vViewport; // 005A9D5C
  33. CFTTVector32x4 CFTTShaderBuiltInConstants::ms_vOrthoProjX; // 005A9D6C
  34. CFTTVector32x4 CFTTShaderBuiltInConstants::ms_vOrthoProjY; // 005A9D7C
  35. CFTTVector32x4 CFTTShaderBuiltInConstants::ms_vWorldViewMatrixZ; // 005A9D8C
  36. CFTTMatrix32 CFTTShaderBuiltInConstants::ms_matWorld; // 005A9AC4
  37. CFTTMatrix32 CFTTShaderBuiltInConstants::ms_matView; // 005A9B04
  38. CFTTMatrix32 CFTTShaderBuiltInConstants::ms_matProj; // 005A9B44
  39. CFTTMatrix32 CFTTShaderBuiltInConstants::ms_matPos = {
  40. 1.0, 0.0, 0.0, 0.0, // 0034896C
  41. 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0};
  42. const CFTTVector32x4 *CFTTShaderBuiltInConstants::ms_pBoneMats; // 005A9E2C
  43. CFTTMatrix3x3 CFTTShaderBuiltInConstants::ms_fUVMatrix3x3[2]; // 005A9DC0
  44. CFTTMatrix3x3 CFTTShaderBuiltInConstants::ms_fWorldMatrix3x3; // 005A9D9C
  45. CFTTMatrix32 CFTTShaderBuiltInConstants::ms_matPosWorldViewProj; // 005A9BC4
  46. CFTTMatrix32 CFTTShaderBuiltInConstants::ms_matWorldViewProj; // 005A9B84
  47. CFTTMatrix32 CFTTShaderBuiltInConstants::ms_matWorldView; // 005A9C44
  48. CFTTMatrix32 CFTTShaderBuiltInConstants::ms_matViewProj; // 005A9C04
  49. CFTTMatrix32 CFTTShaderBuiltInConstants::ms_matPosWorld; // 005A9C84
  50. CFTTMatrix32 CFTTShaderBuiltInConstants::ms_matWorldInvTrans; // 005A9CC4
  51. CFTTMatrix32 CFTTShaderBuiltInConstants::ms_matInvView; // 005A9D04
  52. //-------------------------------------------------------------------------------------------------
  53. // 002014A8 经过单元测试,功能正常
  54. void CFTTShaderBuiltInConstants::SetWorldMatrix(
  55. CFTTMatrix32 const &worldmatrix) {
  56. // LOGI("CFTTShaderBuiltInConstants::SetWorldMatrix entry");
  57. }
  58. //-------------------------------------------------------------------------------------------------
  59. // 00201540 经过单元测试,功能正常
  60. void CFTTShaderBuiltInConstants::SetViewMatrix(CFTTMatrix32 const &viewmatrix) {
  61. LOGE("%x", viewmatrix);
  62. LOGE("%x%x%x%x", viewmatrix.d[0][0]);
  63. LOGE("%x%x%x%x", viewmatrix.d[0][1]);
  64. LOGE("%x%x%x%x", viewmatrix.d[0][2]);
  65. LOGE("%x%x%x%x", viewmatrix.d[0][3]);
  66. LOGE("%x%x%x%x", viewmatrix.d[1][0]);
  67. LOGE("%x%x%x%x", viewmatrix.d[1][1]);
  68. LOGE("%x%x%x%x", viewmatrix.d[1][2]);
  69. LOGE("%x%x%x%x", viewmatrix.d[1][3]);
  70. LOGE("%x%x%x%x", viewmatrix.d[2][0]);
  71. LOGE("%x%x%x%x", viewmatrix.d[2][1]);
  72. LOGE("%x%x%x%x", viewmatrix.d[2][2]);
  73. LOGE("%x%x%x%x", viewmatrix.d[2][3]);
  74. LOGE("%x%x%x%x", viewmatrix.d[3][0]);
  75. LOGE("%x%x%x%x", viewmatrix.d[3][1]);
  76. LOGE("%x%x%x%x", viewmatrix.d[3][2]);
  77. LOGE("%x%x%x%x", viewmatrix.d[3][3]);
  78. }
  79. //-------------------------------------------------------------------------------------------------
  80. // 002015DC 经过单元测试,功能正常
  81. void CFTTShaderBuiltInConstants::SetProjMatrix(CFTTMatrix32 const &viewmatrix) {
  82. LOGE("%x%x%x%x", viewmatrix.d[0][0]);
  83. LOGE("%x%x%x%x", viewmatrix.d[0][1]);
  84. LOGE("%x%x%x%x", viewmatrix.d[0][2]);
  85. LOGE("%x%x%x%x", viewmatrix.d[0][3]);
  86. LOGE("%x%x%x%x", viewmatrix.d[1][0]);
  87. LOGE("%x%x%x%x", viewmatrix.d[1][1]);
  88. LOGE("%x%x%x%x", viewmatrix.d[1][2]);
  89. LOGE("%x%x%x%x", viewmatrix.d[1][3]);
  90. LOGE("%x%x%x%x", viewmatrix.d[2][0]);
  91. LOGE("%x%x%x%x", viewmatrix.d[2][1]);
  92. LOGE("%x%x%x%x", viewmatrix.d[2][2]);
  93. LOGE("%x%x%x%x", viewmatrix.d[2][3]);
  94. LOGE("%x%x%x%x", viewmatrix.d[3][0]);
  95. LOGE("%x%x%x%x", viewmatrix.d[3][1]);
  96. LOGE("%x%x%x%x", viewmatrix.d[3][2]);
  97. LOGE("%x%x%x%x", viewmatrix.d[3][3]);
  98. }
  99. //-------------------------------------------------------------------------------------------------
  100. // 00201634
  101. void CFTTShaderBuiltInConstants::SetViewport(int width, int height) {}
  102. //-------------------------------------------------------------------------------------------------
  103. // 0020166C
  104. void CFTTShaderBuiltInConstants::SetBoneMatrices(
  105. CFTTVector32x4 const *bonematrices) {}
  106. //-------------------------------------------------------------------------------------------------
  107. // 0020167C
  108. void CFTTShaderBuiltInConstants::SetPosTransform(float const *postransform) {}
  109. //-------------------------------------------------------------------------------------------------
  110. // 002016C4
  111. void CFTTShaderBuiltInConstants::SetUVTransform1(CFTTVector32x4 transform) {}
  112. //-------------------------------------------------------------------------------------------------
  113. void CFTTShaderBuiltInConstants::SetUVTransform2(CFTTVector32x4 transform) {}
  114. //-------------------------------------------------------------------------------------------------
  115. // 002016FC
  116. CFTTMatrix3x3 *CFTTShaderBuiltInConstants::GetWorldMatrix3x3() {
  117. return &CFTTShaderBuiltInConstants::ms_fWorldMatrix3x3;
  118. }
  119. //-------------------------------------------------------------------------------------------------
  120. // 00201754
  121. CFTTMatrix32 *CFTTShaderBuiltInConstants::GetPosWorldViewProjMatrix() {
  122. return &CFTTShaderBuiltInConstants::ms_matPosWorldViewProj;
  123. }
  124. //-------------------------------------------------------------------------------------------------
  125. // 0020179C
  126. CFTTMatrix32 *CFTTShaderBuiltInConstants::GetWorldViewProjMatrix() {
  127. return &CFTTShaderBuiltInConstants::ms_matWorldViewProj;
  128. }
  129. //-------------------------------------------------------------------------------------------------
  130. // 002017E4 经过单元测试,功能正常
  131. CFTTMatrix32 *CFTTShaderBuiltInConstants::GetWorldViewMatrix() {
  132. return &CFTTShaderBuiltInConstants::ms_matWorldView;
  133. }
  134. //-------------------------------------------------------------------------------------------------
  135. // 00201828
  136. CFTTMatrix32 *CFTTShaderBuiltInConstants::GetViewProjMatrix() {
  137. return &CFTTShaderBuiltInConstants::ms_matViewProj;
  138. }
  139. //-------------------------------------------------------------------------------------------------
  140. // 0020186C
  141. CFTTMatrix32 *CFTTShaderBuiltInConstants::GetPosWorldMatrix() {
  142. return &CFTTShaderBuiltInConstants::ms_matPosWorld;
  143. }
  144. //-------------------------------------------------------------------------------------------------
  145. // 002018B0
  146. CFTTMatrix32 *CFTTShaderBuiltInConstants::GetInvTransposeWorldMatrix() {
  147. return &CFTTShaderBuiltInConstants::ms_matWorldInvTrans;
  148. }
  149. //-------------------------------------------------------------------------------------------------
  150. // 00201950
  151. CFTTMatrix32 *CFTTShaderBuiltInConstants::GetInvViewMatrix() {
  152. return &CFTTShaderBuiltInConstants::ms_matInvView;
  153. }
  154. //-------------------------------------------------------------------------------------------------
  155. float *CFTTShaderBuiltInConstants::GetCamPos() {
  156. CFTTMatrix32 *matInvView = GetInvViewMatrix();
  157. return (float *)(&(matInvView->d[3]));
  158. }
  159. //-------------------------------------------------------------------------------------------------
  160. // 002019AC
  161. CFTTVector32x4 *CFTTShaderBuiltInConstants::GetOrthoProjectionX() {
  162. return &CFTTShaderBuiltInConstants::ms_vOrthoProjX;
  163. }
  164. //-------------------------------------------------------------------------------------------------
  165. // 002019D0
  166. void CFTTShaderBuiltInConstants::RecalcOrthoProj() {}
  167. //-------------------------------------------------------------------------------------------------
  168. // 00201A24
  169. CFTTVector32x4 *CFTTShaderBuiltInConstants::GetOrthoProjectionY() {
  170. return &CFTTShaderBuiltInConstants::ms_vOrthoProjY;
  171. }
  172. //-------------------------------------------------------------------------------------------------
  173. // 00201A48
  174. CFTTVector32x4 *CFTTShaderBuiltInConstants::GetWorldViewMatrixZ() {
  175. return &CFTTShaderBuiltInConstants::ms_vWorldViewMatrixZ;
  176. }
  177. //-------------------------------------------------------------------------------------------------
  178. // 00201A90
  179. float *CFTTShaderBuiltInConstants::GetFragCoordToUVMatrix() {
  180. return &CFTTShaderBuiltInConstants::ms_fFragCoordToUVMatrix[0];
  181. }
  182. //-------------------------------------------------------------------------------------------------
  183. // 00201B98
  184. const CFTTVector32x4 *CFTTShaderBuiltInConstants::GetBoneMatrices() {
  185. return CFTTShaderBuiltInConstants::ms_pBoneMats;
  186. }
  187. //-------------------------------------------------------------------------------------------------
  188. // 00201BA8
  189. CFTTMatrix32 *CFTTShaderBuiltInConstants::GetPosTransform() {
  190. return &CFTTShaderBuiltInConstants::ms_matPos;
  191. }
  192. //-------------------------------------------------------------------------------------------------
  193. // 00201BB4
  194. CFTTMatrix3x3 *CFTTShaderBuiltInConstants::GetUVTransform1() {
  195. return &CFTTShaderBuiltInConstants::ms_fUVMatrix3x3[0];
  196. }
  197. //-------------------------------------------------------------------------------------------------
  198. // 00201BC0
  199. CFTTMatrix3x3 *CFTTShaderBuiltInConstants::GetUVTransform2() {
  200. return &CFTTShaderBuiltInConstants::ms_fUVMatrix3x3[1];
  201. }
  202. //-------------------------------------------------------------------------------------------------