Commit Graph

794 Commits

Author SHA1 Message Date
robert manuszewski
d1443992e1 Deprecating ANY_PACKAGE.
This change consists of multiple changes:

Core:
- Deprecation of ANY_PACKAGE macro. Added ANY_PACKAGE_DEPRECATED macro which can still be used for backwards compatibility purposes (only used in CoreUObject)
- Deprecation of StaticFindObjectFast* functions that take bAnyPackage parameter
- Added UStruct::GetStructPathName function that returns FTopLevelAssetPath representing the path name (package + object FName, super quick compared to UObject::GetPathName) + wrapper UClass::GetClassPathName to make it look better when used with UClasses
- Added (Static)FindFirstObject* functions that find a first object given its Name (no Outer). These functions are used in places I consider valid to do global UObject (UClass) lookups like parsing command line parameters / checking for unique object names
- Added static UClass::TryFindType function which serves a similar purpose as FindFirstObject however it's going to throw a warning (with a callstack / maybe ensure in the future?) if short class name is provided. This function is used  in places that used to use short class names but now should have been converted to use path names to catch any potential regressions and or edge cases I missed.
- Added static UClass::TryConvertShortNameToPathName utility function
- Added static UClass::TryFixShortClassNameExportPath utility function
- Object text export paths will now also include class path (Texture2D'/Game/Textures/Grass.Grass' -> /Script/Engine.Texture2D'/Game/Textures/Grass.Grass')
- All places that manually generated object export paths for objects will now use FObjectPropertyBase::GetExportPath
- Added a new startup test that checks for short type names in UClass/FProperty MetaData values

AssetRegistry:
- Deprecated any member variables (FAssetData / FARFilter) or functions that use FNames to represent class names and replaced them with FTopLevelAssetPath
- Added new member variables and new function overloads that use FTopLevelAssetPath to represent class names
- This also applies to a few other modules' APIs to match AssetRegistry changes

Everything else:
- Updated code that used ANY_PACKAGE (depending on the use case) to use FindObject(nullptr, PathToObject), UClass::TryFindType (used when path name is expected, warns if it's a short name) or FindFirstObject (usually for finding types based on user input but there's been a few legitimate use cases not related to user input)
- Updated code that used AssetRegistry API to use FTopLevelAssetPaths and USomeClass::StaticClass()->GetClassPathName() instead of GetFName()
- Updated meta data and hardcoded FindObject(ANY_PACKAGE, "EEnumNameOrClassName") calls to use path names

#jira UE-99463
#rb many.people
[FYI] Marcus.Wassmer
#preflight 629248ec2256738f75de9b32

#codereviewnumbers 20320742, 20320791, 20320799, 20320756, 20320809, 20320830, 20320840, 20320846, 20320851, 20320863, 20320780, 20320765, 20320876, 20320786

#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 20430220 via CL 20433854 via CL 20435474 via CL 20435484
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246)

[CL 20448496 by robert manuszewski in ue5-main branch]
2022-06-01 03:46:59 -04:00
Tim Smith
78d9b37bdf Fixed threading issue with editor only check on optional classes. Other objects can not be inspected until parsing has been completed.
#rb self
#rnx
#fyi francis.hurteau
#preflight 6290d808b974ae8eb040e58e

[CL 20392973 by Tim Smith in ue5-main branch]
2022-05-27 10:12:44 -04:00
George Rolfe
1733b33a3f Added TIsUEnumClass trait with UHT integration
#jira none
#rb tim.smith
#rb steve.robb
#preflight 6290bb1c1f0041249bec1f57

[CL 20391947 by George Rolfe in ue5-main branch]
2022-05-27 08:28:20 -04:00
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
robert manuszewski
e579cfedf8 Removing debug code
#rb trivial
#preflight none

#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 20277682 via CL 20277694 via CL 20277695 via CL 20277698
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 20278116 by robert manuszewski in ue5-main branch]
2022-05-19 06:58:42 -04:00
daren cheng
e9549e929b Modify MVVM code generation to include module _API declarations.
By Patrick.Boutot.

#jira UE-149304
#preflight 627ec564d302e2cec852e3b5
#rb Daren.Cheng
[FYI] Patrick.Boutot

#ROBOMERGE-OWNER: daren.cheng
#ROBOMERGE-AUTHOR: daren.cheng
#ROBOMERGE-SOURCE: CL 20192647 via CL 20193234 via CL 20193246 via CL 20193249
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 20193488 by daren cheng in ue5-main branch]
2022-05-14 00:09:48 -04:00
ben zeigler
da8766633c Fix issue where BP callable functions on native interfaces were incorrectly detected as invalid
This is fallout from fixing UE-99628, this check was missed when adding NotBlueprintable as a proper keyword
#rb phillip.kavan
#preflight 62759a302e58cb727d5c144f

[CL 20166884 by ben zeigler in ue5-main branch]
2022-05-12 13:09:35 -04:00
Marc Audy
2a6c695a32 Fix UHT static analysis warnings
#codereview Tim.Smith
#rnx
#preflight

[CL 20034484 by Marc Audy in ue5-main branch]
2022-05-03 19:02:58 -04:00
Robert Manuszewski
cfcec6c12e Fixing code generation for TFieldPath property UFunction params.
#preflight 625e4fce804460ab0ff01d20
#rb Tim.Smith, Patric.Laflamme
#jira none

