FE2D.cpp 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469
  1. #include <arm_neon.h>
  2. #include "FE2D.h"
  3. #include "FTT2D.h"
  4. #include "XMATH.h"
  5. #include "CPartAdditive2dShader.h"
  6. #include "CPolaroid2dShader.h"
  7. #include "CSheen2dShader.h"
  8. #include "CBlurVShader.h"
  9. #include "CSDFFontVisFBShader.h"
  10. #include "CKitGenShader.h"
  11. #include "CFTTCamera.h"
  12. #include "CFTTTime.h"
  13. #include "CKitGenShader.h"
  14. #include "CFTTMaterialManager.h"
  15. #include "CFTTVector32x4.h"
  16. #include "CFTTGraphicsDevice.h"
  17. int FE2D_iMaterialPartAdditive = -1; //003365A4
  18. int FE2D_iMaterialSDFFontVisFB = -1; //003365A8
  19. int FE2D_iMaterialSheenEffect = -1; //003365AC
  20. int FE2D_iMaterialPolaroidFade = -1; //003365B0
  21. int FE2D_iMaterialBlurVariable = -1; //003365B4
  22. int FE2D_iMaterialKitGen = -1; //003365B8
  23. //-------------------------------------------------------------------------------------------------
  24. //00148B34 //^_^
  25. void FE2D_DrawRectCol(float f0, float f1, float f2, float f3, uint a4) {
  26. LOGI("FE2D_DrawRectCol 00148B34 end");
  27. }
  28. //-------------------------------------------------------------------------------------------------
  29. //00148B6C //^_^0023A4D8
  30. void FE2D_DrawRectCol(float f0, float f1, float f2, float f3,
  31. uint a4, uint a5, uint a6, uint a7) {
  32. }
  33. //-------------------------------------------------------------------------------------------------
  34. //00148BB4 //^_^
  35. void FE2D_DrawTriangle(float f0, float f1, float f2, float f3, float f4,
  36. float f5, bool b6, uint a7) {
  37. }
  38. //-------------------------------------------------------------------------------------------------
  39. //00148BF0 //^_^
  40. void FE2D_DrawRectColRot(float f0, float f1, float f2, float f3,
  41. uint a4,
  42. float f5, float f6, float f7) {
  43. LOGI("FE2D_DrawRectColRot 00148BF0 end");
  44. }
  45. //-------------------------------------------------------------------------------------------------
  46. //00148C14 //^_^
  47. void FE2D_DrawRectColRot(float f0, float f1, float f2, float f3,
  48. uint a4, uint a5, uint a6, uint a7,
  49. float f8, float f9, float f10) {
  50. }
  51. //-------------------------------------------------------------------------------------------------
  52. //00148C38 //^_^
  53. void FE2D_DrawRectColRotAA(float f0, float f1, float f2, float f3,
  54. uint a4,
  55. float f5, float f6, float f7,
  56. TImage *pImage) {
  57. }
  58. //-------------------------------------------------------------------------------------------------
  59. //00148CE8 //^_^
  60. void FE2D_DrawTexScaleColCropRot(TImage *pImage,
  61. float f1, float f2, float f3, float f4,
  62. uint a5,
  63. float fx6, float fy7, float fWidth8, float fHeight9,
  64. float f10, float f11, float f12) {
  65. }
  66. //-------------------------------------------------------------------------------------------------
  67. //00148D44 //^_^
  68. void FE2D_DrawTex(CFTTTexture *pTexture, float f1, float f2) {
  69. }
  70. //-------------------------------------------------------------------------------------------------
  71. //00148D90 //^_^
  72. void FE2D_DrawTex(TImage *pImage, float f1, float f2) {
  73. LOGI("FE2D_DrawTex 00148D90 end");
  74. }
  75. //-------------------------------------------------------------------------------------------------
  76. //00148DD4 //^_^
  77. void FE2D_SetValidImage(TImage *pImage) {
  78. LOGI("FE2D_SetValidImage entry");
  79. LOGI("FE2D_SetValidImage end");
  80. }
  81. //-------------------------------------------------------------------------------------------------
  82. //00148DF4 //^_^
  83. void FE2D_DrawTexScale(CFTTTexture *pTexture, float f1, float f2, float f3, float f4) {
  84. }
  85. //-------------------------------------------------------------------------------------------------
  86. //00148E28 //^_^
  87. void FE2D_DrawTexScale(TImage *pImage, float f1, float f2, float f3, float f4) {
  88. LOGI("FE2D_DrawTexScale 00148E28 entry %p %.4f %.4f %.4f %.4f", pImage, f1, f2, f3, f4);
  89. LOGI("FE2D_DrawTexScale 00148E28 end");
  90. }
  91. //-------------------------------------------------------------------------------------------------
  92. //00148E58
  93. void FE2D_DrawTexCol(CFTTTexture *pTexture, float f1, float f2, uint a3) {
  94. }
  95. //-------------------------------------------------------------------------------------------------
  96. //00148EA8
  97. void FE2D_DrawTexCol(TImage *pImage, float f1, float f2, uint a3) {
  98. }
  99. //-------------------------------------------------------------------------------------------------
  100. //00148EEC
  101. void FE2D_DrawTexScaleCol(CFTTTexture *a1, float a2, float a3, float a4,
  102. float a5, uint a6) {
  103. srand(time(NULL));
  104. int ret = rand();
  105. printf("%d%d%d%d%d%d%d", a1, ret, a2, a3, a4, a5, a6);
  106. }
  107. //-------------------------------------------------------------------------------------------------
  108. //00148F20
  109. void FE2D_DrawTexScaleCol(TImage *pImage, float f1, float f2, float f3, float f4, uint a5) {
  110. }
  111. //-------------------------------------------------------------------------------------------------
  112. //00148F4C //^_^
  113. void FE2D_DrawTexScaleCol(TImage *pImage,
  114. float f1, float f2, float f3, float f4,
  115. uint a5, uint a6, uint a7, uint a8) {
  116. LOGI("FE2D_DrawTexScaleCol 00148F4C entry %p %.4f %.4f %.4f %.4f %x %x %x %x", pImage, f1, f2, f3, f4, a5, a6, a7, a8);
  117. LOGI("FE2D_DrawTexScaleCol 00148F4C end");
  118. }
  119. //-------------------------------------------------------------------------------------------------
  120. //00148F88
  121. void FE2D_DrawTexScaleCrop(CFTTTexture *pTexture,
  122. float f1, float f2, float f3, float f4,
  123. float f5, float f6, float f7, float f8) {
  124. }
  125. //-------------------------------------------------------------------------------------------------
  126. //00148FE0 //^_^
  127. void FE2D_DrawTexScaleCrop(TImage *pImage,
  128. float f1, float f2, float f3, float f4,
  129. float f5, float f6, float f7, float f8) {
  130. LOGI("FE2D_DrawTexScaleCrop 00148FE0 entry %p %.4f %.4f %.4f %.4f %.4f %.4f %.4f %.4f", pImage, f1, f2, f3, f4, f5, f6, f7, f8);
  131. LOGI("FE2D_DrawTexScaleCrop 00148FE0 end");
  132. }
  133. //-------------------------------------------------------------------------------------------------
  134. //00149034 //^_^
  135. void FE2D_SetValidImage(TImage *pImage, CFTT2D_TextureUV *pUV) {
  136. }
  137. //-------------------------------------------------------------------------------------------------
  138. //00149054
  139. void FE2D_DrawTexScaleRot(CFTTTexture *pTexture,
  140. float f1, float f2, float f3, float f4,
  141. float f5, float f6, float f7) {
  142. }
  143. //-------------------------------------------------------------------------------------------------
  144. //0014908E //^_^
  145. void FE2D_DrawTexScaleRot(TImage *pImage,
  146. float f1, float f2, float f3, float f4,
  147. float f5, float f6, float f7) {
  148. }
  149. //-------------------------------------------------------------------------------------------------
  150. //001490C8
  151. void FE2D_DrawTexColCrop(CFTTTexture *pTexture,
  152. float f1, float f2,
  153. uint a3,
  154. float f4, float f5, float f6, float f7) {
  155. }
  156. //-------------------------------------------------------------------------------------------------
  157. //00149124
  158. void FE2D_DrawTexColCrop(TImage *pImage,
  159. float f1, float f2,
  160. uint a3,
  161. float f4, float f5, float f6, float f7) {
  162. }
  163. //-------------------------------------------------------------------------------------------------
  164. //0014917C
  165. void FE2D_DrawTexScaleColCrop(CFTTTexture *pTexture,
  166. float f1, float f2, float f3, float f4,
  167. uint a5,
  168. float f6, float f7, float f8, float f9) {
  169. }
  170. //-------------------------------------------------------------------------------------------------
  171. //001491D0 //^_^
  172. void FE2D_DrawTexScaleColCrop(TImage *pImage,
  173. float f1, float f2, float f3, float f4,
  174. uint a5,
  175. float f6, float f7, float f8, float f9) {
  176. }
  177. //-------------------------------------------------------------------------------------------------
  178. //00149224
  179. void FE2D_DrawTexScaleColCrop(CFTTTexture *pTexture,
  180. float f1, float f2, float f3, float f4,
  181. uint a5, uint a6, uint a7, uint a8,
  182. float f9, float f10, float f11, float f12) {
  183. }
  184. //-------------------------------------------------------------------------------------------------
  185. //0014928C
  186. void FE2D_DrawTexScaleColCrop(TImage *pImage,
  187. float f1, float f2, float f3, float f4,
  188. uint a5, uint a6, uint a7, uint a8,
  189. float f9, float f10, float f11, float f12) {
  190. }
  191. //-------------------------------------------------------------------------------------------------
  192. //001492EC
  193. void FE2D_DrawTexScaleColRot(CFTTTexture *pTexture,
  194. float f1, float f2, float f3, float f4,
  195. uint a5,
  196. float f6, float f7, float f8) {
  197. LOGI("FE2D_DrawTexScaleColRot 001492EC entry");
  198. }
  199. //-------------------------------------------------------------------------------------------------
  200. //00149324 //^_^
  201. void FE2D_DrawTexScaleColRot(TImage *pImage, float f1, float f2, float f3, float f4, uint a5, float f6, float f7, float f8) {
  202. LOGI("FE2D_DrawTexScaleColRot 00149324 entry");
  203. LOGE("%p%f%f%f%f%x%f%f",pImage,f1,f2,f3,f4,a5,f6,f7,f8);
  204. }
  205. //-------------------------------------------------------------------------------------------------
  206. //0014935A //^_^
  207. void FE2D_DrawTexScaleColCropRot(TImage *pImage,
  208. float f1,
  209. float f2,
  210. float f3,
  211. float f4,
  212. uint a5,
  213. uint a6,
  214. uint a7,
  215. uint a8,
  216. float f9,
  217. float f10,
  218. float f11,
  219. float f12,
  220. float f13,
  221. float f14,
  222. float f15) {
  223. }
  224. //-------------------------------------------------------------------------------------------------
  225. //001493C4
  226. void FE2D_DrawTexScaleColCropRot(CFTTTexture *pTexture,
  227. float f1, float f2, float f3, float f4,
  228. uint a5,
  229. float f6, float f7, float f8,
  230. float f9, float f10, float f11, float f12) {
  231. }
  232. //-------------------------------------------------------------------------------------------------
  233. //00149422
  234. void FE2D_DrawLineCol(float f0, float f1, float f2, float f3, uint a4, bool b5) {
  235. FTT2D_DrawLineCol(f0, f1, f2, f3, a4);
  236. }
  237. //-------------------------------------------------------------------------------------------------
  238. //00149428
  239. void FE2D_DrawLineColX(float f0, float f1, float f2, float f3, float f4, uint a5, TImage *pImage6) {
  240. // loc_14951E
  241. }
  242. //-------------------------------------------------------------------------------------------------
  243. //00149528
  244. void FE2D_DrawDottedLineColX(float f0, float f1, float f2, float f3, float f4, float f5, uint a6) {
  245. }
  246. //-------------------------------------------------------------------------------------------------
  247. //00149628
  248. void FE2D_DrawDottedCurveLineCol(float f0, float f1, float f2, float f3, float f4, float f5, float f6, uint a7) {
  249. FE2D_DrawDottedCurveLineColX(f0, f1, f2, f3,
  250. (f0 + ((f2 - f0) * 0.5)) - ((f3 - f1) * f4),
  251. (f1 + ((f3 - f1) * 0.5)) + ((f2 - f0) * f4),
  252. f5, f6, a7);
  253. }
  254. //-------------------------------------------------------------------------------------------------
  255. //00149684
  256. void FE2D_DrawDottedCurveLineColX(float f0, float f1, float f2, float f3,
  257. float f4, float f5, float f6, float f7,
  258. uint a8) {
  259. }
  260. //-------------------------------------------------------------------------------------------------
  261. //00149788
  262. void FE2D_DrawDottedCurveLineColXS(float f0, float f1, float f2, float f3, float f4, float f5, float f6, float f7, uint a8, TImage *pImage9) {
  263. }
  264. //-------------------------------------------------------------------------------------------------
  265. //001497F0
  266. void FE2D_DrawDottedCurveLineColXXS(float f0, float f1, float f2, float f3, float f4, float f5, float f6, float f7, float f8, uint a9, TImage *pImage9) {
  267. }
  268. //-------------------------------------------------------------------------------------------------
  269. //00149A40
  270. void FE2D_DrawStarburst(float f0, float f1, int i2, float const *pf3, int const *pi4, float const *pf5, uint const *pi6) {
  271. //sp14 sp18= pf3 i2
  272. //s18=f0 s16=f1 s20=6.28318548f
  273. //loc_149BCE
  274. //loc_149BCE
  275. float r11_f=0;
  276. int r4_i=0;
  277. CFTT2D_TexturedVert texturedVert_sp50[305];
  278. TImage image_sp38;
  279. for(int r5_i=0;r5_i<i2;r5_i++){
  280. //loc_149A74
  281. uint r7_u=g_pGraphicsDevice->ARGBToPlatformU32(pi6[r5_i]);
  282. //sp28=pi4[r5_i]
  283. int r5_i1=0x40/(pi4[r5_i]*2);
  284. if(r5_i1<=1)
  285. r5_i1=1;
  286. float s26_f=pf5[r5_i];
  287. float s22_f=6.28318548f/(pi4[r5_i]*2);
  288. float s0_f=r5_i1;
  289. //sp1c=r5_i
  290. float s28_f=pf3[r5_i];
  291. float s24_f=s22_f/s0_f;
  292. //sp24=r5_i1*3
  293. //sp20=r5_i1*60
  294. //loc_149BC4
  295. for(int r1_i=0;r1_i<pi4[r5_i];r1_i++){
  296. //loc_149AFE
  297. float s2_f=r1_i*2;
  298. s0_f=s22_f*s2_f+s26_f;
  299. //sp34=r4
  300. //sp30=r10=texturedVert_sp50[r4_i]
  301. //loc_149BAE
  302. CFTT2D_TexturedVert *r10_pvert=&texturedVert_sp50[r4_i];
  303. for(uint r8_u=0;r8_u<r5_i1;r8_u++){
  304. //loc_149B1E
  305. r10_pvert[0].field_0=f0;
  306. r10_pvert[0].field_4=f1;
  307. float s30_f=s24_f+s0_f;
  308. r10_pvert[0].argb_8=r7_u;
  309. r10_pvert[0].field_C=r11_f;
  310. r10_pvert[0].field_10=r11_f;
  311. float s17_f=sinf(s0_f);
  312. s0_f=cosf(s0_f);
  313. r10_pvert[1].argb_8=r7_u;
  314. r10_pvert[1].field_C=1.0f;
  315. r10_pvert[1].field_10=r11_f;
  316. s2_f=f0+s28_f*s17_f;
  317. float s4_f=f1+s28_f*s0_f;
  318. r10_pvert[1].field_0=s2_f;
  319. r10_pvert[1].field_4=s4_f;
  320. s17_f= sinf(s30_f);
  321. s0_f=cosf(s30_f);
  322. r10_pvert[2].argb_8=r7_u;
  323. r10_pvert[2].field_C=1.0f;
  324. r10_pvert[2].field_10=r11_f;
  325. s2_f=f0+s28_f*s17_f;
  326. s4_f=f1+s28_f*s0_f;
  327. r10_pvert[2].field_0=s2_f;
  328. r10_pvert[2].field_4=s4_f;
  329. r10_pvert=r10_pvert+3;
  330. }
  331. //00149BB2
  332. //r10_pvert=texturedVert_sp50[r4_i]+r5_i1;
  333. r4_i=r4_i+r5_i1*3;
  334. }
  335. //00149BCA
  336. }
  337. //00149BD6
  338. FETU_GetImage(&image_sp38,"PKG:/Data/FE/UI/StarburstGrad.png",false,EFTTTexFormat_3,false,false,true);
  339. FE2D_SetBlendPartAdditive();
  340. FTT2D_SetTexture(image_sp38.pTexture_0,0);
  341. FTT2D_DrawTexturedVertList(texturedVert_sp50,r4_i);
  342. FE2D_SetBlendModulate();
  343. }
  344. //-------------------------------------------------------------------------------------------------
  345. //00149C24
  346. void FE2D_SetBlendPartAdditive() {
  347. LOGE("FE2D_SetBlendPartAdditive");
  348. }
  349. //-------------------------------------------------------------------------------------------------
  350. //00149C34 //^_^
  351. void FE2D_SetBlendModulate() {
  352. LOGE("FE2D_SetBlendModulate");
  353. }
  354. //-------------------------------------------------------------------------------------------------
  355. //00149C48
  356. void FE2D_DrawUnfilledRect(float f0, float f1, float f2, float f3,
  357. uint a4,
  358. float f5, float f6, float f7) {
  359. FTT2D_DrawUnfilledRect(f0, f1, f2, f3, a4, f5, f6, f7);
  360. }
  361. //-------------------------------------------------------------------------------------------------
  362. //00149C4C
  363. void FE2D_DrawBox(float f0, float f1, float f2, float f3, uint a4) {
  364. //00149C7C
  365. }
  366. //-------------------------------------------------------------------------------------------------
  367. //00149CF0
  368. void FE2D_DrawShadowBG(float f0, float f1, float f2, float f3,
  369. float f4,
  370. uint argb5, uint argb6) {
  371. }
  372. //-------------------------------------------------------------------------------------------------
  373. //00149DD0 //^_- 经过单元测试,功能正常
  374. void FE2D_Init() {
  375. LOGI("FE2D_Init: entry");
  376. LOGI("FE2D_Init: end");
  377. }
  378. //-------------------------------------------------------------------------------------------------
  379. //00149E98
  380. void FE2D_Shutdown() {
  381. }
  382. //-------------------------------------------------------------------------------------------------
  383. //00149F90
  384. void FE2D_SetBlendMat(int a0) {
  385. FTT2D_SetMaterial(a0);
  386. }
  387. //-------------------------------------------------------------------------------------------------
  388. //00149F94
  389. void FE2D_SetBlendAdditive() {
  390. }
  391. //-------------------------------------------------------------------------------------------------
  392. //00149FA8
  393. void FE2D_SetBlendAdditiveSimple() {
  394. }
  395. //-------------------------------------------------------------------------------------------------
  396. //00149FBC
  397. void FE2D_SetBlendSubtractiveSimple() {
  398. }
  399. //-------------------------------------------------------------------------------------------------
  400. //00149FD0
  401. void FE2D_SetBlendSubtractive() {
  402. }
  403. //-------------------------------------------------------------------------------------------------
  404. //00149FE4
  405. void FE2D_SetBlendRTTAlphaAccum() {
  406. }
  407. //-------------------------------------------------------------------------------------------------
  408. //00149FF8
  409. void FE2D_SetBlendOff() {
  410. FTT2D_SetMaterial(-1);
  411. FTT2D_SetDefaultMatBlend(EFTT2D_Blend_0);
  412. }
  413. //-------------------------------------------------------------------------------------------------
  414. //0014A00C
  415. void FE2D_SetBlendJustAlpha() {
  416. FTT2D_SetMaterial(-1);
  417. FTT2D_SetDefaultMatBlend(EFTT2D_Blend_10);
  418. }
  419. //-------------------------------------------------------------------------------------------------
  420. //0014A020
  421. void FE2D_SetBlendMultiply() {
  422. FTT2D_SetMaterial(-1);
  423. FTT2D_SetDefaultMatBlend(EFTT2D_Blend_7);
  424. }
  425. //-------------------------------------------------------------------------------------------------
  426. //0014A034
  427. void FE2D_SetBlendMultiply2x() {
  428. FTT2D_SetMaterial(-1);
  429. FTT2D_SetDefaultMatBlend(EFTT2D_Blend_9);
  430. }
  431. //-------------------------------------------------------------------------------------------------
  432. //0014A048 //^_-
  433. void FE2D_SetBlendSheenEffect() {
  434. LOGI("FE2D_SetBlendSheenEffect entry %lld", CFTTTime::s_uUnscaledTime);
  435. LOGI("FE2D_SetBlendSheenEffect end");
  436. }
  437. //-------------------------------------------------------------------------------------------------
  438. //0014A104
  439. void FE2D_SetBlendBlurVariable(float f0,
  440. float f1,
  441. EBlurVShader_Mode eMode2,
  442. CFTTTexture *pTex3) {
  443. }
  444. //-------------------------------------------------------------------------------------------------
  445. //0014A1A4
  446. void FE2D_SetBlendKitGen() {
  447. FTT2D_SetMaterial(FE2D_iMaterialKitGen);
  448. }
  449. //-------------------------------------------------------------------------------------------------
  450. //002A42A0 int64_to_float_2A42A0
  451. //第一个界面,不需要这儿的函数