UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
VVMVerseFunction.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "UObject/Class.h"
8#include "VerseVM/VVMValue.h"
10
11#include "VVMVerseFunction.generated.h"
12
15{
16 None = 0x00000000u,
17 UHTNative = 0x00000001u,
18 UHTTaskUpdate = 0x00000002u,
19};
21
22// A UFunction wrapper for a VerseVM callee (VFunction or VNativeFunction)
23UCLASS(MinimalAPI)
25{
27
28public:
31
32#if UE_WITH_CONSTINIT_UOBJECT
33 consteval UVerseFunction(
34 UE::CodeGen::ConstInit::FObjectParams ObjectParams,
35 UE::CodeGen::ConstInit::FUFieldParams UFieldParams,
36 UE::CodeGen::ConstInit::FStructParams StructParams,
37 UE::CodeGen::ConstInit::FFunctionParams FunctionParams,
38 UE::CodeGen::ConstInit::FVerseFunctionParams InParams)
39 : Super(ObjectParams, UFieldParams, StructParams, FunctionParams)
40 , CompiledInAlternateNameUTF8(InParams.AlternateNameUTF8)
41 , VerseFunctionFlags(EVerseFunctionFlags::UHTNative)
42 {
43 }
44
45#endif
46
47 union
48 {
49#if UE_WITH_CONSTINIT_UOBJECT
50 // CONSTINIT_UOBJECT_TODO: Size increase
52#endif // UE_WITH_CONSTINIT_UOBJECT
53 // The alternate name is used between the native function declaration and the expected verse name
54 FName AlternateName = {};
55 };
56
58
60 {
61 return EnumHasAnyFlags(VerseFunctionFlags, EVerseFunctionFlags::UHTNative);
62 }
63
65 {
67 {
68 return !VerseFunction->IsUHTNative();
69 }
70 return false;
71 }
72
73#if WITH_VERSE_VM || defined(__INTELLISENSE__)
74 COREUOBJECT_API static TOptional<FName> MaybeGetUFunctionFName(const Verse::VValue&);
75
76 static void AddReferencedObjects(UObject* InThis, FReferenceCollector& Collector);
77
78 Verse::TWriteBarrier<Verse::VValue> Callee;
79#endif
80
81 virtual void Bind() override;
82
83private:
84#if WITH_VERSE_BPVM
86#endif
87};
FPlatformTypes::SIZE_T SIZE_T
An unsigned integer the same size as a pointer, the same as UPTRINT.
Definition Platform.h:1150
FPlatformTypes::UTF8CHAR UTF8CHAR
An 8-bit character containing a UTF8 (Unicode, 8-bit, variable-width) code unit.
Definition Platform.h:1137
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
constexpr bool EnumHasAnyFlags(Enum Flags, Enum Contains)
Definition EnumClassFlags.h:35
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UCLASS(...)
Definition ObjectMacros.h:776
#define UENUM(...)
Definition ObjectMacros.h:749
EFunctionFlags
Definition Script.h:132
@ FUNC_None
Definition Script.h:134
EVerseFunctionFlags
Definition VVMVerseFunction.h:15
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition NameTypes.h:617
Definition UObjectGlobals.h:1292
Definition UObjectGlobals.h:2492
Definition Class.h:181
Definition Class.h:2476
Definition Object.h:95
Definition VVMVerseFunction.h:25
static bool IsVerseGeneratedFunction(UField *Field)
Definition VVMVerseFunction.h:64
bool IsUHTNative()
Definition VVMVerseFunction.h:59
Definition FieldSystemNoiseAlgo.cpp:6
Definition Optional.h:131