5#include "Containers/Array.h"
17#define DEBUG_LAYOUT_STATS 0
141#if DEBUG_LAYOUT_STATS
155 FStat FindWithSegmentsIterationsY;
156 FStat FindWithSegmentsIterationsX;
157 FStat FindWithSegmentsMovedPastPreviousBest;
158 FStat TestAllRowsIterationsY;
159 FStat FreeSegmentLookupCount;
160 FStat FreeSegmentRangeIterations;
161 FStat FreeSegmentFutureIterations;
162 FStat FreeSegmentFutureHit;
163 FStat FreeSegmentFutureHitStep;
164 FStat FreeSegmentFutureMiss;
165 FStat FreeSegmentFutureMissStep;
179 return Bits[ (x >> 6) + y *
Pitch ] & ( 1ull << ( x & 63 ) );
184 Bits[ (x >> 6) + y *
Pitch ] |= ( 1ull << ( x & 63 ) );
200 Bits[ (x >> 6) + y *
Pitch ] &= ~( 1ull << ( x & 63 ) );
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
ELightmapUVVersion
Definition MeshUtilitiesCommon.h:8
UE::Stats::FStats FStats
Definition StatsSystem.h:56
FStringBuilderBase & operator+=(FStringBuilderBase &Builder, ANSICHAR Char)
Definition StringBuilder.h:582
Definition Allocator2D.h:20
MESHUTILITIESCOMMON_API FMD5Hash GetRasterMD5() const
Definition Allocator2D.cpp:103
TArray< uint16 > SortedRowsIndex
Definition Allocator2D.h:131
MESHUTILITIESCOMMON_API bool TestAllColumns(const FRect &Rect, const FAllocator2D &Other, uint32 &FailedLength) const
Definition Allocator2D.cpp:353
MESHUTILITIESCOMMON_API bool FindWithSegments(FRect &Rect, const FAllocator2D &Other, TFunctionRef< bool(const FAllocator2D::FRect &)> IsBestRect) const
Definition Allocator2D.cpp:214
uint32 GetRasterHeight() const
Definition Allocator2D.h:104
MESHUTILITIESCOMMON_API uint32 GetUsedTexels() const
Definition Allocator2D.cpp:286
MESHUTILITIESCOMMON_API void FlipX(const FRect &Rect)
Definition Allocator2D.cpp:458
MESHUTILITIESCOMMON_API void CreateUsedSegments()
Definition Allocator2D.cpp:580
const uint32 Height
Definition Allocator2D.h:120
TArray< uint64 > Bits
Definition Allocator2D.h:128
const ELightmapUVVersion LayoutVersion
Definition Allocator2D.h:122
MESHUTILITIESCOMMON_API bool TestOneRun(const FRun &Run, const FRun &OtherRun, uint32 RectOffset, uint32 RectLength, uint32 PrimaryResolution, uint32 &OutFailedLength) const
Definition Allocator2D.cpp:372
MESHUTILITIESCOMMON_API void AddUsedSegment(FRun &Run, uint32 StartPos, uint32 Length)
Definition Allocator2D.cpp:699
MESHUTILITIESCOMMON_API void Alloc(FRect Rect)
Definition Allocator2D.cpp:305
MESHUTILITIESCOMMON_API void InitSegments()
Definition Allocator2D.cpp:570
MESHUTILITIESCOMMON_API void MergeSegments(const FRect &Rect, const FAllocator2D &Other)
Definition Allocator2D.cpp:798
MESHUTILITIESCOMMON_API bool TestAllRows(const FRect &Rect, const FAllocator2D &Other, uint32 &FailedLength) const
Definition Allocator2D.cpp:332
uint64 GetBit(uint32 x, uint32 y) const
Definition Allocator2D.h:177
MESHUTILITIESCOMMON_API FString ToString() const
Definition Allocator2D.cpp:142
bool Test(FRect Rect)
Definition Allocator2D.h:203
MESHUTILITIESCOMMON_API void MergeRun(FRun &Run, const FRun &OtherRun, uint32 RectOffset, uint32 RectLength, uint32 PrimaryResolution, uint32 PerpendicularResolution)
Definition Allocator2D.cpp:712
MESHUTILITIESCOMMON_API void PublishStats(int32 ChartIndex, int32 Orientation, bool bFound, const FRect &Rect, const FRect &BestRect, const FMD5Hash &ChartMD5, TFunctionRef< bool(const FAllocator2D::FRect &)> IsBestRect)
Definition Allocator2D.cpp:824
MESHUTILITIESCOMMON_API void ResetStats()
Definition Allocator2D.cpp:817
void SetBit(uint32 x, uint32 y)
Definition Allocator2D.h:182
MESHUTILITIESCOMMON_API FAllocator2D & operator=(const FAllocator2D &Other)
Definition Allocator2D.cpp:68
FAllocator2D(const FAllocator2D &Other)=default
uint32 RasterWidth
Definition Allocator2D.h:124
MESHUTILITIESCOMMON_API void InitRuns(TArray< FRun > &Runs, uint32 PrimaryResolution, uint32 PerpendicularRasterSize)
Definition Allocator2D.cpp:542
const EMode Mode
Definition Allocator2D.h:118
const uint32 Pitch
Definition Allocator2D.h:121
TArray< FRun > Columns
Definition Allocator2D.h:127
uint32 GetRasterWidth() const
Definition Allocator2D.h:103
TArray< uint16 > SortedColumnsIndex
Definition Allocator2D.h:133
MESHUTILITIESCOMMON_API void CopyRuns(TArray< FRun > &Runs, const TArray< FRun > &OtherRuns, int32 MaxSize)
Definition Allocator2D.cpp:53
EMode
Definition Allocator2D.h:23
TArray< FRun > Rows
Definition Allocator2D.h:126
MESHUTILITIESCOMMON_API bool FindBitByBit(FRect &Rect, const FAllocator2D &Other)
Definition Allocator2D.cpp:196
void ClearBit(uint32 x, uint32 y)
Definition Allocator2D.h:198
const uint32 Width
Definition Allocator2D.h:119
MESHUTILITIESCOMMON_API void FlipY(const FRect &Rect)
Definition Allocator2D.cpp:505
uint32 RasterHeight
Definition Allocator2D.h:125
MESHUTILITIESCOMMON_API void Clear()
Definition Allocator2D.cpp:42
Definition AssetRegistryState.h:50
Definition TestUtils.cpp:8
Definition Allocator2D.h:33
uint32 X
Definition Allocator2D.h:34
uint32 Y
Definition Allocator2D.h:35
uint32 H
Definition Allocator2D.h:37
uint32 W
Definition Allocator2D.h:36
Definition Allocator2D.h:49
TArray< FSegment > Segments
Definition Allocator2D.h:51
uint32 LongestSegment
Definition Allocator2D.h:50
TArray< uint16 > FreeSegmentsLookup
Definition Allocator2D.h:60
Definition Allocator2D.h:41
uint32 StartPos
Definition Allocator2D.h:42
bool operator<(const FSegment &Other) const
Definition Allocator2D.h:45
uint32 Length
Definition Allocator2D.h:43
Definition Allocator2D.h:140
uint64 GetValue() const
Definition Allocator2D.h:151
void operator+=(uint64 InValue)
Definition Allocator2D.h:150
void operator++(int)
Definition Allocator2D.h:149
Definition SecureHash.h:133
Definition ReporterGraph.h:47
Definition LinuxPlatformSplash.cpp:43
Definition StatsSystem.h:13