Files
UnrealEngine/Engine/Plugins/Runtime/nDisplay/Source/DisplayClusterMedia/Public/Synchronization/DisplayClusterMediaOutputSynchronizationPolicyVblank.h
Brandyn / Techy fcc1b09210 init
2026-04-04 15:40:51 -05:00

52 lines
1.8 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "Synchronization/DisplayClusterMediaOutputSynchronizationPolicyThresholdBase.h"
#include "DisplayClusterMediaOutputSynchronizationPolicyVblank.generated.h"
class IDisplayClusterVblankMonitor;
/*
* Synchronization logic handler class for UDisplayClusterMediaOutputSynchronizationPolicyVblank.
*/
class DISPLAYCLUSTERMEDIA_API FDisplayClusterMediaOutputSynchronizationPolicyVblankHandler
: public FDisplayClusterMediaOutputSynchronizationPolicyThresholdBaseHandler
{
using Super = FDisplayClusterMediaOutputSynchronizationPolicyThresholdBaseHandler;
public:
FDisplayClusterMediaOutputSynchronizationPolicyVblankHandler(UDisplayClusterMediaOutputSynchronizationPolicyVblank* InPolicyObject);
//~ Begin IDisplayClusterMediaOutputSynchronizationPolicyHandler interface
virtual TSubclassOf<UDisplayClusterMediaOutputSynchronizationPolicy> GetPolicyClass() const override;
virtual bool StartSynchronization(UMediaCapture* MediaCapture, const FString& MediaId) override;
//~ End IDisplayClusterMediaOutputSynchronizationPolicyHandler interface
protected:
/** Returns amount of time before next synchronization point. */
virtual double GetTimeBeforeNextSyncPoint() override;
private:
// V-blank monitor
TSharedPtr<IDisplayClusterVblankMonitor> VblankMonitor;
};
/*
* Vblank media synchronization policy config
*/
UCLASS(editinlinenew, Blueprintable, meta = (DisplayName = "V-blank"))
class DISPLAYCLUSTERMEDIA_API UDisplayClusterMediaOutputSynchronizationPolicyVblank
: public UDisplayClusterMediaOutputSynchronizationPolicyThresholdBase
{
GENERATED_BODY()
public:
virtual TSharedPtr<IDisplayClusterMediaOutputSynchronizationPolicyHandler> GetHandler() override;
protected:
TSharedPtr<IDisplayClusterMediaOutputSynchronizationPolicyHandler> Handler;
};