From ba3c9aa3241fb4f649c834161ac1bd452b7506c8 Mon Sep 17 00:00:00 2001 From: D-AIRY <admin@ds-servers.com> Date: Wed, 22 Apr 2020 10:33:36 +0300 Subject: [PATCH] Fixed wrong usage --- source/anim/DynamicModelProvider.cpp | 4 ++-- source/core/AsyncTaskRunner.cpp | 9 --------- source/core/AsyncTaskRunner.h | 3 --- source/core/Core.cpp | 13 +++++++++++-- source/core/Core.h | 7 +++++-- source/game/GameData.cpp | 2 +- source/xEngine/Engine.cpp | 1 - source/xcommon/IAsyncTaskRunner.h | 3 --- source/xcommon/IXCore.h | 7 +++++-- 9 files changed, 24 insertions(+), 25 deletions(-) diff --git a/source/anim/DynamicModelProvider.cpp b/source/anim/DynamicModelProvider.cpp index 7e85e0776..e83f4bf87 100644 --- a/source/anim/DynamicModelProvider.cpp +++ b/source/anim/DynamicModelProvider.cpp @@ -353,8 +353,8 @@ void CDynamicModelProvider::computeVisibility(const IFrustum *pFrustum, CRendera pVisibility->resetItemTransparentDynamic(); #if 1 CVisUpdate cycle(pFrustum, pVisibility, pReference, m_apModels); - ID id = m_pCore->getAsyncTaskRunner()->forLoop(0, m_apModels.size(), &cycle, 500); - m_pCore->getAsyncTaskRunner()->waitForLoop(id); + ID id = m_pCore->forLoop(0, m_apModels.size(), &cycle, 500); + m_pCore->waitForLoop(id); #else CDynamicModel *pMdl; for(UINT i = 0, l = m_apModels.size(); i < l; ++i) diff --git a/source/core/AsyncTaskRunner.cpp b/source/core/AsyncTaskRunner.cpp index 8c407ce60..56d116c44 100644 --- a/source/core/AsyncTaskRunner.cpp +++ b/source/core/AsyncTaskRunner.cpp @@ -154,12 +154,3 @@ void XMETHODCALLTYPE CAsyncTaskRunner::runCallbacks() g_pTaskManager->addTask(m_vpQueue[0]); } } - -ID XMETHODCALLTYPE CAsyncTaskRunner::forLoop(int iStart, int iEnd, const IParallelForBody *pBody, int iMaxChunkSize) -{ - return(g_pTaskManager->forLoop(iStart, iEnd, pBody, iMaxChunkSize)); -} -void XMETHODCALLTYPE CAsyncTaskRunner::waitForLoop(ID id) -{ - g_pTaskManager->waitFor(id); -} diff --git a/source/core/AsyncTaskRunner.h b/source/core/AsyncTaskRunner.h index 9d2a2ea29..8b5275246 100644 --- a/source/core/AsyncTaskRunner.h +++ b/source/core/AsyncTaskRunner.h @@ -15,9 +15,6 @@ public: void XMETHODCALLTYPE runTask(IAsyncTask *pTask) override; void XMETHODCALLTYPE runCallbacks() override; - ID XMETHODCALLTYPE forLoop(int iStart, int iEnd, const IParallelForBody *pBody, int iMaxChunkSize = 0) override; - void XMETHODCALLTYPE waitForLoop(ID id) override; - protected: IXCore *m_pCore; diff --git a/source/core/Core.cpp b/source/core/Core.cpp index 873c88080..00b3ed8f9 100644 --- a/source/core/Core.cpp +++ b/source/core/Core.cpp @@ -205,11 +205,11 @@ IXResourceManager* XMETHODCALLTYPE CCore::getResourceManager() return(m_pResourceManager); } -IAsyncFileReader* XMETHODCALLTYPE CCore::getAsyncFileReader() +IAsyncFileReader* XMETHODCALLTYPE CCore::newAsyncFileReader() { return(new CAsyncFileReader(this)); } -IAsyncTaskRunner* XMETHODCALLTYPE CCore::getAsyncTaskRunner() +IAsyncTaskRunner* XMETHODCALLTYPE CCore::newAsyncTaskRunner() { return(new CAsyncTaskRunner(this)); } @@ -450,6 +450,15 @@ const bool* XMETHODCALLTYPE CCore::getPCVarBool(const char *szName) return(GET_PCVAR_BOOL(szName)); } +ID XMETHODCALLTYPE CCore::forLoop(int iStart, int iEnd, const IParallelForBody *pBody, int iMaxChunkSize) +{ + return(g_pTaskManager->forLoop(iStart, iEnd, pBody, iMaxChunkSize)); +} +void XMETHODCALLTYPE CCore::waitForLoop(ID id) +{ + g_pTaskManager->waitFor(id); +} + //########################################################################## C SXCORE_API IXCore* XCoreInit(const char *szName) diff --git a/source/core/Core.h b/source/core/Core.h index c2e44f4db..3f00fe8f0 100644 --- a/source/core/Core.h +++ b/source/core/Core.h @@ -23,8 +23,8 @@ public: IFileSystem* XMETHODCALLTYPE getFileSystem() override; IXResourceManager* XMETHODCALLTYPE getResourceManager() override; - IAsyncFileReader* XMETHODCALLTYPE getAsyncFileReader() override; - IAsyncTaskRunner* XMETHODCALLTYPE getAsyncTaskRunner() override; + IAsyncFileReader* XMETHODCALLTYPE newAsyncFileReader() override; + IAsyncTaskRunner* XMETHODCALLTYPE newAsyncTaskRunner() override; void XMETHODCALLTYPE getRenderPipeline(IXRenderPipeline **ppRenderPipeline) override; void XMETHODCALLTYPE setRenderPipeline(IXRenderPipeline *pRenderPipeline) override; @@ -50,6 +50,9 @@ public: const float* XMETHODCALLTYPE getPCVarFloat(const char *szName) override; const bool* XMETHODCALLTYPE getPCVarBool(const char *szName) override; + ID XMETHODCALLTYPE forLoop(int iStart, int iEnd, const IParallelForBody *pBody, int iMaxChunkSize = 0) override; + void XMETHODCALLTYPE waitForLoop(ID id) override; + protected: IBaseEventChannel* getEventChannelInternal(const XGUID &guid) override; diff --git a/source/game/GameData.cpp b/source/game/GameData.cpp index 54a1292b7..ecd362f7a 100644 --- a/source/game/GameData.cpp +++ b/source/game/GameData.cpp @@ -449,7 +449,7 @@ GameData::GameData(HWND hWnd, bool isGame): pSun->setDirection(SMQuaternion(LIGHTS_DIR_BASE, float3(1.0f, -1.0f, 1.0f))); } - g_pAsyncTaskRunner = Core_GetIXCore()->getAsyncTaskRunner(); + g_pAsyncTaskRunner = Core_GetIXCore()->newAsyncTaskRunner(); Core_0RegisterConcmd("+forward", ccmd_forward_on); Core_0RegisterConcmd("-forward", ccmd_forward_off); diff --git a/source/xEngine/Engine.cpp b/source/xEngine/Engine.cpp index 8ac1a687d..1277e7c9e 100644 --- a/source/xEngine/Engine.cpp +++ b/source/xEngine/Engine.cpp @@ -239,7 +239,6 @@ bool CEngine::runFrame() SSInput_Update(); - // draw frame { static IGXDevice *pRenderContext = SGCore_GetDXDevice(); diff --git a/source/xcommon/IAsyncTaskRunner.h b/source/xcommon/IAsyncTaskRunner.h index b98b32220..54718fb27 100644 --- a/source/xcommon/IAsyncTaskRunner.h +++ b/source/xcommon/IAsyncTaskRunner.h @@ -34,9 +34,6 @@ class IAsyncTaskRunner: public IXUnknown public: virtual void XMETHODCALLTYPE runTask(IAsyncTask *pTask) = 0; virtual void XMETHODCALLTYPE runCallbacks() = 0; - - virtual ID XMETHODCALLTYPE forLoop(int iStart, int iEnd, const IParallelForBody *pBody, int iMaxChunkSize = 0) = 0; - virtual void XMETHODCALLTYPE waitForLoop(ID id) = 0; }; #endif diff --git a/source/xcommon/IXCore.h b/source/xcommon/IXCore.h index 113aac443..935df0d18 100644 --- a/source/xcommon/IXCore.h +++ b/source/xcommon/IXCore.h @@ -22,8 +22,8 @@ public: virtual IFileSystem* XMETHODCALLTYPE getFileSystem() = 0; virtual IXResourceManager* XMETHODCALLTYPE getResourceManager() = 0; - virtual IAsyncFileReader* XMETHODCALLTYPE getAsyncFileReader() = 0; - virtual IAsyncTaskRunner* XMETHODCALLTYPE getAsyncTaskRunner() = 0; + virtual IAsyncFileReader* XMETHODCALLTYPE newAsyncFileReader() = 0; + virtual IAsyncTaskRunner* XMETHODCALLTYPE newAsyncTaskRunner() = 0; virtual void XMETHODCALLTYPE getRenderPipeline(IXRenderPipeline **ppRenderPipeline) = 0; virtual void XMETHODCALLTYPE setRenderPipeline(IXRenderPipeline *pRenderPipeline) = 0; @@ -47,6 +47,9 @@ public: virtual const float* XMETHODCALLTYPE getPCVarFloat(const char *szName) = 0; virtual const bool* XMETHODCALLTYPE getPCVarBool(const char *szName) = 0; + virtual ID XMETHODCALLTYPE forLoop(int iStart, int iEnd, const IParallelForBody *pBody, int iMaxChunkSize = 0) = 0; + virtual void XMETHODCALLTYPE waitForLoop(ID id) = 0; + template<typename T> IEventChannel<T> *getEventChannel(const XGUID &guid) { return((IEventChannel<T>*)getEventChannelInternal(guid)); -- GitLab