Files
UnrealEngine/Engine/Source/Runtime/MovieSceneTracks/Private/MovieSceneTracksModule.cpp
2025-05-18 13:04:45 +08:00

60 lines
1.7 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "CoreMinimal.h"
#include "Modules/ModuleManager.h"
#include "IMovieSceneModule.h"
#include "IMovieSceneTracksModule.h"
#include "Components/SceneComponent.h"
#include "Systems/MovieScene3DTransformPropertySystem.h"
#include "EntitySystem/MovieSceneEntityManager.h"
#include "Systems/MovieSceneMaterialSystem.h"
#include "MovieSceneTracksComponentTypes.h"
DEFINE_STAT(MovieSceneEval_ReinitializeBoundMaterials);
/**
* Implements the MovieSceneTracks module.
*/
class FMovieSceneTracksModule
: public IMovieSceneTracksModule
{
virtual void StartupModule() override
{
IMovieSceneModule& MovieSceneModule = IMovieSceneModule::Get();
MovieSceneModule.RegisterEvaluationGroupParameters(
IMovieSceneTracksModule::GetEvaluationGroupName(EBuiltInEvaluationGroup::PreEvaluation),
FMovieSceneEvaluationGroupParameters(0x8FFF));
MovieSceneModule.RegisterEvaluationGroupParameters(
IMovieSceneTracksModule::GetEvaluationGroupName(EBuiltInEvaluationGroup::SpawnObjects),
FMovieSceneEvaluationGroupParameters(0x0FFF));
MovieSceneModule.RegisterEvaluationGroupParameters(
IMovieSceneTracksModule::GetEvaluationGroupName(EBuiltInEvaluationGroup::PostEvaluation),
FMovieSceneEvaluationGroupParameters(0x0008));
UE::MovieScene::FMovieSceneTracksComponentTypes::Get();
}
virtual void ShutdownModule() override
{
}
};
FName IMovieSceneTracksModule::GetEvaluationGroupName(EBuiltInEvaluationGroup::Type InEvalGroup)
{
static FName Names[] = {
"PreEvaluation",
"SpawnObjects",
"PostEvaluation",
};
check(InEvalGroup >= 0 && InEvalGroup < UE_ARRAY_COUNT(Names));
return Names[InEvalGroup];
}
IMPLEMENT_MODULE(FMovieSceneTracksModule, MovieSceneTracks);