From 27124c65beb85797e4b42cfa5ebc510692c667cc Mon Sep 17 00:00:00 2001 From: MistEO Date: Mon, 28 Aug 2023 22:59:57 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=B8=8D=E5=86=8D=E5=AF=B9=E8=B5=84?= =?UTF-8?q?=E6=BA=90=E8=BF=9B=E8=A1=8C=E5=B9=B6=E8=A1=8C=E5=8A=A0=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaCore/Config/ResourceLoader.cpp | 83 ++++++++++++--------------- 1 file changed, 37 insertions(+), 46 deletions(-) diff --git a/src/MaaCore/Config/ResourceLoader.cpp b/src/MaaCore/Config/ResourceLoader.cpp index c58bfd318c..1a68ed71c1 100644 --- a/src/MaaCore/Config/ResourceLoader.cpp +++ b/src/MaaCore/Config/ResourceLoader.cpp @@ -129,16 +129,17 @@ bool asst::ResourceLoader::load(const std::filesystem::path& path) LogTraceFunction; using namespace asst::utils::path_literals; -#ifdef ASST_DEBUG -#define FutureAppendBegins -#define FutureAppendEnds -#else - std::vector> futures; -#define FutureAppendBegins futures.emplace_back(std::async(std::launch::async | std::launch::deferred, [&]() -> bool { -#define FutureAppendEnds \ - return true; \ - })) -#endif + // #ifdef ASST_DEBUG + // #define FutureAppendBegins + // #define FutureAppendEnds + // #else + // std::vector> futures; + // #define FutureAppendBegins futures.emplace_back(std::async(std::launch::async | std::launch::deferred, [&]() -> + // bool { + // #def ine FutureAppendEnds \ +// return true; \ +// })) + // #endif // 不太重要又加载的慢的资源,但不怎么占内存的,实时异步加载 // DEBUG 模式下这里还是检查返回值的,方便排查问题 @@ -165,54 +166,44 @@ bool asst::ResourceLoader::load(const std::filesystem::path& path) AsyncLoadConfig(RoguelikeStageEncounterConfig, "roguelike"_p / "Sami"_p / "encounter_for_deposit.json"_p); // 太占内存的资源,都是惰性加载 - FutureAppendBegins - { - // 战斗中技能识别,二分类模型 - LoadResourceAndCheckRet(OnnxSessions, "onnx"_p / "skill_ready_cls.onnx"_p); - // 战斗中部署方向识别,四分类模型 - LoadResourceAndCheckRet(OnnxSessions, "onnx"_p / "deploy_direction_cls.onnx"_p); - // 战斗中干员(血条)检测,yolov8 检测模型 - LoadResourceAndCheckRet(OnnxSessions, "onnx"_p / "operators_det.onnx"_p); + // 战斗中技能识别,二分类模型 + LoadResourceAndCheckRet(OnnxSessions, "onnx"_p / "skill_ready_cls.onnx"_p); + // 战斗中部署方向识别,四分类模型 + LoadResourceAndCheckRet(OnnxSessions, "onnx"_p / "deploy_direction_cls.onnx"_p); + // 战斗中干员(血条)检测,yolov8 检测模型 + LoadResourceAndCheckRet(OnnxSessions, "onnx"_p / "operators_det.onnx"_p); - /* ocr */ - LoadResourceAndCheckRet(WordOcr, "PaddleOCR"_p); - LoadResourceAndCheckRet(CharOcr, "PaddleCharOCR"_p); - } - FutureAppendEnds; + /* ocr */ + LoadResourceAndCheckRet(WordOcr, "PaddleOCR"_p); + LoadResourceAndCheckRet(CharOcr, "PaddleCharOCR"_p); // 重要的资源,实时加载 - FutureAppendBegins - { - /* load resource with json files*/ - LoadResourceAndCheckRet(GeneralConfig, "config.json"_p); - LoadResourceAndCheckRet(RecruitConfig, "recruitment.json"_p); - LoadResourceAndCheckRet(BattleDataConfig, "battle_data.json"_p); - LoadResourceAndCheckRet(OcrConfig, "ocr_config.json"_p); + /* load resource with json files*/ + LoadResourceAndCheckRet(GeneralConfig, "config.json"_p); + LoadResourceAndCheckRet(RecruitConfig, "recruitment.json"_p); + LoadResourceAndCheckRet(BattleDataConfig, "battle_data.json"_p); + LoadResourceAndCheckRet(OcrConfig, "ocr_config.json"_p); - /* load cache */ - // 这个任务依赖 BattleDataConfig - LoadCacheWithoutRet(AvatarCacheManager, "avatars"_p); - } - FutureAppendEnds; + /* load cache */ + // 这个任务依赖 BattleDataConfig + LoadCacheWithoutRet(AvatarCacheManager, "avatars"_p); // 重要的资源,实时加载(图片还是惰性的) - FutureAppendBegins - { - LoadResourceWithTemplAndCheckRet(TaskData, "tasks.json"_p, "template"_p); - LoadResourceWithTemplAndCheckRet(InfrastConfig, "infrast.json"_p, "template"_p / "infrast"_p); - LoadResourceWithTemplAndCheckRet(ItemConfig, "item_index.json"_p, "template"_p / "items"_p); - } - FutureAppendEnds; + LoadResourceWithTemplAndCheckRet(TaskData, "tasks.json"_p, "template"_p); + LoadResourceWithTemplAndCheckRet(InfrastConfig, "infrast.json"_p, "template"_p / "infrast"_p); + LoadResourceWithTemplAndCheckRet(ItemConfig, "item_index.json"_p, "template"_p / "items"_p); #undef LoadTemplByConfigAndCheckRet #undef LoadResourceAndCheckRet #undef LoadCacheWithoutRet -#ifdef ASST_DEBUG + // #ifdef ASST_DEBUG + // m_loaded = true; + // #else + // m_loaded = ranges::all_of(futures, [](auto& f) { return f.get(); }); + // #endif + m_loaded = true; -#else - m_loaded = ranges::all_of(futures, [](auto& f) { return f.get(); }); -#endif Log.info(__FUNCTION__, "ret", m_loaded); return m_loaded;