UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Texture2D.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"
7#include "ImageCoreBP.h"
10#include "Engine/Texture.h"
12
13#if UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_6
15#endif
16
17#include "Texture2D.generated.h"
18
21struct FTexture2DMipMap;
23
24UCLASS(hidecategories=Object, MinimalAPI, BlueprintType)
26{
28
29public:
30
32 UPROPERTY()
33 int32 FirstResourceMemMip;
34
35public:
39#if WITH_EDITOR
40 ENGINE_API FIntPoint GetImportedSize() const;
41#else // #if WITH_EDITOR
43 {
44 return ImportedSize;
45 }
46#endif // #if WITH_EDITOR
47
48private:
52 uint8 bTemporarilyDisableStreaming:1;
53
54public:
55#if WITH_EDITORONLY_DATA
57 UPROPERTY()
59#endif // WITH_EDITORONLY_DATA
60
62 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Texture, meta=(DisplayName="X-axis Tiling Method"), AssetRegistrySearchable, AdvancedDisplay)
64
66 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Texture, meta=(DisplayName="Y-axis Tiling Method"), AssetRegistrySearchable, AdvancedDisplay)
68
74 UPROPERTY()
75 FIntPoint ImportedSize;
76
78 FTexturePlatformData* PrivatePlatformData;
79
80public:
81
83 ENGINE_API void SetPlatformData(FTexturePlatformData* PlatformData);
85 ENGINE_API FTexturePlatformData* GetPlatformData();
87 ENGINE_API const FTexturePlatformData* GetPlatformData() const;
88
89 UTextureAllMipDataProviderFactory* GetAllMipProvider() const
90 {
92 }
93
94#if WITH_EDITOR
95 /* cooked platform data for this texture */
96 TMap<FString, FTexturePlatformData*> CookedPlatformData;
97#endif
98
101
102protected:
103
105 friend class FTexture2DUpdate;
106
107public:
108
109 //~ Begin UObject Interface.
110 virtual void Serialize(FArchive& Ar) override;
111#if WITH_EDITOR
112 virtual void PostLinkerChange() override;
113 virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
114 virtual bool IsDefaultTexture() const override;
115#endif // WITH_EDITOR
116 virtual void BeginDestroy() override;
117 virtual bool IsReadyForAsyncPostLoad() const override;
118 virtual void PostLoad() override;
119 virtual void PreSave(FObjectPreSaveContext ObjectSaveContext) override;
120#if WITH_EDITOR
121 virtual void OnCookEvent(UE::Cook::ECookEvent CookEvent, UE::Cook::FCookEventContext& CookContext) override;
122#endif
123 virtual void GetAssetRegistryTags(FAssetRegistryTagsContext Context) const override;
124 UE_DEPRECATED(5.4, "Implement the version that takes FAssetRegistryTagsContext instead.")
125 virtual void GetAssetRegistryTags(TArray<FAssetRegistryTag>& OutTags) const override;
126 virtual FString GetDesc() override;
127 //~ End UObject Interface.
128
129 //~ Begin UTexture Interface.
130 virtual ETextureClass GetTextureClass() const override { return ETextureClass::TwoD; }
131 virtual float GetSurfaceWidth() const override { return static_cast<float>(GetSizeX()); }
132 virtual float GetSurfaceHeight() const override { return static_cast<float>(GetSizeY()); }
133 virtual float GetSurfaceDepth() const override { return 0.0f; }
134 virtual uint32 GetSurfaceArraySize() const override { return 0; }
135 virtual TextureAddress GetTextureAddressX() const override { return AddressX; }
136 virtual TextureAddress GetTextureAddressY() const override { return AddressY; }
137 virtual FTextureResource* CreateResource() override;
138 virtual EMaterialValueType GetMaterialType() const override;
139 virtual void UpdateResourceWithParams(EUpdateResourceFlags InFlags) override;
140 virtual float GetAverageBrightness(bool bIgnoreTrueBlack, bool bUseGrayscale) override;
141 virtual FTexturePlatformData** GetRunningPlatformData() final override;
142#if WITH_EDITOR
143 virtual TMap<FString,FTexturePlatformData*>* GetCookedPlatformData() override { return &CookedPlatformData; }
144#endif
145 //~ End UTexture Interface.
146
147 //~ Begin UStreamableRenderAsset Interface
148 virtual int32 CalcCumulativeLODSize(int32 NumLODs) const final override { return CalcTextureMemorySize(NumLODs); }
149 ENGINE_API int32 GetNumResidentMips() const;
150 ENGINE_API virtual bool StreamOut(int32 NewMipCount) final override;
151 ENGINE_API virtual bool StreamIn(int32 NewMipCount, bool bHighPrio) final override;
152 //~ End UStreamableRenderAsset Interface
153
155 ENGINE_API int32 GetSizeX() const;
156 ENGINE_API int32 GetSizeY() const;
158 ENGINE_API EPixelFormat GetPixelFormat(uint32 LayerIndex = 0u) const;
159 ENGINE_API int32 GetMipTailBaseIndex() const;
160 ENGINE_API const TIndirectArray<FTexture2DMipMap>& GetPlatformMips() const;
161 ENGINE_API int32 GetExtData() const;
162
163
164
177 ENGINE_API int32 GetNumMipsAllowed(bool bIgnoreMinResidency) const;
178
179public:
184 {
185 return FMath::Max(GMinTextureResidentMipCount, GetPlatformData() ? (int32)GetPlatformData()->GetNumMipsInTail() : 0);
186 }
187
203 ENGINE_API void GetMipData(int32 FirstMipToLoad, void** OutMipData);
204
221
228 int32 CalcTextureMemorySize( int32 MipCount ) const;
229
236 virtual uint32 CalcTextureMemorySizeEnum( ETextureMipCount Enum ) const override;
237
245 ENGINE_API bool GetSourceArtCRC(uint32& OutSourceCRC);
246
254 ENGINE_API bool HasSameSourceArt(UTexture2D* InTexture);
255
259 ENGINE_API bool HasAlphaChannel() const;
260
266 virtual void GetResourceSizeEx(FResourceSizeEx& CumulativeResourceSize) override;
267
271 ENGINE_API static float GetGlobalMipMapLODBias();
272
283 bool GetResourceMemSettings(int32 FirstMipIdx, int32& OutSizeX, int32& OutSizeY, int32& OutNumMips, uint32& OutTexCreateFlags);
284
295 ENGINE_API void UpdateTextureRegions(int32 MipIndex, uint32 NumRegions, const FUpdateTextureRegion2D* Regions, uint32 SrcPitch, uint32 SrcBpp, uint8* SrcData, TFunction<void(uint8* SrcData, const FUpdateTextureRegion2D* Regions)> DataCleanupFunc = [](uint8*, const FUpdateTextureRegion2D*){});
296
297#if WITH_EDITOR
298
303
306 virtual void PostEditUndo() override;
307
308#endif // WITH_EDITOR
309
310#if WITH_EDITORONLY_DATA
315 UPROPERTY();
317
327
332 virtual bool AreDownscalePropertiesEditable() const override { return MipGenSettings == TMGS_NoMipmaps || MipGenSettings == TMGS_FromTextureGroup; }
333#endif
334
337
340
342 ENGINE_API static class UTexture2D* CreateTransientFromImage(const FImage* InImage, const FName InName = NAME_None);
343
349
350 UFUNCTION(BlueprintCallable, meta=(DisplayName = "GetCPUCopy"), Category = "Rendering|Texture")
352
353
357 UFUNCTION(BlueprintCallable, meta=(DisplayName = "GetSizeX"), Category="Rendering|Texture")
359
363 UFUNCTION(BlueprintCallable, meta=(DisplayName = "GetSizeY"), Category="Rendering|Texture")
365
371
379
383 virtual bool IsVirtualTexturedWithContinuousUpdate() const { return false; }
384
389 virtual bool IsVirtualTexturedWithSinglePhysicalSpace() const { return false; }
390
396 virtual bool IsVirtualTexturedWithSinglePhysicalPool() const { return false; }
397};
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
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
EMaterialValueType
Definition MaterialValueType.h:15
#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
EPixelFormat
Definition PixelFormat.h:16
@ PF_B8G8R8A8
Definition PixelFormat.h:19
uint32 GetNumMips(uint32 MipSize)
Definition ReflectionEnvironmentCapture.h:20
ETextureMipCount
Definition TextureDefines.h:505
TextureAddress
Definition TextureDefines.h:496
ETextureClass
Definition TextureDefines.h:299
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Archive.h:1208
Definition AssetRegistryTagsContext.h:98
Definition NameTypes.h:617
Definition ObjectSaveContext.h:244
Definition ResourceArray.h:178
Definition Texture2DResource.h:16
Definition Texture2DUpdate.h:54
Definition TextureResource.h:103
Definition ArrayView.h:139
Definition Array.h:670
Definition EnumAsByte.h:22
Definition AndroidPlatformMisc.h:14
Definition IndirectArray.h:20
Definition UnrealString.h.inl:34
Definition Texture2D.h:26
FIntPoint GetImportedSize() const
Definition Texture2D.h:42
virtual uint32 GetSurfaceArraySize() const override
Definition Texture2D.h:134
virtual void RefreshSamplerStates()
Definition Texture2D.cpp:1505
virtual bool IsVirtualTexturedWithContinuousUpdate() const
Definition Texture2D.h:383
FSharedImageConstRefBlueprint Blueprint_GetCPUCopy() const
Definition Texture2D.cpp:1391
int32 Blueprint_GetSizeY() const
Definition Texture2D.cpp:1401
virtual float GetSurfaceWidth() const override
Definition Texture2D.h:131
virtual bool IsCurrentlyVirtualTextured() const override
Definition Texture2D.cpp:1520
virtual TextureAddress GetTextureAddressX() const override
Definition Texture2D.h:135
virtual bool IsVirtualTexturedWithSinglePhysicalSpace() const
Definition Texture2D.h:389
ENGINE_API FSharedImageConstRef GetCPUCopy() const
Definition Texture2D.cpp:1371
virtual TextureAddress GetTextureAddressY() const override
Definition Texture2D.h:136
virtual float GetSurfaceDepth() const override
Definition Texture2D.h:133
static ENGINE_API class UTexture2D * CreateTransient(int32 InSizeX, int32 InSizeY, EPixelFormat InFormat=PF_B8G8R8A8, const FName InName=NAME_None, TConstArrayView64< uint8 > InImageData=TConstArrayView64< uint8 >())
Definition Texture2D.cpp:1269
ENGINE_API int32 GetSizeY() const
Definition Texture2D.cpp:365
virtual bool IsVirtualTexturedWithSinglePhysicalPool() const
Definition Texture2D.h:396
ENGINE_API int32 GetSizeX() const
Definition Texture2D.cpp:349
int32 Blueprint_GetSizeX() const
Definition Texture2D.cpp:1335
virtual int32 CalcCumulativeLODSize(int32 NumLODs) const final override
Definition Texture2D.h:148
static ENGINE_API class UTexture2D * CreateTransientFromImage(const FImage *InImage, const FName InName=NAME_None)
Definition Texture2D.cpp:1179
FTexture2DResourceMem * ResourceMem
Definition Texture2D.h:100
virtual float GetSurfaceHeight() const override
Definition Texture2D.h:132
int32 GetMinTextureResidentMipCount() const
Definition Texture2D.h:183
Definition TextureAllMipDataProviderFactory.h:26
Definition Texture.h:1219
Definition ImageCore.h:416
Definition UnrealType.h:6865
Definition StreamingManagerTexture.h:32
Definition ResourceSize.h:31
Definition ImageCoreBP.h:15
Definition StreamingTexture.h:23
Definition TextureResource.h:46
Definition Texture.h:839
Definition RHITypes.h:127
Definition ObjectPtr.h:488
Definition IntPoint.h:25
Definition Object.h:827