UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
NaniteFixupChunk.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
8#include "NaniteDefinitions.h"
9
10#define NANITE_FIXUP_FLAG_INSTALLED 1
11
12
13namespace Nanite
14{
15
17{
18public:
19 struct FHeader
20 {
25 uint16 NumReconsiderPages; // Pages that need to be reconsidered for fixup when this page is installed/uninstalled. The last pages of any groups in the page.
31
49
50 // TODO: Consider further trimming structs and/or omitting some of the offsets where we don't need random access
60
71
83
84 static constexpr uint32 GetSize(uint32 NumGroupFixups, uint32 NumPartFixups, uint32 NumParentFixups, uint32 NumHierarchyLocations, uint32 NumReconsiderPages, uint32 NumClusterIndices)
85 {
86 return sizeof(FHeader) +
87 NumGroupFixups * sizeof(FGroupFixup) +
88 NumPartFixups * sizeof(FPartFixup) +
89 NumParentFixups * sizeof(FParentFixup) +
90 NumHierarchyLocations * sizeof(FHierarchyLocation) +
91 NumReconsiderPages * sizeof(uint16) +
92 NumClusterIndices * sizeof(uint8);
93 }
94
96 {
98 FGroupFixup* Ptr = (FGroupFixup*)((uint8*)&Header + GetSize(0, 0, 0, 0, 0, 0));
99 return Ptr[Index];
100 }
101
103 {
105 FPartFixup* Ptr = (FPartFixup*)((uint8*)&Header + GetSize(Header.NumGroupFixups, 0, 0, 0, 0, 0));
106 return Ptr[Index];
107 }
108
115
122
129
130
137
142};
143
144}
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
uint8_t uint8
Definition binka_ue_file_header.h:8
uint16_t uint16
Definition binka_ue_file_header.h:7
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition NaniteFixupChunk.h:17
struct Nanite::FFixupChunk::FHeader Header
uint8 & GetClusterIndex(uint32 Index) const
Definition NaniteFixupChunk.h:131
uint32 GetSize() const
Definition NaniteFixupChunk.h:138
FGroupFixup & GetGroupFixup(uint32 Index) const
Definition NaniteFixupChunk.h:95
FPartFixup & GetPartFixup(uint32 Index) const
Definition NaniteFixupChunk.h:102
static constexpr uint32 GetSize(uint32 NumGroupFixups, uint32 NumPartFixups, uint32 NumParentFixups, uint32 NumHierarchyLocations, uint32 NumReconsiderPages, uint32 NumClusterIndices)
Definition NaniteFixupChunk.h:84
uint16 & GetReconsiderPageIndex(uint32 Index) const
Definition NaniteFixupChunk.h:123
FParentFixup & GetParentFixup(uint32 Index) const
Definition NaniteFixupChunk.h:109
FHierarchyLocation & GetHierarchyLocation(uint32 Index) const
Definition NaniteFixupChunk.h:116
Definition SkinnedMeshComponent.h:50
void SetBits(uint32 &Value, uint32 Bits, uint32 NumBits, uint32 Offset)
Definition NaniteResources.h:82
U16 Index
Definition radfft.cpp:71
Definition NaniteFixupChunk.h:73
uint16 NumPartFixups
Definition NaniteFixupChunk.h:78
FPageRangeKey PageDependencies
Definition NaniteFixupChunk.h:74
uint32 Flags
Definition NaniteFixupChunk.h:75
uint16 FirstParentFixup
Definition NaniteFixupChunk.h:80
uint16 NumParentFixups
Definition NaniteFixupChunk.h:81
uint16 FirstPartFixup
Definition NaniteFixupChunk.h:77
Definition NaniteFixupChunk.h:20
uint32 NumHierarchyLocations
Definition NaniteFixupChunk.h:28
uint16 Pad
Definition NaniteFixupChunk.h:26
uint32 NumParentFixups
Definition NaniteFixupChunk.h:27
uint16 Magic
Definition NaniteFixupChunk.h:21
uint16 NumReconsiderPages
Definition NaniteFixupChunk.h:25
uint16 NumGroupFixups
Definition NaniteFixupChunk.h:22
uint32 NumClusterIndices
Definition NaniteFixupChunk.h:29
uint16 NumPartFixups
Definition NaniteFixupChunk.h:23
uint16 NumClusters
Definition NaniteFixupChunk.h:24
Definition NaniteFixupChunk.h:33
void SetChildIndex(uint32 Index)
Definition NaniteFixupChunk.h:46
void SetNodeIndex(uint32 Index)
Definition NaniteFixupChunk.h:47
uint32 GetChildIndex() const
Definition NaniteFixupChunk.h:43
uint32 GetNodeIndex() const
Definition NaniteFixupChunk.h:44
uint32 ChildIndex_NodeIndex
Definition NaniteFixupChunk.h:34
FHierarchyLocation(uint32 NodeIndex, uint32 ChildIndex)
Definition NaniteFixupChunk.h:36
Definition NaniteFixupChunk.h:62
uint16 PartFixupIndex
Definition NaniteFixupChunk.h:66
uint16 NumClusterIndices
Definition NaniteFixupChunk.h:68
uint16 FirstClusterIndex
Definition NaniteFixupChunk.h:69
uint16 PageIndex
Definition NaniteFixupChunk.h:63
uint16 PartFixupPageIndex
Definition NaniteFixupChunk.h:65
Definition NaniteFixupChunk.h:52
uint8 StartClusterIndex
Definition NaniteFixupChunk.h:54
uint32 FirstHierarchyLocation
Definition NaniteFixupChunk.h:57
uint16 PageIndex
Definition NaniteFixupChunk.h:53
uint32 NumHierarchyLocations
Definition NaniteFixupChunk.h:58
uint8 LeafCounter
Definition NaniteFixupChunk.h:55
Definition NaniteResources.h:217