UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Texture2DArray.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 "Engine/Texture2D.h"
8#include "Texture2DArray.generated.h"
9
11
12#define MAX_ARRAY_SLICES 512
13
14UCLASS(HideCategories = Object, MinimalAPI, BlueprintType)
16{
18
19
20 FTexturePlatformData* PrivatePlatformData;
21
22public:
24 ENGINE_API void SetPlatformData(FTexturePlatformData* PlatformData);
26 ENGINE_API FTexturePlatformData* GetPlatformData();
28 ENGINE_API const FTexturePlatformData* GetPlatformData() const;
29
30#if WITH_EDITOR
31 TMap<FString, FTexturePlatformData*> CookedPlatformData;
32#endif
33
34 ENGINE_API int32 GetSizeX() const;
35 ENGINE_API int32 GetSizeY() const;
36 ENGINE_API int32 GetArraySize() const;
38 ENGINE_API EPixelFormat GetPixelFormat() const;
39
46
47 //~ Begin UTexture Interface
48 virtual ETextureClass GetTextureClass() const override { return ETextureClass::Array; }
49 virtual void Serialize(FArchive& Ar) override;
50 virtual void PostLoad() override;
51 virtual void GetAssetRegistryTags(FAssetRegistryTagsContext Context) const override;
52 UE_DEPRECATED(5.4, "Implement the version that takes FAssetRegistryTagsContext instead.")
53 virtual void GetAssetRegistryTags(TArray<FAssetRegistryTag>& OutTags) const override;
54 virtual FString GetDesc() override;
56 virtual float GetSurfaceWidth() const override { return static_cast<float>(GetSizeX()); }
57 virtual float GetSurfaceHeight() const override { return static_cast<float>(GetSizeY()); }
58 virtual float GetSurfaceDepth() const override { return 0.0f; }
59 virtual uint32 GetSurfaceArraySize() const override { return GetArraySize(); }
60 virtual TextureAddress GetTextureAddressX() const override { return AddressX; }
61 virtual TextureAddress GetTextureAddressY() const override { return AddressY; }
62 virtual TextureAddress GetTextureAddressZ() const override{ return AddressZ; }
63 virtual FTextureResource* CreateResource() override;
64#if WITH_EDITOR
65 ENGINE_API virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
69#endif // WITH_EDITOR
70 virtual void UpdateResourceWithParams(EUpdateResourceFlags InFlags) override;
71 virtual EMaterialValueType GetMaterialType() const override { return MCT_Texture2DArray; }
72 virtual FTexturePlatformData** GetRunningPlatformData() override;
73#if WITH_EDITOR
74 virtual bool IsDefaultTexture() const override;
75 virtual TMap<FString, FTexturePlatformData*>* GetCookedPlatformData() override { return &CookedPlatformData; }
76#endif // WITH_EDITOR
77 //~ End UTexture Interface
78
80 UPROPERTY(EditAnywhere, Category = Source2D, meta = (DisplayName = "Address X"))
82
84 UPROPERTY(EditAnywhere, Category = Source2D, meta = (DisplayName = "Address Y"))
86
88 UPROPERTY(EditAnywhere, Category = Source2D, meta = (DisplayName = "Address Z"))
90
91#if WITH_EDITORONLY_DATA
93 UPROPERTY(EditAnywhere, Category = Source2D, meta = (DisplayName = "Source Textures", EditCondition = bSourceGeneratedFromSourceTexturesArray, EditConditionHides, HideEditConditionToggle, RequiredAssetDataTags = "IsSourceValid=True"))
95
102 UPROPERTY(Transient, SkipSerialization)
104#endif
105
108
115 uint32 CalcTextureMemorySize(int32 MipCount) const;
116
124
125#if WITH_EDITOR
129 virtual uint32 GetMaximumDimension() const override;
130
131#endif
132
133 //~ Begin UStreamableRenderAsset Interface
134 virtual int32 CalcCumulativeLODSize(int32 NumLODs) const final override { return CalcTextureMemorySize(NumLODs); }
135 virtual bool StreamOut(int32 NewMipCount) final override;
136 virtual bool StreamIn(int32 NewMipCount, bool bHighPrio) final override;
137 //~ End UStreamableRenderAsset Interface
139
140};
#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
return true
Definition ExternalRpcRegistry.cpp:601
EMaterialValueType
Definition MaterialValueType.h:15
@ MCT_Texture2DArray
Definition MaterialValueType.h:32
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#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
bool GSupportsTexture2DArrayStreaming
Definition Texture2DArray.cpp:38
ETextureMipCount
Definition TextureDefines.h:505
TextureAddress
Definition TextureDefines.h:496
ETextureClass
Definition TextureDefines.h:299
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Archive.h:1208
Definition AssetRegistryTagsContext.h:98
Definition NameTypes.h:617
Definition TextureResource.h:103
Definition SharedBuffer.h:218
Definition Array.h:670
Definition EnumAsByte.h:22
Definition UnrealString.h.inl:34
Definition ContainerAllocationPolicies.h:894
Definition Texture2DArray.h:16
virtual bool StreamOut(int32 NewMipCount) final override
Definition Texture2DArray.cpp:659
virtual TextureAddress GetTextureAddressX() const override
Definition Texture2DArray.h:60
virtual TextureAddress GetTextureAddressZ() const override
Definition Texture2DArray.h:62
virtual TextureAddress GetTextureAddressY() const override
Definition Texture2DArray.h:61
uint32 CalcTextureMemorySize(int32 MipCount) const
Definition Texture2DArray.cpp:222
virtual int32 CalcCumulativeLODSize(int32 NumLODs) const final override
Definition Texture2DArray.h:134
virtual ETextureClass GetTextureClass() const override
Definition Texture2DArray.h:48
static ENGINE_API class UTexture2DArray * CreateTransient(int32 InSizeX, int32 InSizeY, int32 InArraySize, EPixelFormat InFormat=PF_B8G8R8A8, const FName InName=NAME_None)
Definition Texture2DArray.cpp:52
virtual uint32 CalcTextureMemorySizeEnum(ETextureMipCount Enum) const override
Definition Texture2DArray.cpp:258
virtual float GetSurfaceHeight() const override
Definition Texture2DArray.h:57
virtual uint32 GetSurfaceArraySize() const override
Definition Texture2DArray.h:59
virtual bool StreamIn(int32 NewMipCount, bool bHighPrio) final override
Definition Texture2DArray.cpp:671
int32 GetNumResidentMips() const
Definition Texture2DArray.cpp:711
virtual EMaterialValueType GetMaterialType() const override
Definition Texture2DArray.h:71
virtual float GetSurfaceDepth() const override
Definition Texture2DArray.h:58
Definition Texture2D.h:26
Definition Texture.h:1219
Definition UnrealType.h:6865
Definition ResourceSize.h:31
Definition Texture.h:839
Definition ObjectPtr.h:488