Commit Graph

105 Commits

Author SHA1 Message Date
francis hurteau
94281d5ef7 Expand the check for optional class not to allow editor only properties but also prevent struct properties from containing editor only properties
#rb Tim.Smith
#preflight 628d33376c4351e37291b959

#ROBOMERGE-AUTHOR: francis.hurteau
#ROBOMERGE-SOURCE: CL 20370136 via CL 20371532 via CL 20371546 via CL 20371560
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246)

[CL 20372798 by francis hurteau in ue5-main branch]
2022-05-25 18:38:47 -04:00
Thomas Sarkanen
98c834dfd7 Control rig and RigVM changes to allow for data interface prototype to be further developed
This removes some of the dependencies on UControlRigBlueprint and replaces them with 'host' interfaces for URigVMController and URigVMGraph.
Also adds support for TScriptInterfaces in RigVM. This includes a modification of the RigVM parts of UHT.
Some of these changes are due to be reworked later to allow RigVM-hosting systems to not have to be also implemented in terms of control rig.

#rb Helge.Mathee,Sara.Schvartzman
#fyi Helge.Mathee,Sara.Schvartzman
#preflight 624d857aa64871f1a11ef3f9

[CL 19645705 by Thomas Sarkanen in ue5-main branch]
2022-04-06 08:26:45 -04:00
sara schvartzman
c7b0e74c59 Controlr Rig: UI implementation of Aggregate nodes
#jira UE-146928
#rb helge.mathee
#preflight https://horde.devtools.epicgames.com/job/62433ef7dc6183e3f5e500dc

[CL 19554694 by sara schvartzman in ue5-main branch]
2022-03-30 05:21:45 -04:00
Patrick Boutot
1e4c3973db UHT: Add FieldNotify specifier to UHT. It auto generate the UE_FIELD_NOTIFICATION_DECLARE_CLASS_DESCRIPTOR and UE_FIELD_NOTIFICATION_IMPLEMENT_CLASS_DESCRIPTOR macro. FieldNotify is only available on FProperty and UFunction member of a UCLass and if the UClass implement the INotifyFieldValueChanged interface.
#preflight 622f43d419287beb2c316755

[CL 19372159 by Patrick Boutot in ue5-main branch]
2022-03-14 09:47:28 -04:00
Helge Mathee
79aa2efe18 Control Rig: Implement upgrade path to all nodes
#rb benoit.gadreau
#jira UE-141505
#preflight https://horde.devtools.epicgames.com/job/6220faa46a33f9b416b0f292

[CL 19264381 by Helge Mathee in ue5-main branch]
2022-03-04 06:27:54 -05:00
robert manuszewski
e33b9b80b0 It's no longer required to provide an explicit setter or getter name if Setter or Getter tag are present in UPROPERTY macro. If no accessor function name is specified it will be autogenerated.
#rb Steve.Robb
#preflight 6216795ec152c67496dd3acf

#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 19170586 via CL 19170837 via CL 19170842 via CL 19170845 via CL 19170992
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19171072 by robert manuszewski in ue5-main branch]
2022-02-28 02:40:02 -05:00
marc audy
cff01aa9fa Added support for native FProperty setters and getters.
Setters and getters are native functions called by FProperties when setting property values with *_InContainer functions.
Setters and getter function names can be manually specified with Setter = Func and Getter = Func keywords inside of UPROEPRTY macro but they will also be automatically parsed if the name is not explicitly specified if the setter or getter function name matches SetPropertyName and GetPropertyName pattern.
The latter behavior can be disabled in UHT's DefaultEngine.ini by setting AutomaticSettersAndGetters=False.
ImportText and ExportTextItem functions have been deprecated and should be replaced with *_InContainer or *_Direct variants.

#rb Steve.Robb
#preflight 6210a377a83e0bcefd03d9e1

#ROBOMERGE-OWNER: marc.audy
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 19070318 via CL 19098059 via CL 19104650 via CL 19104661 via CL 19110012
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19147839 by marc audy in ue5-main branch]
2022-02-25 10:39:39 -05:00
Helge Mathee
25659c95a1 RigVM: Remove use of UE_RIGVM_UCLASS_BASED_STORAGE_DISABLED define
#rb sara.schvartzman
#jira na
#preflight https://horde.devtools.epicgames.com/job/6206623a963efc0c28d83c37

[CL 18951321 by Helge Mathee in ue5-main branch]
2022-02-11 08:48:47 -05:00
aurel cordonnier
fc542f6cfd Merge from Release-Engine-Staging @ 18081189 to Release-Engine-Test
This represents UE4/Main @18073326, Release-5.0 @18081140 and Dev-PerfTest @18045971

[CL 18081471 by aurel cordonnier in ue5-release-engine-test branch]
2021-11-07 23:43:01 -05:00
helge mathee
58e0665acc RigVM: Implementing support for new memory storage
All code is still based on the UE_RIGVM_UCLASS_BASED_STORAGE_DISABLED define, which is turned on.
So the feature / changes don't affect anything just yet.

#rb na
[FYI] jack.cai halfdan.ingvarsson
#jira na

