Browse Source

Resource loading tested and works using the task scheduler

Marko Pintera 11 năm trước cách đây
mục cha
commit
add0d423a1

+ 1 - 1
CamelotCore/Source/CmResources.cpp

@@ -153,7 +153,7 @@ namespace BansheeEngine
 			String fileName = toString(Path::getFilename(filePath));
 			String fileName = toString(Path::getFilename(filePath));
 			String taskName = "Resource load: " + fileName;
 			String taskName = "Resource load: " + fileName;
 
 
-			TaskPtr task = Task::create(taskName, std::bind(&Resources::loadCallback, this, filePath, std::ref(newResource)));
+			TaskPtr task = Task::create(taskName, std::bind(&Resources::loadCallback, this, filePath, newResource));
 			TaskScheduler::instance().addTask(task);
 			TaskScheduler::instance().addTask(task);
 		}
 		}
 
 

+ 2 - 2
CamelotUtility/Source/BsTaskScheduler.cpp

@@ -96,7 +96,7 @@ namespace BansheeEngine
 			if(mShutdown)
 			if(mShutdown)
 				break;
 				break;
 
 
-			for(UINT32 i = 0; i < mTaskQueue.size(), mNumActiveTasks < mMaxActiveTasks; i++)
+			for(UINT32 i = 0; (i < mTaskQueue.size()) && (mNumActiveTasks < mMaxActiveTasks); i++)
 			{
 			{
 				TaskPtr curTask = *mTaskQueue.begin();
 				TaskPtr curTask = *mTaskQueue.begin();
 				mTaskQueue.erase(mTaskQueue.begin());
 				mTaskQueue.erase(mTaskQueue.begin());
@@ -110,7 +110,7 @@ namespace BansheeEngine
 				curTask->mState.store(1);
 				curTask->mState.store(1);
 				mNumActiveTasks++;
 				mNumActiveTasks++;
 
 
-				ThreadPool::instance().run(curTask->mName, std::bind(&TaskScheduler::runTask, this, std::cref(curTask)));
+				ThreadPool::instance().run(curTask->mName, std::bind(&TaskScheduler::runTask, this, curTask));
 			}
 			}
 		}
 		}
 	}
 	}