Files
UnrealEngine/Engine/Source/Runtime/MoviePlayer/Private/NullMoviePlayer.h
2025-05-18 13:04:45 +08:00

76 lines
3.0 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "MoviePlayer.h"
/** An placeholder implementation of the movie player for the editor */
class FNullGameMoviePlayer : public IGameMoviePlayer,
public TSharedFromThis<FNullGameMoviePlayer>
{
public:
static void Create()
{
check(IsInGameThread() && !IsInSlateThread());
check(!MoviePlayer.IsValid());
MoviePlayer = MakeShareable(new FNullGameMoviePlayer);
}
static void Destroy()
{
check(IsInGameThread() && !IsInSlateThread());
MoviePlayer.Reset();
}
static FNullGameMoviePlayer* Get()
{
return MoviePlayer.Get();
}
/** IGameMoviePlayer Interface */
virtual void RegisterMovieStreamer(TSharedPtr<class IMovieStreamer, ESPMode::ThreadSafe> InMovieStreamer) override {}
virtual void Initialize(class FSlateRenderer& InSlateRenderer, TSharedPtr<SWindow> RenderTarget = nullptr) override {}
virtual void Shutdown() override {}
virtual void PassLoadingScreenWindowBackToGame() const override {}
virtual void SetupLoadingScreen(const FLoadingScreenAttributes& InLoadingScreenAttributes) override {}
virtual bool HasEarlyStartupMovie() const override { return false; }
virtual bool IsInitialized() const override { return false; }
virtual bool PlayEarlyStartupMovies() override { return false; }
virtual bool PlayMovie() override { return false; }
virtual void StopMovie() override {}
virtual void WaitForMovieToFinish(bool bAllowEngineTick = false) override {}
virtual bool IsLoadingFinished() const override {return true;}
virtual bool IsMovieCurrentlyPlaying() const override {return false;}
virtual bool LoadingScreenIsPrepared() const override {return false;}
virtual void SetupLoadingScreenFromIni() override {}
virtual FOnPrepareLoadingScreen& OnPrepareLoadingScreen() override { return OnPrepareLoadingScreenDelegate; }
virtual FOnMoviePlaybackStarted& OnMoviePlaybackStarted() override { return OnMoviePlaybackStartedDelegate; }
virtual FOnMoviePlaybackTick& OnMoviePlaybackTick() override { return OnMoviePlaybackTickDelegate; }
virtual FOnMoviePlaybackFinished& OnMoviePlaybackFinished() override { return OnMoviePlaybackFinishedDelegate; }
virtual FOnMovieClipFinished& OnMovieClipFinished() override { return OnMovieClipFinishedDelegate; }
virtual void SetSlateOverlayWidget(TSharedPtr<SWidget> NewOverlayWidget) override { }
virtual bool WillAutoCompleteWhenLoadFinishes() override { return false; }
virtual FString GetMovieName() override { return TEXT(""); }
virtual bool IsLastMovieInPlaylist() override { return false; }
private:
FNullGameMoviePlayer() {}
private:
/** Singleton handle */
static TSharedPtr<FNullGameMoviePlayer> MoviePlayer;
/** Called before a movie is queued up to play to configure the movie player accordingly. */
FOnPrepareLoadingScreen OnPrepareLoadingScreenDelegate;
FOnMoviePlaybackStarted OnMoviePlaybackStartedDelegate;
FOnMoviePlaybackTick OnMoviePlaybackTickDelegate;
FOnMoviePlaybackFinished OnMoviePlaybackFinishedDelegate;
FOnMovieClipFinished OnMovieClipFinishedDelegate;
};