68 lines
1.8 KiB
C++
68 lines
1.8 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "Misc/FrameTime.h"
|
|
#include "MovieSceneTimeController.h"
|
|
#include "UObject/Interface.h"
|
|
#include "UObject/ObjectMacros.h"
|
|
#include "UObject/SoftObjectPath.h"
|
|
#include "UObject/UObjectGlobals.h"
|
|
#include "UObject/WeakObjectPtrTemplates.h"
|
|
|
|
#include "IMovieSceneCustomClockSource.generated.h"
|
|
|
|
class UObject;
|
|
struct FFrame;
|
|
struct FQualifiedFrameTime;
|
|
|
|
UINTERFACE(MinimalAPI)
|
|
class UMovieSceneCustomClockSource : public UInterface
|
|
{
|
|
GENERATED_BODY()
|
|
};
|
|
|
|
/**
|
|
*
|
|
*/
|
|
class IMovieSceneCustomClockSource
|
|
{
|
|
public:
|
|
|
|
GENERATED_BODY()
|
|
|
|
UFUNCTION()
|
|
virtual void OnTick(float DeltaSeconds, float InPlayRate) {}
|
|
|
|
UFUNCTION()
|
|
virtual void OnStartPlaying(const FQualifiedFrameTime& InStartTime) {}
|
|
|
|
UFUNCTION()
|
|
virtual void OnStopPlaying(const FQualifiedFrameTime& InStopTime) {}
|
|
|
|
UFUNCTION()
|
|
virtual FFrameTime OnRequestCurrentTime(const FQualifiedFrameTime& InCurrentTime, float InPlayRate) { return 0; }
|
|
};
|
|
|
|
struct FMovieSceneTimeController_Custom : FMovieSceneTimeController
|
|
{
|
|
MOVIESCENE_API explicit FMovieSceneTimeController_Custom(const FSoftObjectPath& InObjectPath, TWeakObjectPtr<> PlaybackContext);
|
|
|
|
private:
|
|
|
|
MOVIESCENE_API virtual void OnTick(float DeltaSeconds, float InPlayRate) override final;
|
|
MOVIESCENE_API virtual void OnStartPlaying(const FQualifiedFrameTime& InStartTime) override final;
|
|
MOVIESCENE_API virtual void OnStopPlaying(const FQualifiedFrameTime& InStopTime) override final;
|
|
MOVIESCENE_API virtual FFrameTime OnRequestCurrentTime(const FQualifiedFrameTime& InCurrentTime, float InPlayRate) override final;
|
|
|
|
void ResolveInterfacePtr();
|
|
|
|
TWeakObjectPtr<> WeakPlaybackContext;
|
|
|
|
TWeakObjectPtr<> WeakObject;
|
|
|
|
IMovieSceneCustomClockSource* InterfacePtr;
|
|
|
|
FSoftObjectPath ObjectPath;
|
|
};
|