UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SubUVAnimation.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
7#pragma once
8
9#include "CoreMinimal.h"
11#include "UObject/Object.h"
12#include "RenderCommandFence.h"
13#include "RenderResource.h"
16#include "SubUVAnimation.generated.h"
17
18class UTexture2D;
20
21#if ENABLE_COOK_STATS
23{
24public:
25 static FCookStats::FDDCResourceUsageStats UsageStats;
26 static FCookStatsManager::FAutoRegisterCallback RegisterCookStats;
27};
28#endif
29
30// Can change this guid to force SubUV derived data to be regenerated on next load
31#define SUBUV_DERIVEDDATA_VER TEXT("9E83F251AF83E44D8192C237A7C2433E")
32
38UENUM()
44
45UENUM()
54
56{
57public:
59
60 static ENGINE_API FString GetDDCKeyString(const FGuid& StateId, int32 SizeX, int32 SizeY, int32 Mode, float AlphaThreshold, int32 OpacitySourceMode);
61 static ENGINE_API void GetFeedback(UTexture2D* SubUVTexture, int32 SubImages_Horizontal, int32 SubImages_Vertical, ESubUVBoundingVertexCount BoundingMode, float AlphaThreshold, EOpacitySourceMode OpacitySourceMode,
64 ENGINE_API void Build(UTexture2D* SubUVTexture, int32 SubImages_Horizontal, int32 SubImages_Vertical, ESubUVBoundingVertexCount BoundingMode, float AlphaThreshold, EOpacitySourceMode OpacitySourceMode);
65};
66
80
81using FSubUVVertexResourceArray UE_DEPRECATED(5.5, "FResourceArrayUploadArrayView should be used directly.") = FResourceArrayUploadArrayView;
82
87UCLASS(hidecategories=object, MinimalAPI)
89{
91
92
95 UPROPERTY(EditAnywhere, Category=SubUV)
96 TObjectPtr<UTexture2D> SubUVTexture;
97
99 UPROPERTY(EditAnywhere, Category=SubUV)
100 int32 SubImages_Horizontal;
101
103 UPROPERTY(EditAnywhere, Category=SubUV)
104 int32 SubImages_Vertical;
105
111 UPROPERTY(EditAnywhere, Category=SubUV)
113
114 UPROPERTY(EditAnywhere, Category=SubUV)
115 TEnumAsByte<enum EOpacitySourceMode> OpacitySourceMode;
116
121 UPROPERTY(EditAnywhere, Category=SubUV, meta=(UIMin = "0", UIMax = "1"))
122 float AlphaThreshold;
123
124private:
125
128
130 FRenderCommandFence ReleaseFence;
131
133 FSubUVBoundingGeometryBuffer* BoundingGeometryBuffer;
134
135public:
136
138 {
139 if (BoundingMode == BVC_FourVertices)
140 {
141 return 4;
142 }
143
144 return 8;
145 }
146
148 {
149 if (BoundingMode == BVC_FourVertices)
150 {
151 return 2;
152 }
153
154 return 6;
155 }
156
157 inline int32 GetNumFrames() const
158 {
159 return SubImages_Vertical * SubImages_Horizontal;
160 }
161
162 inline bool IsBoundingGeometryValid() const
163 {
164 return DerivedData.BoundingGeometry.Num() != 0;
165 }
166
167 inline const FVector2f* GetFrameData(int32 FrameIndex) const
168 {
169 return &DerivedData.BoundingGeometry[FrameIndex * GetNumBoundingVertices()];
170 }
171
173 {
174 return BoundingGeometryBuffer->ShaderResourceView;
175 }
176
177 //~ Begin UObject Interface.
178 virtual void PostInitProperties() override;
179 virtual void Serialize(FStructuredArchive::FRecord Record) override;
180 virtual void PostLoad() override;
181#if WITH_EDITOR
182 virtual void PreEditChange(FProperty* PropertyAboutToChange) override;
183 virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
184#endif // WITH_EDITOR
185 virtual void BeginDestroy() override;
186 virtual bool IsReadyForFinishDestroy() override;
187 virtual void FinishDestroy() override;
188 //~ End UObject Interface.
189
190private:
191 void CacheDerivedData();
192};
193
194
195
#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
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
#define UENUM(...)
Definition ObjectMacros.h:749
EOpacitySourceMode
Definition SubUVAnimation.h:47
@ OSM_RedChannel
Definition SubUVAnimation.h:50
@ OSM_ColorBrightness
Definition SubUVAnimation.h:49
@ OSM_Alpha
Definition SubUVAnimation.h:48
@ OSM_GreenChannel
Definition SubUVAnimation.h:51
@ OSM_BlueChannel
Definition SubUVAnimation.h:52
ESubUVBoundingVertexCount
Definition SubUVAnimation.h:40
@ BVC_EightVertices
Definition SubUVAnimation.h:42
@ BVC_FourVertices
Definition SubUVAnimation.h:41
Definition UnrealType.h:174
Definition RHICommandList.h:455
Definition RHIResources.h:3304
Definition RenderCommandFence.h:15
Definition StructuredArchiveSlots.h:144
Definition StructuredArchiveSlots.h:52
Definition SubUVAnimation.h:68
TArray< FVector2f > * Vertices
Definition SubUVAnimation.h:70
FShaderResourceViewRHIRef ShaderResourceView
Definition SubUVAnimation.h:71
virtual void InitRHI(FRHICommandListBase &RHICmdList) override
Definition SubUVAnimation.cpp:63
virtual void ReleaseRHI() override
Definition SubUVAnimation.cpp:76
Definition SubUVAnimation.h:56
static ENGINE_API void GetFeedback(UTexture2D *SubUVTexture, int32 SubImages_Horizontal, int32 SubImages_Vertical, ESubUVBoundingVertexCount BoundingMode, float AlphaThreshold, EOpacitySourceMode OpacitySourceMode, TArray< FText > &OutErrors, TArray< FText > &OutWarnings, TArray< FText > &OutInfo)
Definition SubUVAnimation.cpp:639
TArray< FVector2f > BoundingGeometry
Definition SubUVAnimation.h:58
static ENGINE_API FString GetDDCKeyString(const FGuid &StateId, int32 SizeX, int32 SizeY, int32 Mode, float AlphaThreshold, int32 OpacitySourceMode)
Definition SubUVAnimation.cpp:29
Definition RenderResource.h:474
Definition Array.h:670
Definition EnumAsByte.h:22
Definition Object.h:95
Definition SubUVAnimation.h:89
const FVector2f * GetFrameData(int32 FrameIndex) const
Definition SubUVAnimation.h:167
int32 GetNumBoundingVertices() const
Definition SubUVAnimation.h:137
int32 GetNumFrames() const
Definition SubUVAnimation.h:157
int32 GetNumBoundingTriangles() const
Definition SubUVAnimation.h:147
bool IsBoundingGeometryValid() const
Definition SubUVAnimation.h:162
FRHIShaderResourceView * GetBoundingGeometrySRV() const
Definition SubUVAnimation.h:172
Definition Texture2D.h:26
Definition Guid.h:109
Definition UnrealType.h:6865
Definition ResourceArray.h:31
Definition ObjectPtr.h:488