[CL 19804573 by Robert Manuszewski in ue5-main branch]
2022-04-19 02:17:04 -04:00
Helge Mathee
074029cadc RigVM: Automatically mark up rig structs as blueprint type in the HeaderParser
#jira na
#rb sara.schvartzman
#preflight https://horde.devtools.epicgames.com/job/6257ef0bd606fd159eb75496

[CL 19752875 by Helge Mathee in ue5-main branch]
2022-04-14 06:09:20 -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
Patrick Boutot
ac1b5333fa UHT: Support enum namespace as accessor type
#preflight 624732d2c61d8a458f615f71

[CL 19591307 by Patrick Boutot in ue5-main branch]
2022-04-01 13:25:05 -04:00
robert manuszewski
7d16318fbc Much cleaner way of copying arrays for static array getters
#preflight 62434779637925b5d3aac01b
#rb Steve.Robb

#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 19546962 via CL 19548071 via CL 19548432 via CL 19548533
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v937-19513599)

[CL 19560903 by robert manuszewski in ue5-main branch]
2022-03-30 14:17:23 -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
Devin Doucette
292008ea35 Logging: Replaced GLog->PanicFlush() with GLog->Panic()
Panic allows only one thread to become the panic thread. In panic mode, logs are only sent to panic-safe output devices. Each call to Panic flushes buffered logs to panic-safe output devices, and flushes panic-safe output devices.

#jira UE-147152
#preflight 62424814292f228e09d8a612
#rb Zousar.Shaker
#fyi Brandon.Schaefer

[CL 19545093 by Devin Doucette in ue5-main branch]
2022-03-29 13:31:48 -04:00
robert manuszewski
64305a4b12 Fixing static array properties with setters and getters not generating correct wrapper code
#rb Tim.Smith
#preflight 624307e5c51908059a979885

#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 19541948 via CL 19543263 via CL 19543382 via CL 19543410
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v937-19513599)

[CL 19544439 by robert manuszewski in ue5-main branch]
2022-03-29 12:56:22 -04:00
Helge Mathee
b25ed0b41f UnrealHeaderTool: Pass public rigvm context as const
#rb sara.schvartzman
#jira na
#preflight https://horde.devtools.epicgames.com/job/6242e392df7d23dbfee885be

[CL 19540232 by Helge Mathee in ue5-main branch]
2022-03-29 06:53:29 -04:00
Helge Mathee
0f8ad1961b RigVM: Add introspection on function arguments
#rb sara.schvartzman
#jira na
#preflight https://horde.devtools.epicgames.com/job/623b474288538cd45e13f706

[CL 19524405 by Helge Mathee in ue5-main branch]
2022-03-28 03:57:53 -04:00
Steve Robb
897dd170ab Replacement of DEPRECATED_MACRO with UE_DEPRECATED_MACRO.
#rb devin.doucette
#jira none
#preflight 623b225a7b69b01ec16118a7

[CL 19480377 by Steve Robb in ue5-main branch]
2022-03-23 12:07:25 -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
steve robb
87fb605867 TCHAR array init fixes for UTF-8 mode.
#rb devin.doucette
#preflight 6231e536e2541b4ff3af6cd2

#ROBOMERGE-AUTHOR: steve.robb
#ROBOMERGE-SOURCE: CL 19405353 via CL 19408955 via CL 19419621 via CL 19419706
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v930-19419903)

[CL 19420584 by steve robb in ue5-main branch]
2022-03-17 10:29:53 -04:00
halfdan ingvarsson
00579ea89f RigvM: Bracket Uobject / Uinterface functionality
Added new define as an overall toggle - defaults to off.
If turned on the functionality can be disabled using a console variable

#rb sara.schvartzman
#jira UE-145106
#preflight https://horde.devtools.epicgames.com/job/6230657b306f46da147a3188

#ROBOMERGE-OWNER: halfdan.ingvarsson
#ROBOMERGE-AUTHOR: helge.mathee
#ROBOMERGE-SOURCE: CL 19384087 via CL 19384325 via CL 19385988 via CL 19397856 via CL 19397869
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)

[CL 19403124 by halfdan ingvarsson in ue5-main branch]
2022-03-16 03:28:36 -04:00
halfdan ingvarsson
3bedaa8ad2 Control Rig: Remove access to private arguments of RigVMExecuteContext from RigVMUnits
#jira UE-145726
#rb helge.mathee
#preflight https://horde.devtools.epicgames.com/job/622f6b38223365469e3aad16

#ROBOMERGE-OWNER: halfdan.ingvarsson
#ROBOMERGE-AUTHOR: sara.schvartzman
#ROBOMERGE-SOURCE: CL 19383990 via CL 19384158 via CL 19385686 via CL 19397234 via CL 19397255
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)

[CL 19403001 by halfdan ingvarsson in ue5-main branch]
2022-03-16 03:25:47 -04:00
Tim Smith
25a0c64f40 Minor fix to prior change to enum parsing to fix issue where some comments were now being included when there previously were not.
#rnx
#rb trivial
#preflight 6230d56d640ce2a64afc3fdc

[CL 19389978 by Tim Smith in ue5-main branch]
2022-03-15 14:21:33 -04:00
Tim Smith
f679d1b7a3 Add support for deprecation macros for enum values in UHT
#rb trivial
#preflight 6230ac4c143c5440c8417f03

[CL 19386702 by Tim Smith in ue5-main branch]
2022-03-15 11:26:46 -04:00