UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ChangeMaskCache.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreTypes.h"
6#include "Containers/Array.h"
8
9namespace UE::Net::Private
10{
11
53
54void FChangeMaskCache::PrepareCache(uint32 IndexCount, uint32 StorageSize)
55{
56 Indices.Reset(IndexCount);
57 Storage.Reset(StorageSize);
58}
59
61{
62 Indices.Reset();
63 Storage.Reset();
64}
65
67{
68 Indices.Empty();
69 Storage.Empty();
70}
71
73{
74 const uint32 StorageIndex = Storage.Num();
75 const uint32 WordCount = FNetBitArrayView::CalculateRequiredWordCount(BitCount);
76
79 Info.StorageOffset = StorageIndex;
80 Info.bMarkSubObjectOwnerDirty = 0U;
81 Info.bHasDirtyChangeMask = 0U;
82
83 Storage.AddZeroed(WordCount);
84
85 return Indices.Add_GetRef(Info);
86}
87
89{
92 Info.StorageOffset = 0U;
93 Info.bMarkSubObjectOwnerDirty = 0U;
94 Info.bHasDirtyChangeMask = 0U;
95
96 return Indices.Add_GetRef(Info);
97}
98
100{
101 return &Storage.GetData()[Info.StorageOffset];
102}
103
105{
106 const FCachedInfo& Info = Indices.Last();
107
108 Storage.SetNum(Info.StorageOffset, EAllowShrinking::No);
110}
111
113{
116 Info.StorageOffset = 0U;
117 Info.bMarkSubObjectOwnerDirty = 1U;
118 Info.bHasDirtyChangeMask = 0U;
119
120 return Indices.Add_GetRef(Info);
121}
122
123}
int32 InternalIndex
Definition VulkanMemory.cpp:4036
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Array.h:670
static constexpr uint32 CalculateRequiredWordCount(uint32 BitCount)
Definition NetBitArray.h:1414
Definition NetworkVersion.cpp:28
uint32 bHasDirtyChangeMask
Definition ChangeMaskCache.h:24
uint32 InternalIndex
Definition ChangeMaskCache.h:21
uint32 bMarkSubObjectOwnerDirty
Definition ChangeMaskCache.h:23
uint32 StorageOffset
Definition ChangeMaskCache.h:22
Definition ChangeMaskCache.h:17
void ResetCache()
Definition ChangeMaskCache.h:60
FCachedInfo & AddChangeMaskForObject(uint32 InternalIndex, uint32 BitCount)
Definition ChangeMaskCache.h:72
FCachedInfo & AddSubObjectOwnerDirty(uint32 InternalIndex)
Definition ChangeMaskCache.h:112
void PopLastEntry()
Definition ChangeMaskCache.h:104
FCachedInfo & AddEmptyChangeMaskForObject(uint32 InternalIndex)
Definition ChangeMaskCache.h:88
uint32 * GetChangeMaskStorage(const FCachedInfo &Info)
Definition ChangeMaskCache.h:99
TArray< uint32, TInlineAllocator< 1 > > Storage
Definition ChangeMaskCache.h:27
void PrepareCache(uint32 IndexCount, uint32 StorageSize)
Definition ChangeMaskCache.h:54
void EmptyCache()
Definition ChangeMaskCache.h:66
TArray< FCachedInfo, TInlineAllocator< 1 > > Indices
Definition ChangeMaskCache.h:26