UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
InterchangeTaskPipeline.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
9#include "Stats/Stats.h"
11
12namespace UE
13{
14 namespace Interchange
15 {
16
18 {
19 private:
22 public:
28
29 virtual EInterchangeTaskThread GetTaskThread() const override
30 {
31 TSharedPtr<FImportAsyncHelper, ESPMode::ThreadSafe> AsyncHelper = WeakAsyncHelper.Pin();
32 if (AsyncHelper.IsValid() && AsyncHelper->bRunSynchronous)
33 {
35 }
36
37 if (!ensure(PipelineBase.IsValid()))
38 {
40 }
41
42 //Scripted (python) cannot run outside of the game thread, it will lock forever if we do this
43 if (PipelineBase.Get()->IsScripted())
44 {
46 }
47
49 }
50
51 virtual void Execute() override;
52 };
53
54 //We want to be sure any asset compilation is finish before calling subsequents tasks
56 {
57 private:
58 int32 SourceIndex;
60
61 public:
67
68 virtual EInterchangeTaskThread GetTaskThread() const override
69 {
70 //This task is re-enqueue and don't stall the game thread
72 }
73
74 virtual void Execute() override;
75 };
76
78 {
79 private:
80 int32 SourceIndex;
82
83 public:
89
90 virtual EInterchangeTaskThread GetTaskThread() const override
91 {
93 }
94
95 virtual void Execute() override;
96 };
97 } //ns Interchange
98}//ns UE
#define ensure( InExpression)
Definition AssertionMacros.h:464
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition SharedPointer.h:692
UE_FORCEINLINE_HINT const bool IsValid() const
Definition SharedPointer.h:1085
Definition SharedPointer.h:1295
UE_FORCEINLINE_HINT TSharedPtr< ObjectType, Mode > Pin() const &
Definition SharedPointer.h:1512
Definition InterchangeTaskSystem.h:35
Definition InterchangeTaskPipeline.h:18
FTaskPipeline(TWeakObjectPtr< UInterchangePipelineBase > InPipelineBase, TWeakPtr< FImportAsyncHelper, ESPMode::ThreadSafe > InAsyncHelper)
Definition InterchangeTaskPipeline.h:23
virtual EInterchangeTaskThread GetTaskThread() const override
Definition InterchangeTaskPipeline.h:29
virtual void Execute() override
Definition InterchangeTaskPipeline.cpp:22
Definition InterchangeTaskPipeline.h:78
virtual EInterchangeTaskThread GetTaskThread() const override
Definition InterchangeTaskPipeline.h:90
FTaskPostImport_GameThread(int32 InSourceIndex, TWeakPtr< FImportAsyncHelper, ESPMode::ThreadSafe > InAsyncHelper)
Definition InterchangeTaskPipeline.h:84
virtual void Execute() override
Definition InterchangeTaskPipeline.cpp:125
Definition InterchangeTaskPipeline.h:56
virtual void Execute() override
Definition InterchangeTaskPipeline.cpp:60
FTaskWaitAssetCompilation_GameThread(int32 InSourceIndex, TWeakPtr< FImportAsyncHelper, ESPMode::ThreadSafe > InAsyncHelper)
Definition InterchangeTaskPipeline.h:62
virtual EInterchangeTaskThread GetTaskThread() const override
Definition InterchangeTaskPipeline.h:68
EInterchangeTaskThread
Definition InterchangeTaskSystem.h:29
Definition AdvancedWidgetsModule.cpp:13
Definition WeakObjectPtrTemplates.h:25
FORCEINLINE T * Get(bool bEvenIfPendingKill) const
Definition WeakObjectPtrTemplates.h:132
FORCEINLINE bool IsValid(bool bEvenIfPendingKill, bool bThreadsafeTest=false) const
Definition WeakObjectPtrTemplates.h:232