diff options
| author | Léo Lam <leo@leolam.fr> | 2020-10-10 13:30:21 +0200 |
|---|---|---|
| committer | Léo Lam <leo@leolam.fr> | 2020-10-10 13:50:55 +0200 |
| commit | 00b9296aa9f9598cc483ba4598d9b84e4b732208 (patch) | |
| tree | 1d9e09b4564f3d2a120bc52eeaec717f40485381 /src/KingSystem/Resource/resResourceMgrTask.cpp | |
| parent | 78f64ca78c285ed536671d46a337e9913a34988d (diff) | |
ksys/res: Implement ResourceMgrTask::calc_ and fix MemoryTaskRequest
Diffstat (limited to 'src/KingSystem/Resource/resResourceMgrTask.cpp')
| -rw-r--r-- | src/KingSystem/Resource/resResourceMgrTask.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/KingSystem/Resource/resResourceMgrTask.cpp b/src/KingSystem/Resource/resResourceMgrTask.cpp index 46bf3320..2a7df32d 100644 --- a/src/KingSystem/Resource/resResourceMgrTask.cpp +++ b/src/KingSystem/Resource/resResourceMgrTask.cpp @@ -4,6 +4,7 @@ #include <thread/seadThreadUtil.h> #include "KingSystem/Resource/resCompactedHeap.h" #include "KingSystem/Resource/resEntryFactory.h" +#include "KingSystem/Resource/resMemoryTask.h" #include "KingSystem/Resource/resSystem.h" #include "KingSystem/Resource/resTextureHandleList.h" #include "KingSystem/Resource/resTextureHandleMgr.h" @@ -98,4 +99,26 @@ util::TaskThread* ResourceMgrTask::makeResourceLoadingThread(sead::Heap* heap, sead::MessageQueue::BlockType::Blocking, 0x7fffffff, 0xa000, 32); } +bool ResourceMgrTask::calc_(void*) { + if (mCacheControlFlags.testAndClear(CacheControlFlag::ClearAllCachesRequested)) { + MemoryTaskRequest req; + req.mLaneId = u8(LaneId::_9); + req.mHasHandle = true; + req.mSynchronous = true; + req.mThread = mResourceMemoryThread; + req.mDelegate = &mClearAllCachesFn; + req.mName = "ClearAllCaches"; + req.mData_8 = false; + req.mData_c = -1; + + util::TaskMgrRequest request; + request.request = &req; + mResourceMemoryTaskMgr->submitRequest(request); + mTexHandleMgr->clearAllCache(); + stubbedLogFunction(); + } + clearUnits_(); + return true; +} + } // namespace ksys::res |
