UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MediaTexture.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreTypes.h"
7#include "Engine/Texture.h"
8#include "Math/Color.h"
9#include "Math/IntPoint.h"
10#include "MediaSampleQueue.h"
11#include "Misc/Timespan.h"
12#include "Templates/Atomic.h"
16
17#include "MediaTexture.generated.h"
18
22class UMediaPlayer;
23
24UENUM()
26{
27 MTORI_Original UMETA(DisplayName = "Original (as decoded)"),
28 MTORI_CW90 UMETA(DisplayName = "Clockwise 90deg"),
29 MTORI_CW180 UMETA(DisplayName = "Clockwise 180deg"),
30 MTORI_CW270 UMETA(DisplayName = "Clockwise 270deg"),
31};
32
42{
44
45public:
46
48 enum class ERenderMode
49 {
50 Default = 0,
51 JustInTime, // Will defer rendering this media texture until its consumer calls its JustInTimeRender function.
52 };
53
54public:
55
57 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="MediaTexture", meta=(DisplayName="X-axis Tiling Method"), AssetRegistrySearchable, AdvancedDisplay)
59
61 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="MediaTexture", meta=(DisplayName="Y-axis Tiling Method"), AssetRegistrySearchable, AdvancedDisplay)
63
65 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="MediaTexture")
66 bool AutoClear;
67
69 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="MediaTexture")
70 FLinearColor ClearColor;
71
73 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "MediaTexture", meta = (DisplayName = "Enable Mipmap generation"))
74 bool EnableGenMips;
75
76#if WITH_EDITORONLY_DATA
77 UE_DEPRECATED(5.6, "Only 'Enable Mipmap Generation' is needed now. When true, the full mip chain will be generated.")
78 UPROPERTY(meta = (DeprecatedProperty, DeprecationMessage = "Only 'Enable Mipmap Generation' is needed now. When true, the full mip chain will be generated."))
80#endif
81
86 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "MediaTexture", meta = (DisplayName = "Enable New Style Output"))
87 bool NewStyleOutput;
88
90 UPROPERTY(Transient, TextExportTransient, SkipSerialization, BlueprintReadOnly, Category = "MediaTexture", meta = (DisplayName = "Current frame's aspect ratio"))
91 float CurrentAspectRatio;
92
94 UPROPERTY(Transient, TextExportTransient, SkipSerialization, BlueprintReadOnly, Category = "MediaTexture", meta = (DisplayName = "Current frame's orientation"))
96
97public:
98
105 UFUNCTION(BlueprintCallable, Category="Media|MediaTexture")
106 MEDIAASSETS_API float GetAspectRatio() const;
107
114 UFUNCTION(BlueprintCallable, Category="Media|MediaTexture")
115 MEDIAASSETS_API int32 GetHeight() const;
116
123 UFUNCTION(BlueprintCallable, Category="Media|MediaTexture")
124 MEDIAASSETS_API int32 GetWidth() const;
125
131 UFUNCTION(BlueprintCallable, Category = "Media|MediaTexture")
132 MEDIAASSETS_API int32 GetTextureNumMips() const;
133
140 UFUNCTION(BlueprintCallable, Category = "Media|MediaTexture")
141 MEDIAASSETS_API UMediaPlayer* GetMediaPlayer() const;
142
149 UFUNCTION(BlueprintCallable, Category="Media|MediaTexture")
150 MEDIAASSETS_API void SetMediaPlayer(UMediaPlayer* NewMediaPlayer);
151
161
167 UFUNCTION(BlueprintCallable, Category = "Media|MediaTexture")
168 void UpdateResource() { UpdateResourceWithParams(EUpdateResourceFlags::None); }
169
174 MEDIAASSETS_API void CacheNextAvailableSampleTime(FTimespan InNextSampleTime);
175
182 MEDIAASSETS_API FTimespan GetNextSampleTime() const;
183
188 MEDIAASSETS_API int32 GetAvailableSampleCount() const;
189
190#if WITH_EDITOR
191
199
200#endif
201
206 MEDIAASSETS_API float GetCurrentAspectRatio() const;
207
212 MEDIAASSETS_API MediaTextureOrientation GetCurrentOrientation() const;
213
218 MEDIAASSETS_API float GetMipMapBias() const;
219
226 MEDIAASSETS_API void SetMipMapBias(float InMipMapBias);
227
235
237 MEDIAASSETS_API virtual void JustInTimeRender();
238
241 {
242 RenderMode = InRenderMode;
243 }
244
247 {
248 return RenderMode;
249 }
250
251public:
252
253 //~ UTexture interface.
254
255 MEDIAASSETS_API virtual void BeginDestroy() override;
256 MEDIAASSETS_API virtual FTextureResource* CreateResource() override;
257 MEDIAASSETS_API virtual EMaterialValueType GetMaterialType() const override;
258 MEDIAASSETS_API virtual float GetSurfaceWidth() const override;
259 MEDIAASSETS_API virtual float GetSurfaceHeight() const override;
260 virtual float GetSurfaceDepth() const override { return 0; }
261 virtual uint32 GetSurfaceArraySize() const override { return 0; }
262 MEDIAASSETS_API virtual FGuid GetExternalTextureGuid() const override;
263 MEDIAASSETS_API void SetRenderedExternalTextureGuid(const FGuid& InNewGuid);
265 MEDIAASSETS_API virtual uint32 CalcTextureMemorySizeEnum(ETextureMipCount Enum) const override;
266
267public:
268
269 //~ UObject interface.
270
271 MEDIAASSETS_API virtual FString GetDesc() override;
273 MEDIAASSETS_API virtual void PostInitProperties() override;
274 MEDIAASSETS_API virtual void PostLoad() override;
275 MEDIAASSETS_API virtual bool IsPostLoadThreadSafe() const override;
276
277#if WITH_EDITOR
278 MEDIAASSETS_API virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
279#endif
280
281protected:
282
288 MEDIAASSETS_API void TickResource(FTimespan Timecode);
289
294 MEDIAASSETS_API void UpdatePlayerAndQueue(TSharedPtr<FMediaTextureSampleQueue> InSampleQueue = nullptr);
295
298
299protected:
300
309 UPROPERTY(EditAnywhere, Category="Media")
311
312private:
313
315
318
320 FGuid CurrentGuid;
321
323 FGuid CurrentRenderedGuid;
324
326 TWeakObjectPtr<UMediaPlayer> CurrentPlayer;
327
329 const FGuid DefaultGuid;
330
332 FIntPoint Dimensions;
333
335 FLinearColor LastClearColor;
336
338 bool LastSrgb;
339
341 bool bIsCleared;
342
345
347 SIZE_T Size;
348
350 mutable FCriticalSection CriticalSection;
351
353 TAtomic<FTimespan> CachedNextSampleTime;
354
356 int32 TextureNumMips;
357
359 float MipMapBias;
360
362 ERenderMode RenderMode = ERenderMode::Default;
363
365 UE::Color::EColorSpace ColorspaceOverride;
366};
virtual bool IsPostLoadThreadSafe() const override
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
FPlatformTypes::SIZE_T SIZE_T
An unsigned integer the same size as a pointer, the same as UPTRINT.
Definition Platform.h:1150
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE::FPlatformRecursiveMutex FCriticalSection
Definition CriticalSection.h:53
return true
Definition ExternalRpcRegistry.cpp:601
EMaterialValueType
Definition MaterialValueType.h:15
MediaTextureOrientation
Definition MediaTexture.h:26
@ UMETA
Definition MediaTexture.h:27
const bool
Definition NetworkReplayStreaming.h:178
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define UFUNCTION(...)
Definition ObjectMacros.h:745
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
#define UENUM(...)
Definition ObjectMacros.h:749
ESPMode
Definition SharedPointerFwd.h:12
ETextureMipCount
Definition TextureDefines.h:505
TextureAddress
Definition TextureDefines.h:496
ETextureClass
Definition TextureDefines.h:299
uint32 Size
Definition VulkanMemory.cpp:4034
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition MediaPlayerFacade.h:70
Definition MediaTexture.cpp:33
Definition TextureResource.h:103
Definition IMediaTextureSample.h:199
Definition Atomic.h:538
Definition EnumAsByte.h:22
Definition SharedPointer.h:692
Definition MediaPlayer.h:176
virtual MEDIAASSETS_API void PostInitProperties() override
Definition MediaPlayer.cpp:1024
virtual MEDIAASSETS_API void BeginDestroy() override
Definition MediaPlayer.cpp:994
virtual MEDIAASSETS_API FString GetDesc() override
Definition MediaPlayer.cpp:1001
Definition MediaTexture.h:42
virtual ETextureClass GetTextureClass() const override
Definition MediaTexture.h:264
void SetColorSpaceOverride(UE::Color::EColorSpace InColorspaceOverride)
Definition MediaTexture.h:231
void SetRenderMode(ERenderMode InRenderMode)
Definition MediaTexture.h:240
virtual float GetSurfaceDepth() const override
Definition MediaTexture.h:260
ERenderMode
Definition MediaTexture.h:49
ERenderMode GetRenderMode()
Definition MediaTexture.h:246
virtual uint32 GetSurfaceArraySize() const override
Definition MediaTexture.h:261
virtual COREUOBJECT_API void GetResourceSizeEx(FResourceSizeEx &CumulativeResourceSize)
Definition Obj.cpp:2681
Definition Texture.h:1219
EColorSpace
Definition ColorManagementDefines.h:46
Definition AdvancedWidgetsModule.cpp:13
Definition Guid.h:109
Definition Color.h:48
Definition UnrealType.h:6865
Definition ResourceSize.h:31
Definition Timespan.h:76
Definition ObjectPtr.h:488
Definition WeakObjectPtrTemplates.h:25
Definition IntPoint.h:25