Files
UnrealEngine/Engine/Plugins/MovieScene/MovieRenderPipeline/Source/MovieRenderPipelineRenderPasses/Private/MovieRenderPipelineRenderPassesModule.cpp
2025-05-18 13:04:45 +08:00

46 lines
1.3 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "Modules/ModuleManager.h"
#include "MovieRenderPipelineDataTypes.h"
#include "MovieRenderPipelineCoreModule.h"
#include "MoviePipelineDeferredPasses.h"
#include "UObject/ICookInfo.h"
class FMovieRenderPipelineRenderPassesModule : public IModuleInterface
{
public:
virtual void StartupModule() override
{
#if WITH_EDITOR
if (IsRunningCookCommandlet())
{
UE::Cook::FDelegates::ModifyCook.AddLambda(
[](UE::Cook::ICookInfo& CookInfo, TArray<UE::Cook::FPackageCookRule>& InOutPackageCookRules)
{
// Ensure these assets (which are referenced only by code) get packaged
const FString* Assets[] =
{
&UMoviePipelineDeferredPassBase::StencilLayerMaterialAsset,
&UMoviePipelineDeferredPassBase::DefaultDepthAsset,
&UMoviePipelineDeferredPassBase::DefaultMotionVectorsAsset
};
for (const FString* Asset : Assets)
{
InOutPackageCookRules.Add(
UE::Cook::FPackageCookRule{
.PackageName = FName(FSoftObjectPath(*Asset).GetLongPackageName()),
.InstigatorName = FName("FMovieRenderPipelineRenderPassesModule"),
.CookRule = UE::Cook::EPackageCookRule::AddToCook
}
);
}
}
);
}
#endif
}
};
IMPLEMENT_MODULE(FMovieRenderPipelineRenderPassesModule, MovieRenderPipelineRenderPasses);