Commit Graph

11 Commits

Author SHA1 Message Date
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
michael noland
09296185bc Fixed a 'disregard for GC' violation in cooked games by adding the per-platform platform settings objects to the root set once again
#jira UE-143350
#jira UE-143322
#jira UE-143319
#preflight 62145a13bb0ae5be702d97e6
#rb jack.porter, nick.darnell
#lockdown julien.marchand

#ROBOMERGE-AUTHOR: michael.noland
#ROBOMERGE-SOURCE: CL 19074306 in //UE5/Release-5.0/... via CL 19090559
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19135154 by michael noland in ue5-main branch]
2022-02-24 20:03:50 -05:00
michael noland
c8dc8362b7 Prevent a crash when there is more than one kind of UPlatformSettings usage in a project
- Removed the problematic static that caused the crash and introduced a new caching system via a UPlatformSettingsManager class that keeps explicit references to the settings instead of adding them to the root
- Switched the platform names to be more consistently FName instead of roundtripping through FString

- Slightly unrelated: Added DeterminesOutputType metadata to FindParentWidgetOfType to avoid needing an extra cast in typical usage

#jira UE-142875
#rb nick.darnell
#preflight 620c788a252ef638b5806fd7

#ROBOMERGE-AUTHOR: michael.noland
#ROBOMERGE-SOURCE: CL 19060400 in //UE5/Release-5.0/... via CL 19076932
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19120907 by michael noland in ue5-main branch]
2022-02-24 14:23:31 -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
nick darnell
688f42b846 PlatformSettings - Adding a common utility function for getting the platform inis that are applicable to the running project.
#ROBOMERGE-SOURCE: CL 16716121 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v835-16672529)

[CL 16716124 by nick darnell in ue5-release-engine-test branch]
2021-06-17 21:07:16 -04:00
nick darnell
9e0bf96273 Fixing several CIS issues with IWUY.
#ROBOMERGE-SOURCE: CL 16606760 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v828-16531559)

[CL 16606770 by nick darnell in ue5-release-engine-test branch]
2021-06-09 12:12:20 -04:00
nick darnell
055efdf0ea Project Settings - Adding a way to easily introduce per platform settings objects that are correctly saved outside the game ini, and instead store their configuration to each platform's NDA'ed location, if they're a confidential platform. These platform options are kept in sync with what platforms you have enabled for your project (though a restart is required to see that reflected in the settings).
The base class of any per platform settings.  The pattern for using these is as follows.

Step 1) Subclass UPlatformSettings, UMyPerPlatformSettings : public UPlatformSettings.

Step 2) For your system should already have a UDeveloperSettings that you created so that
        users can customize other properties for your system in the project.  On that class
        you need to create a property of type FPerPlatformSettings, e.g.
        UPROPERTY(EditAnywhere, Category=Platform)
        FPerPlatformSettings PlatformOptions

Step 3) In your UDeveloperSettings subclasses construct, there should be a line like this,
        PlatformOptions.Settings = UPlatformSettings::GetAllPlatformSettings<UMyPerPlatformSettings>();
        This will actually ensure that you initialize the settings exposed in the editor to whatever
        the current platform configuration is for them.

Step 4) Nothing else needed.  In your system code, you will just call
        UMyPerPlatformSettings* MySettings = UPlatformSettings::GetSettingsForPlatform<UMyPerPlatformSettings>()
        that will get you the current settings for the active platform, or the simulated platform in the editor.

Josh.Adams, Michael.Noland, Daren.Cheng
[FYI] Josh.Adams, Michael.Noland, Daren.Cheng

#ROBOMERGE-SOURCE: CL 16603959 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v828-16531559)

[CL 16603966 by nick darnell in ue5-release-engine-test branch]
2021-06-09 09:15:21 -04:00
Marc Audy
cac1fe0019 Merge UE5/Release-Engine-Staging @ CL# 15299266 to UE5/Main
This represents UE4/Main @ CL# 15277572

[CL 15299962 by Marc Audy in ue5-main branch]
2021-02-03 14:57:28 -04:00
Josh Adams
bec95f7d1c - Breaking a circular references that was on Mac but not Windows (editor compiles and runs on Windows, Mac still compiling)
#rb none

[CL 14837715 by Josh Adams in ue5-main branch]
2020-12-02 15:22:18 -04:00
Marcus Wassmer
3b81cf8201 Merging using //UE5/Main_to_//UE5/Release-Engine-Staging @14384769
autoresolved files
#rb none

[CL 14384911 by Marcus Wassmer in ue5-main branch]
2020-09-24 00:43:27 -04:00
Marc Audy
a7c9001a94 Merging //UE5/Release-Engine-Staging to Main (//UE5/Main) @ 14075166
#rb
#rnx

[CL 14075271 by Marc Audy in ue5-main branch]
2020-08-11 01:36:57 -04:00