#ROBOMERGE-SOURCE: CL 16970759 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16970901 by helge mathee in ue5-release-engine-test branch]
2021-07-27 14:04:39 -04:00
tim smith
7bb677b500 Replaced two UProperty formatting routines with UHT specific code.
#rb none
#rnx

#ROBOMERGE-SOURCE: CL 16897502 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16897512 by tim smith in ue5-release-engine-test branch]
2021-07-20 11:44:37 -04:00
tim smith
b3ec04b1e1 Change the Token to use a StringView instead of copying the text directly into two different buffers in the token. Improves performance of the tokenizer and provides a much smaller structure that can be cached for other uses.
#rb none
#rnx
#preflight 60f5732c1d824300016d0630

#ROBOMERGE-SOURCE: CL 16882977 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16882990 by tim smith in ue5-release-engine-test branch]
2021-07-19 09:35:19 -04:00
tim smith
e9e53b3b2b Removed all lookups from UObjects to UHT definition objects.
#rb none
#rnx
#preflight 60eee3a9caf0590001975c94

#ROBOMERGE-SOURCE: CL 16850095 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16850104 by tim smith in ue5-release-engine-test branch]
2021-07-14 10:49:58 -04:00
tim smith
4441c73c6d Removed the FToken from the FFuncInfo structure.
Saved around 100MB of memory on some larger games.

#rb none
#rnx
#preflight 60d335d1be81e80001bd8772

#ROBOMERGE-SOURCE: CL 16757044 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v835-16672529)

[CL 16757056 by tim smith in ue5-release-engine-test branch]
2021-06-23 10:48:20 -04:00
tim smith
ac13af7abe Removed the Class/Struct meta data class.
Fixed some API that were mistakenly setup as generic struct API instead of class API.
Removed some unused API.
No functional changes, just code reorg.

#rb none
#rnx
#preflight 60d08126d9586b0001ae3336

#ROBOMERGE-SOURCE: CL 16727641 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v835-16672529)

[CL 16727647 by tim smith in ue5-release-engine-test branch]
2021-06-21 09:35:30 -04:00
Tim Smith
9072242c05 Modify propagation of some property flags to happen after all parsing is complete. This removes a hidden restriction where parse order beyond explicit includes affected the output.
Enable concurrent parsing of headers.
Fixing uninitialized variable from prior submit.

Tested by running UHT on a sample large scale game 1000 times and verifying the output matched with a prior version of UHT.

#rb jonathan.adamczewski
#rnx
#preflight 60be0b3a0249c30001e9b0e5

[CL 16568873 by Tim Smith in ue5-main branch]
2021-06-07 08:08:33 -04:00
Tim Smith
72126e50b9 Undo //UE5/Main/Engine/Source/Programs/UnrealHeaderTool/Private/... changelist 16554523
[CL 16555686 by Tim Smith in ue5-main branch]
2021-06-03 20:34:03 -04:00
Tim Smith
3ae8fb8678 Modify propagation of some property flags to happen after all parsing is complete. This removes a hidden restriction where parse order beyond explicit includes affected the output.
Enable concurrent parsing of headers.

Tested by running UHT on a sample large scale game 1000 times and verifying the output matched with a prior version of UHT.

#rb jonathan.adamczewski
#rnx
#preflight 60b93533884c630001f06a7d

[CL 16554523 by Tim Smith in ue5-main branch]
2021-06-03 18:20:05 -04:00
Tim Smith
b6d62d54c5 Classes and ScriptStructs are now created post-parse
#rb self
#rnx

[CL 16472312 by Tim Smith in ue5-main branch]
2021-05-26 13:58:10 -04:00
Tim Smith
6dbd708a7b Removed the usage of FError::Throwf and the need for HeaderParser to set a logging context.
#rb self
#rnx
#preflight 60ae3f7f6905a60001243752

[CL 16468733 by Tim Smith in ue5-main branch]
2021-05-26 09:54:27 -04:00
Tim Smith
8d9cf63189 Properties engine types no longer need to be created during parsing.
#rb self
#rnx
#preflight 60ad1c9cbb30900001badd4b

[CL 16451820 by Tim Smith in ue5-main branch]
2021-05-25 13:02:42 -04:00
Tim Smith
4e09fb650a Implement a common meta data container to be shared between all types.
Moving more property functionality into PropertyTypes
Assorted cleanup of other methods.

#rb self
#rnx

[CL 16447199 by Tim Smith in ue5-main branch]
2021-05-25 09:43:57 -04:00
Tim Smith
16f2bed91a Remove all GetProperty calls
#rb self
#rnx
#preflight 60ac45318194e7000114aea5

[CL 16443629 by Tim Smith in ue5-main branch]
2021-05-24 21:36:39 -04:00
Tim Smith
64372c2039 Changed more routines to not use UFunction type.
Removed GetEnum as much as possible.

#rb self
#rnx
#preflight 60aba9191d02bb00011bb579

[CL 16435208 by Tim Smith in ue5-main branch]
2021-05-24 10:08:26 -04:00
Tim Smith
ad65d8180e Removed the global maps for the code generation version, RigVM, and declaration ranges.
#rb self
#rnx
#preflight 60aa80201d7849000177dd7c

[CL 16432328 by Tim Smith in ue5-main branch]
2021-05-23 13:04:58 -04:00