Payback 0.0.1
CK Graduation Project
로딩중...
검색중...
일치하는것 없음
FDataAssetJobManager 구조체 참조

#include <DataAssetJobManager.h>

FDataAssetJobManager에 대한 협력 다이어그램:
Collaboration graph

Public 멤버 함수

 FDataAssetJobManager ()
 
void CreateAndAddNewJob (const ::FString &InJobName, float InJobWeight, const TFunction< void(const FDataAssetLoadJob &, TSharedPtr< FStreamableHandle > &)> &InJobFunc)
 
void RunAllJobs (const DataAssetLoadJobProgress &Progress=nullptr)
 
void RunAllJobs (const DataAssetLoadJobProgress &Progress, const TFunction< void(float)> &Completed)
 

Public 속성

TArray< FDataAssetLoadJobLoadJobs
 

생성자 & 소멸자 문서화

◆ FDataAssetJobManager()

FDataAssetJobManager::FDataAssetJobManager ( )
8{ }

멤버 함수 문서화

◆ CreateAndAddNewJob()

void FDataAssetJobManager::CreateAndAddNewJob ( const ::FString &  InJobName,
float  InJobWeight,
const TFunction< void(const FDataAssetLoadJob &, TSharedPtr< FStreamableHandle > &)> &  InJobFunc 
)
18{
19 LoadJobs.Add(FDataAssetLoadJob(InJobName, InJobWeight, InJobFunc));
20}
TArray< FDataAssetLoadJob > LoadJobs
Definition DataAssetJobManager.h:22
Definition DataAssetLoadJob.h:8
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ RunAllJobs() [1/2]

void FDataAssetJobManager::RunAllJobs ( const DataAssetLoadJobProgress &  Progress,
const TFunction< void(float)> &  Completed 
)
24{
25 SCOPED_BOOT_TIMING("FDataAssetJobManager::RunAllJobs");
26 const double AllStartupJobsStartTime = FPlatformTime::Seconds();
27
28 if (LoadJobs.IsEmpty())
29 {
30 CALL_DELEGATE_IF_BOUND(Progress, 1.0f);
31 LoadJobs.Empty();
32 CALL_FUNCTION_IF_BOUND(Completed, FPlatformTime::Seconds() - AllStartupJobsStartTime);
33 return;
34 }
35
36 float TotalJobValue = 0.0f;
37
38 for (const FDataAssetLoadJob& StartupJob : LoadJobs)
39 {
40 TotalJobValue += StartupJob.JobWeight;
41 }
42
43 float AccumulatedJobValue = 0.0f;
44
45 for (FDataAssetLoadJob& StartupJob : LoadJobs)
46 {
47 const float JobValue = StartupJob.JobWeight;
48
49 StartupJob.SubstepProgressDelegate.BindLambda([this, AccumulatedJobValue, JobValue, TotalJobValue, &Progress](const float NewProcess)
50 {
51 const float SubstepAdjustment = FMath::Clamp(NewProcess, 0.0f, 1.0f) * JobValue;
52 CALL_DELEGATE_IF_BOUND(Progress, (AccumulatedJobValue + SubstepAdjustment) / TotalJobValue);
53 });
54
55 StartupJob.DoJob();
56 StartupJob.SubstepProgressDelegate.Unbind();
57
58 AccumulatedJobValue += JobValue;
59 CALL_DELEGATE_IF_BOUND(Progress, AccumulatedJobValue / TotalJobValue);
60 }
61
62 LoadJobs.Empty();
63 CALL_FUNCTION_IF_BOUND(Completed, FPlatformTime::Seconds() - AllStartupJobsStartTime);
64}
#define CALL_DELEGATE_IF_BOUND(Delegate,...)
Definition DataAssetJobManager.cpp:4
#define CALL_FUNCTION_IF_BOUND(Delegate,...)
Definition DataAssetJobManager.cpp:5

◆ RunAllJobs() [2/2]

void FDataAssetJobManager::RunAllJobs ( const DataAssetLoadJobProgress &  Progress = nullptr)
12{
13 this->RunAllJobs(Progress, nullptr);
14}
void RunAllJobs(const DataAssetLoadJobProgress &Progress=nullptr)
Definition DataAssetJobManager.cpp:11
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

멤버 데이터 문서화

◆ LoadJobs

TArray<FDataAssetLoadJob> FDataAssetJobManager::LoadJobs

이 구조체에 대한 문서화 페이지는 다음의 파일들로부터 생성되었습니다.: