UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MoviePlayer.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
9#include "Widgets/SWidget.h"
10#include "Slate/SlateTextures.h"
11
12#include "MoviePlayer.generated.h"
13
14// In order for a platform to support early movie playback, the platform must support the rendering thread
15// starting very early and support rendering as soon as it is started and the module containing the movie streamer for the platform must already be loaded
16
17UENUM()
19{
21 MT_Normal UMETA(DisplayName="Normal Playback"),
23 MT_Looped UMETA(DisplayName = "Looped Playback"),
25 MT_LoadingLoop UMETA(DisplayName = "Looped Last Playback"),
27};
28
30class FMovieViewport : public ISlateViewport, public TSharedFromThis<FMovieViewport>
31{
32public:
33 FMovieViewport() : DefaultSize(ForceInitToZero) {}
35
36 /* ISlateViewport interface. */
37 virtual FIntPoint GetSize() const override
38 {
40 return SlateTextureSharedPtr.IsValid() ? FIntPoint(SlateTextureSharedPtr->GetWidth(), SlateTextureSharedPtr->GetHeight()) : DefaultSize;
41 }
42
44 {
45 return SlateTexture.IsValid() ? SlateTexture.Pin().Get() : NULL;
46 }
47
48 virtual bool RequiresVsync() const override
49 {
50 return false;
51 }
52
57
63
64private:
66
69};
70
71
74{
75public:
82
85
87 virtual void ForceCompletion() = 0;
88
90 virtual bool Tick(FRHICommandListBase& RHICmdList, float DeltaTime) = 0;
91
94
96 virtual float GetAspectRatio() const = 0;
97
99 virtual FString GetMovieName() = 0;
100
102 virtual bool IsLastMovieInPlaylist() = 0;
103
105 virtual void Cleanup() = 0;
106
107 virtual FTextureRHIRef GetTexture() { return nullptr; }
108
109 virtual ~IMovieStreamer() {}
110
113
115
117 virtual void Suspend() {};
118 virtual void Resume() {};
119
120 // MediaFramework support.
122 virtual void TickPreEngine() {};
124 virtual void TickPostEngine() {};
126 virtual void TickPostRender() {};
127};
128
129
130
176
177
180{
181public:
184
187
189 virtual void Shutdown() = 0;
190
192 virtual void PassLoadingScreenWindowBackToGame() const = 0;
193
196
200
205
212
216 virtual bool IsInitialized() const = 0;
217
222 virtual bool PlayMovie() = 0;
223
227 virtual void StopMovie() = 0;
228
230 virtual void WaitForMovieToFinish(bool bAllowEngineTick = false) = 0;
231
233 virtual bool IsLoadingFinished() const = 0;
234
237
240
243
245 virtual FString GetMovieName() = 0;
246
249
250 /* Callback for when the LoadingScreen setup above in WidgetLoadingScreen is displayed **/
253
256 virtual FOnMoviePlaybackTick& OnMoviePlaybackTick() = 0;
257
260
262 virtual FOnMovieClipFinished& OnMovieClipFinished() = 0;
263
268
270 void BroadcastMovieClipFinished(const FString& MovieClipThatFinished) { OnMovieClipFinished().Broadcast(MovieClipThatFinished); }
271
274
275 virtual ~IGameMoviePlayer() {}
276
278 virtual bool IsStartupMoviePlaying() const { return false; };
279 virtual void ForceCompletion() {};
280 virtual void Suspend() {};
281 virtual void Resume() {};
282
284 virtual void SetIsPlayOnBlockingEnabled(bool bIsEnabled) {}
285};
286
289
292
295
297
#define NULL
Definition oodle2base.h:134
@ ForceInitToZero
Definition CoreMiscDefines.h:156
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_EVENT(OwningType, EventName)
Definition DelegateCombinations.h:32
#define DECLARE_EVENT_OneParam(OwningType, EventName, Param1Type)
Definition DelegateCombinations.h:51
return true
Definition ExternalRpcRegistry.cpp:601
FInt32Point FIntPoint
Definition MathFwd.h:124
EMoviePlaybackType
Definition MoviePlayer.h:19
@ UMETA
Definition MoviePlayer.h:21
MOVIEPLAYER_API IGameMoviePlayer & GetMoviePlayerRef()
Definition MoviePlayer.cpp:118
MOVIEPLAYER_API IGameMoviePlayer * GetMoviePlayer()
Definition MoviePlayer.cpp:106
MOVIEPLAYER_API void DestroyMoviePlayer()
Definition MoviePlayer.cpp:87
bool MOVIEPLAYER_API IsMoviePlayerEnabled()
Definition MoviePlayer.cpp:123
MOVIEPLAYER_API void CreateMoviePlayer()
Definition MoviePlayer.cpp:71
#define UENUM(...)
Definition ObjectMacros.h:749
Definition MoviePlayer.h:31
void SetDefaultSize(FIntPoint InSize)
Definition MoviePlayer.h:59
virtual FIntPoint GetSize() const override
Definition MoviePlayer.h:37
virtual class FSlateShaderResource * GetViewportRenderTargetTexture() const override
Definition MoviePlayer.h:43
void SetTexture(TWeakPtr< FSlateTexture2DRHIRef, ESPMode::ThreadSafe > InTexture)
Definition MoviePlayer.h:53
virtual bool RequiresVsync() const override
Definition MoviePlayer.h:48
FMovieViewport()
Definition MoviePlayer.h:33
~FMovieViewport()
Definition MoviePlayer.h:34
Definition RHICommandList.h:455
Definition SlateRenderer.h:173
Definition SlateShaderResource.h:44
Definition MoviePlayer.h:180
virtual bool IsStartupMoviePlaying() const
Definition MoviePlayer.h:278
virtual void Suspend()
Definition MoviePlayer.h:280
virtual void Resume()
Definition MoviePlayer.h:281
virtual void WaitForMovieToFinish(bool bAllowEngineTick=false)=0
virtual bool IsInitialized() const =0
virtual void RegisterMovieStreamer(TSharedPtr< IMovieStreamer, ESPMode::ThreadSafe > InMovieStreamer)=0
virtual FString GetMovieName()=0
virtual bool HasEarlyStartupMovie() const =0
virtual bool IsLastMovieInPlaylist()=0
virtual void SetIsPlayOnBlockingEnabled(bool bIsEnabled)
Definition MoviePlayer.h:284
virtual void SetupLoadingScreenFromIni()=0
virtual void SetupLoadingScreen(const FLoadingScreenAttributes &InLoadingScreenAttributes)=0
virtual ~IGameMoviePlayer()
Definition MoviePlayer.h:275
virtual FOnPrepareLoadingScreen & OnPrepareLoadingScreen()=0
virtual bool PlayMovie()=0
virtual void ForceCompletion()
Definition MoviePlayer.h:279
virtual void SetViewportDPIScale(float InViewportDPIScale)
Definition MoviePlayer.h:267
void BroadcastMovieClipFinished(const FString &MovieClipThatFinished)
Definition MoviePlayer.h:270
void BroadcastMoviePlaybackFinished()
Definition MoviePlayer.h:269
virtual bool LoadingScreenIsPrepared() const =0
virtual void SetSlateOverlayWidget(TSharedPtr< SWidget > NewOverlayWidget)=0
virtual FOnMoviePlaybackStarted & OnMoviePlaybackStarted()=0
virtual void PassLoadingScreenWindowBackToGame() const =0
virtual void Initialize(class FSlateRenderer &InSlateRenderer, TSharedPtr< SWindow > RenderTarget=nullptr)=0
virtual void Shutdown()=0
virtual bool IsMovieCurrentlyPlaying() const =0
virtual bool WillAutoCompleteWhenLoadFinishes()=0
virtual void StopMovie()=0
virtual bool IsLoadingFinished() const =0
virtual FOnMoviePlaybackFinished & OnMoviePlaybackFinished()=0
virtual bool PlayEarlyStartupMovies()=0
Definition MoviePlayer.h:74
void BroadcastCurrentMovieClipFinished(const FString &MovieClipThatFinished)
Definition MoviePlayer.h:114
virtual void Resume()
Definition MoviePlayer.h:118
virtual void Cleanup()=0
DECLARE_EVENT_OneParam(IMovieStreamer, FOnCurrentMovieClipFinished, const FString &) virtual FOnCurrentMovieClipFinished &OnCurrentMovieClipFinished()=0
virtual void ForceCompletion()=0
virtual void Suspend()
Definition MoviePlayer.h:117
virtual void PreviousViewportInterface(const TSharedPtr< ISlateViewport > &PreviousViewportInterface)
Definition MoviePlayer.h:84
virtual bool Tick(FRHICommandListBase &RHICmdList, float DeltaTime)=0
virtual TSharedPtr< class ISlateViewport > GetViewportInterface()=0
virtual float GetAspectRatio() const =0
virtual FString GetMovieName()=0
virtual bool IsLastMovieInPlaylist()=0
virtual bool Init(const TArray< FString > &MoviePaths, TEnumAsByte< EMoviePlaybackType > inPlaybackType)=0
virtual void TickPostRender()
Definition MoviePlayer.h:126
virtual void TickPreEngine()
Definition MoviePlayer.h:122
virtual FTextureRHIRef GetTexture()
Definition MoviePlayer.h:107
virtual void TickPostEngine()
Definition MoviePlayer.h:124
virtual ~IMovieStreamer()
Definition MoviePlayer.h:109
Definition RenderingCommon.h:471
Definition SWidget.h:165
Definition Array.h:670
Definition EnumAsByte.h:22
Definition SharedPointer.h:1640
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition SharedPointer.h:1295
UE_FORCEINLINE_HINT TSharedPtr< ObjectType, Mode > Pin() const &
Definition SharedPointer.h:1512
UE_FORCEINLINE_HINT bool IsValid() const
Definition SharedPointer.h:1535
@ false
Definition radaudio_common.h:23
Definition MoviePlayer.h:133
bool bAutoCompleteWhenLoadingCompletes
Definition MoviePlayer.h:153
static MOVIEPLAYER_API TSharedRef< class SWidget > NewTestLoadingScreenWidget()
Definition MoviePlayer.cpp:66
TSharedPtr< class SWidget > WidgetLoadingScreen
Definition MoviePlayer.h:144
bool bAllowInEarlyStartup
Definition MoviePlayer.h:162
bool bAllowEngineTick
Definition MoviePlayer.h:165
FLoadingScreenAttributes()
Definition MoviePlayer.h:134
bool bWaitForManualStop
Definition MoviePlayer.h:159
MOVIEPLAYER_API bool IsValid() const
Definition MoviePlayer.cpp:64
TEnumAsByte< EMoviePlaybackType > PlaybackType
Definition MoviePlayer.h:168
TArray< FString > MoviePaths
Definition MoviePlayer.h:147
bool bMoviesAreSkippable
Definition MoviePlayer.h:156
float MinimumLoadingScreenDisplayTime
Definition MoviePlayer.h:150
Definition IntPoint.h:25