Files
UnrealEngine/Engine/Plugins/MovieScene/MovieRenderPipeline/Source/MovieRenderPipelineSettings/Public/MoviePipelineBurnInSetting.h
Brandyn / Techy fcc1b09210 init
2026-04-04 15:40:51 -05:00

68 lines
2.4 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "MoviePipelineRenderPass.h"
#include "MovieRenderPipelineDataTypes.h"
#include "UObject/SoftObjectPath.h"
#include "MoviePipelineBurnInSetting.generated.h"
#define UE_API MOVIERENDERPIPELINESETTINGS_API
class FWidgetRenderer;
class SVirtualWindow;
class UTextureRenderTarget2D;
class UMoviePipelineBurnInWidget;
namespace MoviePipeline { struct FMoviePipelineRenderPassInitSettings; }
UCLASS(MinimalAPI, Blueprintable)
class UMoviePipelineBurnInSetting : public UMoviePipelineRenderPass
{
GENERATED_BODY()
UMoviePipelineBurnInSetting()
: BurnInClass(DefaultBurnInWidgetAsset)
, bCompositeOntoFinalImage(true)
{
}
protected:
// UMoviePipelineRenderPass Interface
UE_API virtual void SetupImpl(const MoviePipeline::FMoviePipelineRenderPassInitSettings& InPassInitSettings) override;
UE_API virtual void TeardownImpl() override;
UE_API virtual void GatherOutputPassesImpl(TArray<FMoviePipelinePassIdentifier>& ExpectedRenderPasses) override;
UE_API virtual void RenderSample_GameThreadImpl(const FMoviePipelineRenderPassMetrics& InSampleState) override;
// ~UMoviePipelineRenderPass Interface
public:
#if WITH_EDITOR
virtual FText GetDisplayText() const override { return NSLOCTEXT("MovieRenderPipeline", "BurnInSettingDisplayName", "Burn In"); }
virtual FText GetCategoryText() const { return NSLOCTEXT("MovieRenderPipeline", "DefaultCategoryName_Text", "Settings"); }
#endif
virtual bool IsValidOnShots() const override { return false; }
virtual bool IsValidOnPrimary() const override { return true; }
public:
UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(MetaClass="/Script/MovieRenderPipelineSettings.MoviePipelineBurnInWidget"), Category = "Widget Settings")
FSoftClassPath BurnInClass;
/** If true, the Burn In image will be composited into the Final Image pass. Doesn't apply to multi-layer EXR files. */
UPROPERTY(EditAnywhere, BlueprintReadWrite, meta = (MetaClass = "/Script/MovieRenderPipelineSettings.MoviePipelineBurnInWidget"), Category = "Widget Settings")
bool bCompositeOntoFinalImage;
private:
FIntPoint OutputResolution;
TSharedPtr<FWidgetRenderer> WidgetRenderer;
TSharedPtr<SVirtualWindow> VirtualWindow;
UPROPERTY(Transient)
TObjectPtr<UTextureRenderTarget2D> RenderTarget;
UPROPERTY(Transient)
TArray<TObjectPtr<UMoviePipelineBurnInWidget>> BurnInWidgetInstances;
public:
static UE_API FString DefaultBurnInWidgetAsset;
};
#undef UE_API