summaryrefslogtreecommitdiff
path: root/src/KingSystem/Resource/resResourceMgrTask.cpp
diff options
context:
space:
mode:
authorLéo Lam <leo@leolam.fr>2020-10-10 13:30:21 +0200
committerLéo Lam <leo@leolam.fr>2020-10-10 13:50:55 +0200
commit00b9296aa9f9598cc483ba4598d9b84e4b732208 (patch)
tree1d9e09b4564f3d2a120bc52eeaec717f40485381 /src/KingSystem/Resource/resResourceMgrTask.cpp
parent78f64ca78c285ed536671d46a337e9913a34988d (diff)
ksys/res: Implement ResourceMgrTask::calc_ and fix MemoryTaskRequest
Diffstat (limited to 'src/KingSystem/Resource/resResourceMgrTask.cpp')
-rw-r--r--src/KingSystem/Resource/resResourceMgrTask.cpp23
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