/Engine/Plugins/Runtime/RigVM/Source/RigVM/Public/RigVMCore/RigVMMemoryDeprecated.h
The register represents an address with the VM's memory. Within a register we can store arbitrary data, so it provides a series of properties to describe the memory location. Registers also support the notion of slices. A slice is a complete copy of the memory - so for example if your register stores 4 Vectors, then a slice would contain 48 bytes (4 * 3 * 4). The register can however store multiple slices / copies of that if needed. Slices can be used to provide per-invocation memory to functions within the same register. An integrator for example that needs to store a simulated position might want access to a separate memory per loop iteration.
[USTRUCT](Programming/UnrealArchitecture/Reference/Structs)() struct FRigVMRegister
uint8
AlignmentBytes
The number of leading bytes for alignment.
FName
BaseCPPType
Defines the CPP type used for the register This is only used for debugging purposes in editor.
TObjectPtr<UOb...
BaseCPPTypeObject
The resolvedUScriptStruct/UObject(in the future) used for debugging.
bool
bIsArray
If true defines this register as an array.
bool
bIsDynamic
If true defines this register to use dynamic storage.
uint32
ByteIndex
The index of the first work byte.
uint16
ElementCount
The number of elements in this register (for example the number of elements in an array)
uint16
ElementSize
The size of each store element (for example 4 for a float)
FName
Name
The name of the register (can be None)
int32
ScriptStructIndex
For struct registers this is the index of the struct used - otherwise INDEX_NONE
uint16
SliceCount
The number of slices (complete copies) (for example the number of iterations on a fixed loop) Potentially redundant state - can be removed.
uint16
TrailingBytes
The number of trailing bytes.
ERigVMRegisterT...
Type
The type of register (plain, name, string, etc.)