123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660 |
- #include "CGfxPitchLines.h"
- #include "CCircle2dShader.h"
- #include "CFTTMaterialManager.h"
- #include "TPitchLineCircle.h"
- #include "CGraphicsTexLoadOptions.h"
- #include "CFTTRenderToTexture.h"
- #include "CFTTGraphicsDevice.h"
- #include "FTTSPtr.h"
- #include "FTT2D.h"
- #include <algorithm>
- #include "memctrl.h"
- CGfxPitchLines* CGfxPitchLines::ms_pInstance = nullptr;
- //-------------------------------------------------------------------------------------------------
- //001BCBC4 //^_^ 经过单元测试,功能正常
- CGfxPitchLines::CGfxPitchLines() {
- }
- //-------------------------------------------------------------------------------------------------
- //001BCC10 //^_^
- CGfxPitchLines::~CGfxPitchLines() {
- }
- //-------------------------------------------------------------------------------------------------
- //001BC1B8 //^_^
- void CGfxPitchLines::Init() {
- }
- //-------------------------------------------------------------------------------------------------
- //001BC1DC
- void CGfxPitchLines::Initialise() {
- tVec_PLP_0.Resize(2666);
-
- for (ushort r1_us = 0; r1_us <= 42; r1_us++) { // loc_1BC2A4
- // loc_1BC21A
- LOGE("分支1");
- float fs0 = (float)r1_us;
- float fs2 = fs0 + fs0;
- float fs22 = fs0 * 62.0f;
- float fs28 = fs2 + -42.0f;
- for (ushort r6_us = 0; r6_us < 62; r6_us++) { // loc_1BC292
-
- fs0 = (float)r6_us;
- // loc_1BC23C
- fs2 = fs0 + fs0;
- fs0 = fs22 + fs0;
- CGfxPitchLinePatch tPitchLinePatch_C8_sp80;
- //memset(&tPitchLinePatch_C8_sp80, 0, sizeof(CGfxPitchLinePatch)); //此行代码是我自己加的,因为后面有部分数据未初始化
- tPitchLinePatch_C8_sp80.pCGfxPitchLinePatch_0 = nullptr;
- tPitchLinePatch_C8_sp80.pFTTUPtr_Texture_4 = nullptr;
- memset(&tPitchLinePatch_C8_sp80.tFTTVector_TPitchLineRect_20, 0, sizeof(FTTVector<TPitchLineRect>));
- memset(&tPitchLinePatch_C8_sp80.tFTTVector_TPitchLineCircle_34, 0, sizeof(FTTVector<TPitchLineCircle>));
- tPitchLinePatch_C8_sp80.uyTransform_48=0;
- tPitchLinePatch_C8_sp80.field_49=0;
- tPitchLinePatch_C8_sp80.field_4A=0;
- tPitchLinePatch_C8_sp80.field_4B=0;
- tPitchLinePatch_C8_sp80.fUV_x_4C=0;
- tPitchLinePatch_C8_sp80.tFTTVector_TPitchLineRect_20.field_10 = 2.0f;
- tPitchLinePatch_C8_sp80.vec32_Centre_8.float_0 = fs28;
- tPitchLinePatch_C8_sp80.tFTTVector_TPitchLineCircle_34.field_10 = 2.0f;
- tPitchLinePatch_C8_sp80.vec32_Centre_8.float_4 = 0.0f;
- tPitchLinePatch_C8_sp80.vec32_Centre_8.float_8 = fs2 + -61.0f;
- tPitchLinePatch_C8_sp80.vec32_Dimensions_14.float_0 = 2.20000005f;
- tPitchLinePatch_C8_sp80.vec32_Dimensions_14.float_4 = 0.0f;
- tPitchLinePatch_C8_sp80.vec32_Dimensions_14.float_8 = 2.20000005f;
- //memset(&tPitchLinePatch_C8_sp80.tFTTVector_TPitchLineRect_20, 0, sizeof(FTTVector<TPitchLineRect>));
-
- // memset(&tPitchLinePatch_C8_sp80.tFTTVector_TPitchLineCircle_34, 0, sizeof(FTTVector<TPitchLineCircle>));
-
- //tPitchLinePatch_C8_sp80.uyTransform_48 = 0;
- tVec_PLP_0.list_0[(uint)fs0] = std::move(tPitchLinePatch_C8_sp80);
- } // 001BC2A0
- }
- CFTTVector32 vec32_1;
- vec32_1.float_0 = -1212416.0f;
- vec32_1.float_4 = 0.0f;
- vec32_1.float_8 = 0.0f;
- CFTTVector32 vec32_2;
- vec32_2.float_0 = 1212416.0f;
- vec32_2.float_4 = 0.0f;
- vec32_2.float_8 = 0.0f;
- AddRect(vec32_1, vec32_2, 4300.0f, 1, 16384.0f); // 001BC2DE
- vec32_1.float_0 = -1212416.0f;
- vec32_1.float_4 = 0.0f;
- vec32_1.float_8 = 1802240.0f;
- vec32_2.float_0 = -1212416.0f;
- vec32_2.float_4 = 0.0f;
- vec32_2.float_8 = -1802240.0f;
- AddRect(vec32_1, vec32_2, 4300.0f, 1, 16384.0f); // 001BC2FC
- vec32_1.float_0 = 1212416.0f;
- vec32_1.float_4 = 0.0f;
- vec32_1.float_8 = 1802240.0f;
- vec32_2.float_0 = 1212416.0f;
- vec32_2.float_4 = 0.0f;
- vec32_2.float_8 = -1802240.0f;
- AddRect(vec32_1, vec32_2, 4300.0f, 1, 16384.0f); // 001BC316
- vec32_1.float_0 = -1212416.0f;
- vec32_1.float_4 = 0.0f;
- vec32_1.float_8 = -1802240.0f;
- vec32_2.float_0 = 1212416.0f;
- vec32_2.float_4 = 0.0f;
- vec32_2.float_8 = -1802240.0f;
- AddRect(vec32_1, vec32_2, 4300.0f, 1, 16384.0f); // 001BC330
- vec32_1.float_0 = -1212416.0f;
- vec32_1.float_4 = 0.0f;
- vec32_1.float_8 = 1802240.0f;
- vec32_2.float_0 = 1212416.0f;
- vec32_2.float_4 = 0.0f;
- vec32_2.float_8 = 1802240.0f;
- AddRect(vec32_1, vec32_2, 4300.0f, 1, 16384.0f); // 001BC348
- vec32_1.float_0 = -720896.0f;
- vec32_1.float_4 = 0.0f;
- vec32_1.float_8 = -1802240.0f;
- vec32_2.float_0 = -720896.0f;
- vec32_2.float_4 = 0.0f;
- vec32_2.float_8 = -1212416.0f;
- AddRect(vec32_1, vec32_2, 4300.0f, 1, 16384.0f); // 001BC35E
- vec32_1.float_0 = 720896.0f;
- vec32_1.float_4 = 0.0f;
- vec32_1.float_8 = -1802240.0f;
- vec32_2.float_0 = 720896.0f;
- vec32_2.float_4 = 0.0f;
- vec32_2.float_8 = -1212416.0f;
- AddRect(vec32_1, vec32_2, 4300.0f, 1, 16384.0f); // 001BC376
- vec32_1.float_0 = -720896.0f; // 1
- vec32_1.float_4 = 0.0f;
- vec32_1.float_8 = -1212416.0f;
- vec32_2.float_0 = 720896.0f;
- vec32_2.float_4 = 0.0f;
- vec32_2.float_8 = -1212416.0f;
- AddRect(vec32_1, vec32_2, 4300.0f, 1, 16384.0f); // 001BC38C
- vec32_1.float_0 = -327680.0f;
- vec32_1.float_4 = 0.0f;
- vec32_1.float_8 = -1802240.0f;
- vec32_2.float_0 = -327680.0f;
- vec32_2.float_4 = 0.0f;
- vec32_2.float_8 = -1605632.0f;
- AddRect(vec32_1, vec32_2, 4300.0f, 1, 16384.0f); // 001BC3A4
- vec32_1.float_0 = 327680.0f;
- vec32_1.float_4 = 0.0f;
- vec32_1.float_8 = -1802240.0f;
- vec32_2.float_0 = 327680.0f;
- vec32_2.float_4 = 0.0f;
- vec32_2.float_8 = -1605632.0f;
- AddRect(vec32_1, vec32_2, 4300.0f, 1, 16384.0f); // 001BC3BC
- vec32_1.float_0 = -327680.0f;
- vec32_1.float_4 = 0.0f;
- vec32_1.float_8 = -1605632.0f;
- vec32_2.float_0 = 327680.0f;
- vec32_2.float_4 = 0.0f;
- vec32_2.float_8 = -1605632.0f;
- AddRect(vec32_1, vec32_2, 4300.0f, 1, 16384.0f); // 001BC3D2
- vec32_1.float_0 = -720896.0f;
- vec32_1.float_4 = 0.0f;
- vec32_1.float_8 = 1802240.0f;
- vec32_2.float_0 = -720896.0f;
- vec32_2.float_4 = 0.0f;
- vec32_2.float_8 = 1212416.0f;
- AddRect(vec32_1, vec32_2, 4300.0f, 1, 16384.0f); // 001BC3EC
- vec32_1.float_0 = 720896.0f;
- vec32_1.float_4 = 0.0f;
- vec32_1.float_8 = 1802240.0f;
- vec32_2.float_0 = 720896.0f;
- vec32_2.float_4 = 0.0f;
- vec32_2.float_8 = 1212416.0f;
- AddRect(vec32_1, vec32_2, 4300.0f, 1, 16384.0f); // 001BC404
- vec32_1.float_0 = -720896.0f;
- vec32_1.float_4 = 0.0f;
- vec32_1.float_8 = 1212416.0f;
- vec32_2.float_0 = 720896.0f;
- vec32_2.float_4 = 0.0f;
- vec32_2.float_8 = 1212416.0f;
- AddRect(vec32_1, vec32_2, 4300.0f, 1, 16384.0f); // 001BC41C
- vec32_1.float_0 = -327680.0f;
- vec32_1.float_4 = 0.0f;
- vec32_1.float_8 = 1802240.0f;
- vec32_2.float_0 = -327680.0f;
- vec32_2.float_4 = 0.0f;
- vec32_2.float_8 = 1605632.0f;
- AddRect(vec32_1, vec32_2, 4300.0f, 1, 16384.0f); // 001BC434
- vec32_1.float_0 = 327680.0f;
- vec32_1.float_4 = 0.0f;
- vec32_1.float_8 = 1802240.0f;
- vec32_2.float_0 = 327680.0f;
- vec32_2.float_4 = 0.0f;
- vec32_2.float_8 = 1605632.0f;
- AddRect(vec32_1, vec32_2, 4300.0f, 1, 16384.0f); // 001BC44C
- vec32_1.float_0 = -327680.0f;
- vec32_1.float_4 = 0.0f;
- vec32_1.float_8 = 1605632.0f;
- vec32_2.float_0 = 327680.0f;
- vec32_2.float_4 = 0.0f;
- vec32_2.float_8 = 1605632.0f;
- AddRect(vec32_1, vec32_2, 4300.0f, 1, 16384.0f); // 001BC44C
- vec32_1.float_0 = -1343488.0f;
- vec32_1.float_4 = 0.0f;
- vec32_1.float_8 = 425984.0f;
- vec32_2.float_0 = -1245184.0f;
- vec32_2.float_4 = 0.0f;
- vec32_2.float_8 = 425984.0f;
- AddRect(vec32_1, vec32_2, 6450.0f, 3, 16384.0f); // 001BC486
- vec32_1.float_0 = -1343488.0f;
- vec32_1.float_4 = 0.0f;
- vec32_1.float_8 = 32768.0f;
- vec32_2.float_0 = -1245184.0f;
- vec32_2.float_4 = 0.0f;
- vec32_2.float_8 = 32768.0f;
- AddRect(vec32_1, vec32_2, 6450.0f, 3, 16384.0f); // 001BC4A4
- vec32_1.float_0 = -1245184.0f;
- vec32_1.float_4 = 0.0f;
- vec32_1.float_8 = 32768.0f;
- vec32_2.float_0 = -1245184.0f;
- vec32_2.float_4 = 0.0f;
- vec32_2.float_8 = 425984.0f;
- AddRect(vec32_1, vec32_2, 6450.0f, 7, 16384.0f); // 001BC4BE
- vec32_1.float_0 = -1343488.0f;
- vec32_1.float_4 = 0.0f;
- vec32_1.float_8 = -425984.0f;
- vec32_2.float_0 = -1245184.0f;
- vec32_2.float_4 = 0.0f;
- vec32_2.float_8 = -425984.0f;
- AddRect(vec32_1, vec32_2, 6450.0f, 3, 16384.0f); // 001BC4D8
- vec32_1.float_0 = -1343488.0f;
- vec32_1.float_4 = 0.0f;
- vec32_1.float_8 = -32768.0f;
- vec32_2.float_0 = -1245184.0f;
- vec32_2.float_4 = 0.0f;
- vec32_2.float_8 = -32768.0f;
- AddRect(vec32_1, vec32_2, 6450.0f, 3, 16384.0f); // 001BC4F6
- vec32_1.float_0 = -1245184.0f;
- vec32_1.float_4 = 0.0f;
- vec32_1.float_8 = -425984.0f;
- vec32_2.float_0 = -1245184.0f;
- vec32_2.float_4 = 0.0f;
- vec32_2.float_8 = -32768.0f;
- AddRect(vec32_1, vec32_2, 6450.0f, 7, 16384.0f); // 001BC50E
- vec32_1.float_0 = 0.0f;
- vec32_1.float_4 = 0.0f;
- vec32_1.float_8 = 0.0f;
- AddCircle(vec32_1, 0.0f, 4096.0f, 0.0f, -1.0f); // 001BC52E
- vec32_1.float_0 = 0.0f;
- vec32_1.float_4 = 0.0f;
- vec32_1.float_8 = -1409024.0f;
- AddCircle(vec32_1, 0.0f, 4096.0f, 0.0f, -1.0f); // 001BC542
- vec32_1.float_0 = 0.0f;
- vec32_1.float_4 = 0.0f;
- vec32_1.float_8 = 1409024.0f;
- AddCircle(vec32_1, 0.0f, 4096.0f, 0.0f, -1.0f); // 001BC554
- vec32_1.float_0 = 0.0f;
- vec32_1.float_4 = 0.0f;
- vec32_1.float_8 = -1409024.0f;
- AddCircle(vec32_1, 325530.0f, 329830.0f, 0.643501163f, 1.854590416f); // 001BC56E
- vec32_1.float_0 = 0.0f;
- vec32_1.float_4 = 0.0f;
- vec32_1.float_8 = 1409024.0f;
- AddCircle(vec32_1, 325530.0f, 329830.0f, 3.785093784f, 1.854590416f); // 001BC582
- vec32_1.float_0 = 0.0f;
- vec32_1.float_4 = 0.0f;
- vec32_1.float_8 = 0.0f;
- AddCircle(vec32_1, 325530.0f, 329830.0f, 0.0f, -1.0f); // 001BC594
- vec32_1.float_0 = -1212416.0f;
- vec32_1.float_4 = 0.0f;
- vec32_1.float_8 = -1802240.0f;
- AddCircle(vec32_1, 30618.0f, 34918.0f, 0.0f, 1.570796371f); // 001BC5B2
- vec32_1.float_0 = 1212416.0f;
- vec32_1.float_4 = 0.0f;
- vec32_1.float_8 = -1802240.0f;
- AddCircle(vec32_1, 30618.0f, 34918.0f, 1.570796371f, 1.570796371f); // 001BC5C6
- vec32_1.float_0 = -1212416.0f;
- vec32_1.float_4 = 0.0f;
- vec32_1.float_8 = 1802240.0f;
- AddCircle(vec32_1, 30618.0f, 34918.0f, 4.712388992f, 1.570796371f); // 001BC5DC
- vec32_1.float_0 = 1212416.0f;
- vec32_1.float_4 = 0.0f;
- vec32_1.float_8 = 1802240.0f;
- AddCircle(vec32_1, 30618.0f, 34918.0f, 3.141592741f, 1.570796371f); // 001BC5F0
- // 001BC5F2
- for (int ir6 = 0; ir6 != 2666; ir6++) { // loc_1BC720
- for (uchar r4_uc = 0; r4_uc < tVec_Rect_28.use_count_C; r4_uc++) { // loc_1BC648
- // loc_1BC606
-
- tVec_PLP_0.list_0[ir6].AddRect(tVec_Rect_28.list_0[r4_uc]); // 001BC642
- }
- // 001BC652
- for (uchar r4_uc = 0; r4_uc < tVec_Circle_3C.use_count_C; r4_uc++) { // loc_1BC714
- // loc_1BC6D8
- /// !!!! 注意这里的TPitchLineCircle 析构函数应为空 否则崩溃
-
- tVec_PLP_0.list_0[ir6].AddCircle(tVec_Circle_3C.list_0[r4_uc]); // 001BC70E
- }
- }
-
- // 001BC72A
- for (int r4_i = 0; r4_i != 2666; r4_i++) { // loc_1BC77A
- // loc_1BC738
- if (tVec_PLP_0.list_0[r4_i].pCGfxPitchLinePatch_0 == nullptr) {
- for (int ir6 = r4_i + 1; ir6 != 2666; ir6++) { // loc_1BC770
- // loc_1BC74E
- if (tVec_PLP_0.list_0[ir6].pCGfxPitchLinePatch_0 == nullptr) {
- // 001BC75C
- if (tVec_PLP_0.list_0[r4_i].TestDuplicate(&tVec_PLP_0.list_0[ir6])) {
- // 001BC762
- LOGE("分支5");
- tVec_PLP_0.list_0[ir6].pCGfxPitchLinePatch_0 = &tVec_PLP_0.list_0[r4_i];
- }
- }
- }
- }
- }
-
- // 001BC77E
- CFTTTexLoadOptions opt_C8 = g_tGlobalTexLoadOptions.mTexLoadOptions_4;
- opt_C8.eMinFilter_18 = EFTTTex_MinFilter_6;
- CFTTTexture* r5_pTexture = CFTTTexture::LoadName("data/models/pitch/lineatlas.png", opt_C8, true);
- // 001BC7B0
- if (pTexture_Atlas_58 != nullptr) {
- delete pTexture_Atlas_58;
- }
- // loc_1BC7BE
- pTexture_Atlas_58 = r5_pTexture;
- for (int r4_i = 0; r4_i != 2666; r4_i++) { // loc_1BC7D6
- // loc_1BC7C8
- if (tVec_PLP_0.list_0[r4_i].pCGfxPitchLinePatch_0 != nullptr) {
-
- tVec_PLP_0.list_0[r4_i].pCGfxPitchLinePatch_0->CheckBlank();
- } else {
-
- tVec_PLP_0.list_0[r4_i].CheckBlank();
- }
- }
- // 001BC7DE
- uint r6_count = 0;
- for (int ir2 = 0; ir2 != 2666; ir2++) { // loc_1BC7FC
- // loc_1BC7EA
- if (tVec_PLP_0.list_0[ir2].pCGfxPitchLinePatch_0 == nullptr) {
- // 001BC7F0
- LOGE("分支9");
- r6_count += (tVec_PLP_0.list_0[ir2].bIsBlank_5C ^ 1);
- } // loc_1BC7F8 +
- }
- // 001BC800
- int r5_count = 0;
- for (int ir0 = 0; ir0 != 2666; ir0++) { // loc_1BC81E
- // loc_1BC808
- if (tVec_PLP_0.list_0[ir0].pCGfxPitchLinePatch_0 == nullptr) {
-
- r5_count += tVec_PLP_0.list_0[ir0].bIsBlank_5C;
- } else {
-
- r5_count += tVec_PLP_0.list_0[ir0].pCGfxPitchLinePatch_0->bIsBlank_5C;
- }
- }
- // 001BC822
- if (pTexture_Atlas_58 == nullptr) {
- // 001BC828
- for (int ir4 = 0; ir4 != 2666; ir4++) { // loc_1BC83C
- // loc_1BC82C
- if (tVec_PLP_0.list_0[ir4].pCGfxPitchLinePatch_0 == nullptr) {
-
- tVec_PLP_0.list_0[ir4].Render();
- }
- }
- }
- // loc_1BC840
- for (int ir4 = 0; ir4 != 2666; ir4++) { // loc_1BC850
- // loc_1BC844
- LOGE("分支13");
- tVec_PLP_0.list_0[ir4].CheckBlank();
- }
- // 001BC854
- float fs16 = (float)r6_count;
- float fs0 = ceilf(sqrtf(fs16)); // 001BC87C
- uint r4_ui = (uint)fs0;
- //001BC880
- float fs18 = r4_ui;
- fs16 = ceilf(fs16 / fs18);
- // 001BC89C
- fs0 = ceilf(Log2(fs18 * 72.0f));
- uint r6_i = fs0;
- // 001BC8BA
- float fs2 = ceilf(Log2(fs16 * 72.0f));
- uint r2_ui = 1 << r6_i;
- //sp20=r6_i
- //sp1c=r2_ui
- uint r10_ui = (uint)fs2;
- fs0 = (float)r2_ui;
- float fs4 = 64.0f / fs0; // 001BC90A VDIV.F32 S4, S16, S0
- float fs12 = fs4 *0.0909090936f;
- float fs24 = 4.0f / fs0;
- uint r0_i = 1 << (uint)fs2; // 001BC91A
- //sp18=r0_i
- fs2 = (float)r0_i;
- float fs20 = fs12 * 0.5f;
- float fs26 = 72.0f / fs0;
- float fs6 = 64.0f / fs2;
- float fs8 = fs6 * 0.0909090936f; // 001BC934 VMUL.F32 S8, S6, S8
- float fs28 = 4.0f / fs2;
- float fs22 = fs8 * 0.5f;
- float fs30 = 72.0f / fs2; // 001BC940 VDIV.F32 S30, S30, S2
- fs0 = fs20 + fs20;
- fs2 = fs22 + fs22;
- float fs17 = fs4 - fs0;
- float fs19 = fs6 - fs2;
- //LOGE("001BC954");
- // 001BC954
- int r7_i=0;
- for (uint r6_ui = 0; r6_ui != 2666; r6_ui++) { // loc_1BC9B8
- // loc_1BC956
- if (tVec_PLP_0.list_0[r6_ui].pCGfxPitchLinePatch_0 == nullptr &&
- tVec_PLP_0.list_0[r6_ui].bIsBlank_5C == false) {
- // 001BC968
- LOGE("分支14");
- uint r0_ui = r7_i / r4_ui;
- uint r1_ui = r7_i - (r0_ui * r4_ui);
- fs0 = (float)r0_ui;
- fs4 = fs28;
- fs2 = (float)r1_ui;
- fs4 += fs30 * fs0;
- fs0 = fs24;
- fs0 += fs26 * fs2;
- fs2 = fs22 + fs4;
- fs0 = fs20 + fs0; // 001BC99A VADD.F32 S0, S20, S0
- fs4 = fs19 + fs2;
- fs6 = fs17 + fs0;
- tVec_PLP_0.list_0[r6_ui].fUV_x_4C = fs0;
- tVec_PLP_0.list_0[r6_ui].fUV_y_50 = fs6;
- tVec_PLP_0.list_0[r6_ui].fUV_z_54 = fs2;
- tVec_PLP_0.list_0[r6_ui].fUV_w_58 = fs4;
- r7_i++;
- }
- }
- // 001BC9BE
- if (pTexture_Atlas_58 == nullptr) {
- // 001BC9C8
- if (r6_i > r10_ui) {
- LOGE("分支15");
- r10_ui = r6_i;
- }
- // 001BC9FA
- CFTTRenderToTexture* r1_pRendTex = g_pGraphicsDevice->createRenderToTexture(EFTTTexFormat_2,
- r2_ui,
- r0_i,
- r10_ui + 1,
- 0,
- EFTTRTTZBufMode_1,
- false,
- EFTTTextureType_0,
- 1);
- FTTSPtr<CFTTRenderToTexture> var_124_sp24(r1_pRendTex);
- var_124_sp24.pType_0->BeginRenderToTexture(g_tBlankCanvasClearSettings);
- FTT2D_Begin();
- FTT2D_SetDefaultMatBlend(EFTT2D_Blend_0);
- int r7_i=0;
- // 001BCA1C
- for (uint r6_i = 0; r6_i < 2666; r6_i++) { // loc_1BCABC
- // loc_1BCA38
- if (tVec_PLP_0.list_0[r6_i].pCGfxPitchLinePatch_0 != nullptr || tVec_PLP_0.list_0[r6_i].bIsBlank_5C)
- continue;
- LOGE("分支16");
- // 001BCA48
- FTT2D_SetTexture(tVec_PLP_0.list_0[r6_i].pFTTUPtr_Texture_4.pType_0, 0);
- uint r0_ui = r7_i / r4_ui;
- uint r1_ui = (r7_i++) - (r0_ui * r4_ui);
- uint r2_ui = 1 | (r0_ui << 1);
- float fs0 = (float)r2_ui;
- float fs4 = (float)r0_ui;
- r2_ui = 1 | (r1_ui << 1);
- float fs6 = (float)r1_ui;
- float fs2 = (float)r2_ui;
- fs2 = fs2 * 4.0f;
- fs0 += fs4 * 64.0f; // 001BCAA4 VMLA.F32 S0, S4, S16
- fs2 += fs6 * 64.0f;
- /*
- void FTT2D_DrawTexturedRect(float f1, float f2, float f3, float f4,
- uint argb5,
- float f6, float f7, float f8) {
- */
- FTT2D_DrawTexturedRect(fs2, fs0, 64.0f, 64.0f,
- 0xFFFFFFFF,
- 0.0f,
- -999999.0f,
- -999999.0f);
- }
- // 001BCAC2
- FTT2D_End();
- // 001BCACE
- CFTTTexture* r6_pTexture = var_124_sp24.pType_0->EndRenderToTexture(EFTTRTTCopyMode_2);
- if (pTexture_Atlas_58 != nullptr) {
- LOGE("分支17");
- delete pTexture_Atlas_58;
- }
- // loc_1BCADE
- pTexture_Atlas_58 = r6_pTexture;
- r6_pTexture->SetMinFilter(EFTTTex_MinFilter_6);
- }
- // loc_1BCAF2
- for (int r4_i = 0; r4_i < 2666; r4_i++) { // loc_1BCB02
- // loc_1BCAF6
- LOGE("分支18");
- tVec_PLP_0.list_0[r4_i].Cleanup();
- }
- // 001BCB06
- tVec_Rect_28.Clear(true);
- // 001BCB10
- tVec_Circle_3C.Clear(true);
- // 001BCB1A
- field_50 = r5_count;
- field_54 = (uint)(2666.0f - (float)r5_count);
- tVec_pPLP_14.Reserve(r5_count);
- // 001BCB42
- CGfxPitchLinePatch* var_124;
- CGfxPitchLinePatch* r1_patch;
- for (int r4_i = 0; r4_i != 2666; r4_i++) { // loc_1BCB68
- // loc_1BCB48
-
- r1_patch = tVec_PLP_0.list_0[r4_i].pCGfxPitchLinePatch_0;
- if (r1_patch == nullptr) {
-
- r1_patch = &tVec_PLP_0.list_0[r4_i];
- }
- if (r1_patch->bIsBlank_5C) {
- // 001BCB5C
-
- var_124 = &tVec_PLP_0.list_0[r4_i];
- tVec_pPLP_14.Insert(var_124);
- }
- }
- }
- //-------------------------------------------------------------------------------------------------
- //001BCB94 //^_^
- void CGfxPitchLines::Shutdown() {
- }
- //-------------------------------------------------------------------------------------------------
- //001BCBB4 //^_^
- CGfxPitchLines* CGfxPitchLines::Get() {
- return CGfxPitchLines::ms_pInstance;
- }
- //-------------------------------------------------------------------------------------------------
- //001BCEA4
- void CGfxPitchLines::AddRect(CFTTVector32 a1, CFTTVector32 a2, float a3, uchar a4, float a5) {
- LOGE("CGfxPitchLines::AddRect%p%x%x%x %x%x%x %x%x%x",this,a1.float_0,a1.float_4,a1.float_8,
- a2.float_0,a2.float_4,a2.float_8,a3,a4,a5);
- }
- //-------------------------------------------------------------------------------------------------
- //001BD0D8
- void CGfxPitchLines::AddCircle(CFTTVector32 a1, float a2, float a3, float a4, float a5) {
- LOGE("CGfxPitchLines::AddCircle%p%x%x%x %x%x%x%x",this,a1.float_0,a1.float_4,a1.float_8,
- a2,a3,a4,a5);
- }
- //-------------------------------------------------------------------------------------------------
- //001BD5E6 //^_^
- int CGfxPitchLines::GetMaterial() {
- return dMatId_Circle2dShader_5C;
- }
- //-------------------------------------------------------------------------------------------------
- //001BD5EA //^_^
- CFTTTexture* CGfxPitchLines::GetAtlas() {
- return pTexture_Atlas_58;
- }
- //-------------------------------------------------------------------------------------------------
- //001BD5F0 //^_^
- CGfxPitchLinePatch* CGfxPitchLines::GetPatch(uint u1, uint u2) {
- return 0;
- }
- //-------------------------------------------------------------------------------------------------
- //001BD620 //^_^
- CGfxPitchLinePatch* CGfxPitchLines::GetBlank(uint dIndex) {
- return 0;
- }
- //-------------------------------------------------------------------------------------------------
|