Browse Source

0x00149a40,FE2D_DrawStarburs,152,152, 空函数实现 已测试

DESKTOP-AB9OQPJ\RED-10 3 years ago
parent
commit
0a44ba8d43
2 changed files with 82 additions and 3 deletions
  1. 81 3
      jni/FE2D.cpp
  2. 1 0
      jni/FTT2D.cpp

+ 81 - 3
jni/FE2D.cpp

@@ -13,6 +13,7 @@
 #include "CKitGenShader.h"
 #include "CFTTMaterialManager.h"
 #include "CFTTVector32x4.h"
+#include "CFTTGraphicsDevice.h"
 
 int FE2D_iMaterialPartAdditive = -1;  //003365A4
 int FE2D_iMaterialSDFFontVisFB = -1;  //003365A8
@@ -274,17 +275,94 @@ void FE2D_DrawDottedCurveLineColXXS(float f0, float f1, float f2, float f3, floa
 }
 //-------------------------------------------------------------------------------------------------
 //00149A40
-void FE2D_DrawStarburst(float f0, float f1, int i3, float const *pf4, int const *pi5, float const *pf6, uint const *pi7) {
-  LOGI("FE2D_DrawStarburst %.2f %.2f %d %p %p %p %p ", f0, f1, i3, pf4, pi5, pf6, pi7);
+void FE2D_DrawStarburst(float f0, float f1, int i2, float const *pf3, int const *pi4, float const *pf5, uint const *pi6) {
+  //sp14 sp18= pf3 i2
+  //s18=f0 s16=f1 s20=6.28318548f
+  //loc_149BCE
+  //loc_149BCE
+  float r11_f=0;
+  int r4_i=0;
+  CFTT2D_TexturedVert texturedVert_sp50[305];
+  TImage image_sp38;
+  for(int r5_i=0;r5_i<i2;r5_i++){
+    //loc_149A74
+    uint r7_u=g_pGraphicsDevice->ARGBToPlatformU32(pi6[r5_i]);
+    //sp28=pi4[r5_i]
+    int r5_i1=0x40/(pi4[r5_i]*2);
+    if(r5_i1<=1)
+      r5_i1=1;
+    float s26_f=pf5[r5_i];
+    float s22_f=6.28318548f/(pi4[r5_i]*2);
+    float s0_f=r5_i1;
+    //sp1c=r5_i
+    float s28_f=pf3[r5_i];
+    float s24_f=s22_f/s0_f;
+    //sp24=r5_i1*3
+    //sp20=r5_i1*60
+    //loc_149BC4
+    for(int r1_i=0;r1_i<pi4[r5_i];r1_i++){
+      //loc_149AFE
+      float s2_f=r1_i*2;
+      s0_f=s22_f*s2_f+s26_f;
+      //sp34=r4
+      //sp30=r10=texturedVert_sp50[r4_i]
+      //loc_149BAE
+      CFTT2D_TexturedVert *r10_pvert=&texturedVert_sp50[r4_i];
+      for(uint r8_u=0;r8_u<r5_i1;r8_u++){
+        //loc_149B1E
+        r10_pvert[0].field_0=f0;
+        r10_pvert[0].field_4=f1;
+        float s30_f=s24_f+s0_f;
+        r10_pvert[0].argb_8=r7_u;
+        r10_pvert[0].field_C=r11_f;
+        r10_pvert[0].field_10=r11_f;
+        float s17_f=sinf(s0_f);
+        s0_f=cosf(s0_f);
+        
+        r10_pvert[1].argb_8=r7_u;
+        r10_pvert[1].field_C=1.0f;
+        r10_pvert[1].field_10=r11_f;
+        s2_f=f0+s28_f*s17_f;
+        float s4_f=f1+s28_f*s0_f;
+        r10_pvert[1].field_0=s2_f;
+        r10_pvert[1].field_4=s4_f;
+
+       s17_f= sinf(s30_f);
+       s0_f=cosf(s30_f);
+       r10_pvert[2].argb_8=r7_u;
+       r10_pvert[2].field_C=1.0f;
+       r10_pvert[2].field_10=r11_f;
+       s2_f=f0+s28_f*s17_f;
+       s4_f=f1+s28_f*s0_f;
+       r10_pvert[2].field_0=s2_f;
+       r10_pvert[2].field_4=s4_f;
+       r10_pvert=r10_pvert+3;
+
+      }
+      //00149BB2
+      //r10_pvert=texturedVert_sp50[r4_i]+r5_i1;
+      r4_i=r4_i+r5_i1*3;
+    }
+    //00149BCA
+
+  }
+  //00149BD6
+  FETU_GetImage(&image_sp38,"PKG:/Data/FE/UI/StarburstGrad.png",false,EFTTTexFormat_3,false,false,true);
+  FE2D_SetBlendPartAdditive();
+  FTT2D_SetTexture(image_sp38.pTexture_0,0);
+  FTT2D_DrawTexturedVertList(texturedVert_sp50,r4_i);
+  FE2D_SetBlendModulate();
+
 }
 //-------------------------------------------------------------------------------------------------
 //00149C24
 void FE2D_SetBlendPartAdditive() {
+  LOGE("FE2D_SetBlendPartAdditive");
  }
 //-------------------------------------------------------------------------------------------------
 //00149C34 //^_^
 void FE2D_SetBlendModulate() {
-
+  LOGE("FE2D_SetBlendModulate");
 }
 //-------------------------------------------------------------------------------------------------
 //00149C48

+ 1 - 0
jni/FTT2D.cpp

@@ -312,6 +312,7 @@ void FTT2D_DrawTexturedRect5(float f1, float f2, float f3, float f4,
 //-------------------------------------------------------------------------------------------------
 //0020E1A8
 void FTT2D_DrawTexturedVertList(CFTT2D_TexturedVert *pTexturedVert, int a2) {
+  LOGE("FTT2D_DrawTexturedVertList%p%x",pTexturedVert,a2);
 }
 //-------------------------------------------------------------------------------------------------
 //0020E1E0