Commit Graph

125 Commits

Author SHA1 Message Date
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
Patrick Boutot
2c45e14e5e UHT: Autogenerate the Getter/Setter accessor. The setter and getter can now also be UFunction. It allow some deprecation path.
#preflight 6239dbc5c73745c6009df1a1

[CL 19466367 by Patrick Boutot in ue5-main branch]
2022-03-22 10:39:00 -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
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
Zousar Shaker
839b11f8f9 Enforce use of TObjectPtr instead of raw pointers for member properties on all engine modules (but not all engine plugins) regardless of project and all modules used from ShooterGame.
#rb matt.peters

[CL 17313796 by Zousar Shaker in ue5-main branch]
2021-08-26 00:41:39 -04:00
Tim Smith
ba7ee2abb3 Improved the error message when a deprecated type is found in a non-deprecated function
#rb none
#rnx
#jira UE-87673

[CL 17014970 by Tim Smith in ue5-main branch]
2021-08-02 07:50:26 -04:00
Tim Smith
951597e356 Generate an error when a BlueprintNativeEvent references a const class but the parameter is not marked const.
#rb none
#rnx
#jira UE-38145
#preflight 61003b8328ba090001744a24
#preflight 610145839112370001a051ff

[CL 16981401 by Tim Smith in ue5-main branch]
2021-07-28 08:43:27 -04:00
Helge Mathee
414e76fb81 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

[CL 16970759 by Helge Mathee in ue5-main branch]
2021-07-27 13:59:20 -04:00
Tim Smith
d296a56543 Fix issue where UHT was unable to generate functions with deprecated parameters.
#rb none
#rnx
#jira UE-87673
#jira UE-61906

[CL 16938132 by Tim Smith in ue5-main branch]
2021-07-23 12:01:46 -04:00
Tim Smith
3a23d86d61 Improved the detection of class methods. Resolves issue of incorrectly matching method names in comments.
#jira UE-85807
#rb none
#rnx

[CL 16886923 by Tim Smith in ue5-main branch]
2021-07-19 14:40:11 -04:00
Tim Smith
fc9af25e52 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

[CL 16882977 by Tim Smith in ue5-main branch]
2021-07-19 09:33:26 -04:00
Tim Smith
0b925e48a2 Removed the FToken from the FFuncInfo structure.
Saved around 100MB of memory on some larger games.

#rb none
#rnx
#preflight 60d335d1be81e80001bd8772

[CL 16757044 by Tim Smith in ue5-main branch]
2021-06-23 10:47:40 -04:00
Tim Smith
cfca999345 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

[CL 16727641 by Tim Smith in ue5-main branch]
2021-06-21 09:34:39 -04:00
Tim Smith
1d9018502f Cleaning up the compiler directive code.
Add error message for when WITH_EDITOR used in shipping code to hide a property.

#rb jonathan.adamczewski
#rnx
#jira UE-48666

[CL 16687191 by Tim Smith in ue5-main branch]
2021-06-16 08:49:35 -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
e5eec0d339 Cleanup of exception and logging.
#rb self
#rnx
#preflight 60af806f388f9600014b89b4

[CL 16482659 by Tim Smith in ue5-main branch]
2021-05-27 08:04:11 -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
27c18e8061 Functions are no longer required to be created at parse time.
#rb self
#rnx
#preflight 60ad8b891d784900010f7c88

[CL 16462576 by Tim Smith in ue5-main branch]
2021-05-25 22:15:51 -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