Files
UnrealEngine/Engine/Plugins/Runtime/nDisplay/Source/DisplayCluster/Public/DisplayClusterSceneViewExtensions.h
2025-05-18 13:04:45 +08:00

48 lines
1.5 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "SceneViewExtension.h"
#include "Render/Viewport/IDisplayClusterViewportConfiguration.h"
/**
* Contains information about the context in which this scene view extension will be used.
*/
struct FDisplayClusterSceneViewExtensionContext : public FSceneViewExtensionContext
{
private:
//~ FSceneViewExtensionContext Interface
virtual FName GetRTTI() const override { return TEXT("FDisplayClusterSceneViewExtensionContext"); }
virtual bool IsHMDSupported() const override
{
// Disable all HMD extensions for nDisplay render
return false;
}
public:
FDisplayClusterSceneViewExtensionContext()
: FSceneViewExtensionContext()
{ }
FDisplayClusterSceneViewExtensionContext(FViewport* InViewport, const TSharedRef<IDisplayClusterViewportConfiguration, ESPMode::ThreadSafe>& InConfiguration, const FString& InViewportId)
: FSceneViewExtensionContext(InViewport)
, ViewportId(InViewportId)
, Configuration(InConfiguration)
{ }
FDisplayClusterSceneViewExtensionContext(FSceneInterface* InScene, const TSharedRef<IDisplayClusterViewportConfiguration, ESPMode::ThreadSafe>& InConfiguration, const FString& InViewportId)
: FSceneViewExtensionContext(InScene)
, ViewportId(InViewportId)
, Configuration(InConfiguration)
{ }
public:
// The id of the nDisplay viewport being rendered.
const FString ViewportId;
// Reference to viewport manager
const TSharedPtr<IDisplayClusterViewportConfiguration, ESPMode::ThreadSafe> Configuration;
};