21#include "MovieSceneMaterialSystem.generated.h"
50struct TPreAnimatedMaterialTraits : FBoundObjectPreAnimatedStateTraits
52 using KeyType =
typename AccessorType::KeyType;
88class TMovieSceneMaterialSystem
186 FEntityComponentFilter MaterialSwitcherFilter;
187 FEntityComponentFilter MaterialParameterFilter;
189 FCachedEntityFilterResult_Allocations ReinitializeBoundMaterials;
193struct TApplyMaterialSwitchers
221struct TInitializeBoundMaterials
276struct TReinitializeBoundMaterials
285 void ForEachAllocation(
int32 Num,
const FMovieSceneEntityID* EntityIDs,
const RequiredComponents*... Inputs, FObjectComponent* Objects)
295 if (TInitializeBoundMaterials<AccessorType, RequiredComponents...>::InitializeBoundMaterial(Inputs...,
OutDynamicMaterial))
297 ReboundMaterials.
Add(EntityID);
304 for (FMovieSceneEntityID EntityID : ReboundMaterials)
306 Linker->EntityManager.AddComponent(EntityID, TracksComponents->Tags.BoundMaterialChanged);
312struct TAddBoundMaterialMutationImpl;
327 virtual void InitializeAllocation(FEntityAllocation* Allocation,
const FComponentMask& AllocationType)
const
335 const int32 Num = Allocation->Num();
343 FBuiltInComponentTypes* BuiltInComponents;
344 FMovieSceneTracksComponentTypes* TracksComponents;
362 MaterialSwitcherFilter.Reset();
367 MaterialParameterFilter.Reset();
372 Linker->Events.PostSpawnEvent.AddRaw(
this, &TMovieSceneMaterialSystem<AccessorType, RequiredComponents...>::OnPostSpawn,
InRequiredComponents...);
375 ReinitializeBoundMaterials.Filter.None({ BuiltInComponents->
Tags.
NeedsUnlink });
382 if (
ensure(GroupingSystem))
388 Linker->Events.PostSpawnEvent.RemoveAll(
this);
409 const int32 Num = Allocation->Num();
469 if (
Linker->EntityManager.Contains(MaterialSwitcherFilter))
472 Params.AdditionalFilter = MaterialSwitcherFilter;
478 if (
Linker->EntityManager.Contains(MaterialParameterFilter))
481 Params.AdditionalFilter = MaterialParameterFilter;
#define ensure( InExpression)
Definition AssertionMacros.h:464
#define DECLARE_CYCLE_STAT_EXTERN(CounterName, StatId, GroupId, API)
Definition Stats.h:679
#define SCOPE_CYCLE_COUNTER(Stat)
Definition Stats.h:650
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
typename UE4IntegerSequence_Private::TMakeIntegerSequenceImpl< T, N >::Type TMakeIntegerSequence
Definition IntegerSequence.h:31
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define USTRUCT(...)
Definition ObjectMacros.h:746
constexpr TTuple< std::decay_t< Types >... > MakeTuple(Types &&... Args)
Definition Tuple.h:794
UE_NODEBUG UE_FORCEINLINE_HINT SizeType Add(ElementType &&Item)
Definition Array.h:2696
Definition UnrealString.h.inl:34
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition MaterialInstanceDynamic.h:15
Definition MaterialInterface.h:296
virtual class UMaterial * GetMaterial() PURE_VIRTUAL(UMaterialInterface
Definition MaterialInterface.h:482
Definition MovieSceneEntityGroupingSystem.h:319
UE_API void RemoveGrouping(FEntityGroupingPolicyKey InPolicyKey)
Definition MovieSceneEntityGroupingSystem.cpp:366
FEntityGroupingPolicyKey AddGrouping(GroupingPolicy &&InPolicy, TComponentTypeID< ComponentTypes >... InComponents)
Definition MovieSceneEntityGroupingSystem.h:360
Definition MovieSceneEntitySystemLinker.h:113
@ EntityManager
Definition MovieSceneEvaluationCustomVersion.h:21
FUniformParams Params
Definition MeshPaintVirtualTexture.cpp:162
int
Definition TestServer.py:515
Definition ConstraintsManager.h:14
ESystemPhase
Definition MovieSceneEntitySystemTypes.h:45
U16 Index
Definition radfft.cpp:71
Definition MaterialParameters.h:33
Definition MovieSceneMaterialSystem.h:28
MOVIESCENETRACKS_API void SetMaterial(UMaterialInterface *InMaterial)
Definition MovieSceneMaterialSystem.cpp:38
Definition MovieScenePreAnimatedStateSystem.h:40
TCallTraitsParamTypeHelper< T, PassByValue >::ParamType ParamType
Definition UnrealTypeTraits.h:275
Definition IntegerSequence.h:9
Definition ObjectPtr.h:488
Definition SoftObjectPtr.h:174
Definition BuiltInComponentTypes.h:578
struct UE::MovieScene::FBuiltInComponentTypes::@1489 Tags
FComponentTypeID NeedsLink
Definition BuiltInComponentTypes.h:789
FComponentTypeID ImportedEntity
Definition BuiltInComponentTypes.h:797
FComponentTypeID Ignored
Definition BuiltInComponentTypes.h:810
static MOVIESCENE_API FBuiltInComponentTypes * Get()
Definition BuiltInComponentTypes.cpp:667
FComponentTypeID NeedsUnlink
Definition BuiltInComponentTypes.h:790
TComponentTypeID< FObjectComponent > ObjectResult
Definition BuiltInComponentTypes.h:713
Definition MovieSceneEntityIDs.h:40
bool Contains(FComponentTypeID InComponentType) const
Definition MovieSceneEntityIDs.h:429
Definition MovieSceneEntitySystemTypes.h:957
Definition MovieSceneEntitySystemTypes.h:977
MOVIESCENE_API const FComponentMask & GetAllocationType() const
Definition MovieSceneEntitySystemTypes.cpp:154
MOVIESCENE_API const FEntityAllocation * GetAllocation() const
Definition MovieSceneEntitySystemTypes.cpp:144
Definition MovieSceneEntitySystemTypes.h:425
static FEntityAllocationWriteContext NewAllocation()
Definition MovieSceneEntitySystemTypes.h:428
Definition MovieSceneEntitySystemTypes.h:624
TComponentLock< TReadOptional< T > > TryReadComponents(TComponentTypeID< T > ComponentType) const
Definition MovieSceneEntitySystemTypes.h:887
int32 Num() const
Definition MovieSceneEntitySystemTypes.h:813
Definition MovieSceneEntitySystemTypes.h:295
Definition MovieSceneEntityGroupingSystem.h:41
UE_API void AddEntityToGroup(const FMovieSceneEntityID &InEntity, const FEntityGroupID &InNewGroupID)
Definition MovieSceneEntityGroupingSystem.cpp:25
FEntityGroupID MakeGroupID(int32 GroupIndex) const
Definition MovieSceneEntityGroupingSystem.h:45
Definition BuiltInComponentTypes.h:534
Definition BuiltInComponentTypes.h:495
Definition MovieSceneEntitySystemTask.h:1045
Definition MovieSceneTracksComponentTypes.h:522
TComponentTypeID< FName > VectorParameterName
Definition MovieSceneTracksComponentTypes.h:563
TComponentTypeID< FName > ColorParameterName
Definition MovieSceneTracksComponentTypes.h:564
TComponentTypeID< FMaterialParameterInfo > ColorMaterialParameterInfo
Definition MovieSceneTracksComponentTypes.h:582
TComponentTypeID< FMaterialParameterInfo > ScalarMaterialParameterInfo
Definition MovieSceneTracksComponentTypes.h:581
TComponentTypeID< FName > ScalarParameterName
Definition MovieSceneTracksComponentTypes.h:561
TComponentTypeID< FObjectComponent > BoundMaterial
Definition MovieSceneTracksComponentTypes.h:585
TComponentTypeID< FMaterialParameterInfo > VectorMaterialParameterInfo
Definition MovieSceneTracksComponentTypes.h:583
static MOVIESCENETRACKS_API FMovieSceneTracksComponentTypes * Get()
Definition MovieSceneTracksComponentTypes.cpp:893
static FObjectComponent Weak(UObject *InObject)
Definition BuiltInComponentTypes.h:274
static FObjectComponent Null()
Definition BuiltInComponentTypes.h:262
Definition MovieSceneSystemTaskDependencies.h:98
Definition MovieSceneSystemTaskDependencies.h:29
Definition MovieSceneEntityIDs.h:283
Definition MovieSceneEntityGroupingSystem.h:98
int32 GetOrAllocateGroupIndex(typename TCallTraits< GroupKeyType >::ParamType InGroupKey, FEntityGroupBuilder *Builder)
Definition MovieSceneEntityGroupingSystem.h:101
TFilteredEntityTask< T... > FilterAll(const FComponentMask &InComponentMask)
Definition MovieSceneEntitySystemTask.h:188
static constexpr bool Value
Definition MovieSceneComponentTypeInfo.h:68
Definition MovieSceneMaterialSystem.h:109
void InitializeGroupKeys(TEntityGroupingHandlerBase< FMaterialGroupingPolicy > &Handler, FEntityGroupBuilder *Builder, FEntityAllocationIteratorItem Item, FReadEntityIDs EntityIDs, TWrite< FEntityGroupID > GroupIDs, TRead< RequiredComponents >... Components)
Definition MovieSceneMaterialSystem.h:112
TTuple< RequiredComponents..., FMaterialParameterInfo > GroupKeyType
Definition MovieSceneMaterialSystem.h:110
Definition MovieScenePreAnimatedStateStorage.h:59
Definition MovieSceneComponentPtr.h:208
Definition MovieSceneComponentPtr.h:195
Definition MovieSceneComponentPtr.h:288