Projekt for SPIE - Avatar for safety briefing / managment event
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

49 lines
1.9 KiB

// Copyright Voulz 2021-2025. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "SceneViewExtension.h"
class UArchVisCineCameraComponent;
class UArchVisSubsystem;
/**
* A hack class used by ArchVisMoviePipelineDeferredPass to force a specific scene should not be rendered for this view
*/
struct FArchVisSceneViewExtensionContextDisableOnce : public FSceneViewExtensionContext
{
private:
//~ FSceneViewExtensionContext Interface
virtual FName GetRTTI() const override { return TEXT("FArchVisSceneViewExtensionContext"); }
public:
FArchVisSceneViewExtensionContextDisableOnce() { }
FArchVisSceneViewExtensionContextDisableOnce(FSceneInterface* InScene)
: FSceneViewExtensionContext(InScene)
{ }
};
class ARCHVISTOOLS_API FArchVisSceneViewExtension : public FSceneViewExtensionBase
{
public:
FArchVisSceneViewExtension(const FAutoRegister& AutoRegister, UArchVisSubsystem* InArchVisSubsystem);
//~ Begin FSceneViewExtensionBase Interface
virtual void SetupViewFamily(FSceneViewFamily& InViewFamily) override;
virtual void SetupView(FSceneViewFamily& InViewFamily, FSceneView& InView) override;
virtual void BeginRenderViewFamily(FSceneViewFamily& InViewFamily) override {};
virtual void PrePostProcessPass_RenderThread(FRDGBuilder& GraphBuilder, const FSceneView& View, const FPostProcessingInputs& Inputs) override {};
//~ End FSceneViewExtensionBase Interface
static FMinimalViewInfo GetCorrectedViewInfo(const UWorld* World, UArchVisCineCameraComponent* ArchVisComponent, const FIntPoint& UnconstrainedViewSize, const FMinimalViewInfo& CurrentViewInfo);
// Adjustment of FViewport::CalculateViewExtents to remove the need from the FViewport
static FIntRect CalculateViewExtents(float AspectRatio, const FIntRect& ViewRect);
protected:
// Disable the View Extension in MRQ
virtual bool IsActiveThisFrame_Internal(const FSceneViewExtensionContext& Context) const override;
private:
UArchVisSubsystem* ArchVisSubsystem = nullptr;
};