2019-12-26 15:33:43 -05:00
|
|
|
// Copyright Epic Games, Inc. All Rights Reserved.
|
2014-03-14 14:13:41 -04:00
|
|
|
|
|
|
|
|
/*=============================================================================
|
|
|
|
|
KismetCompilerModule.cpp
|
|
|
|
|
=============================================================================*/
|
|
|
|
|
|
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3209340 on 2016/11/23 by Ben.Marsh
Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h.
Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms.
* Every header now includes everything it needs to compile.
* There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first.
* There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h.
* Every .cpp file includes its matching .h file first.
* This helps validate that each header is including everything it needs to compile.
* No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more.
* You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there.
* There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible.
* No engine code explicitly includes a precompiled header any more.
* We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies.
* PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files.
Tool used to generate this transform is at Engine\Source\Programs\IncludeTool.
[CL 3209342 by Ben Marsh in Main branch]
2016-11-23 15:48:37 -05:00
|
|
|
#include "KismetCompilerModule.h"
|
|
|
|
|
#include "Stats/Stats.h"
|
|
|
|
|
#include "UObject/GarbageCollection.h"
|
|
|
|
|
#include "UObject/Class.h"
|
|
|
|
|
#include "Engine/Blueprint.h"
|
|
|
|
|
#include "Stats/StatsMisc.h"
|
|
|
|
|
#include "Modules/ModuleManager.h"
|
|
|
|
|
#include "UObject/UObjectIterator.h"
|
|
|
|
|
#include "UObject/MetaData.h"
|
|
|
|
|
#include "Animation/AnimBlueprint.h"
|
|
|
|
|
#include "Engine/BlueprintGeneratedClass.h"
|
|
|
|
|
#include "Kismet2/CompilerResultsLog.h"
|
|
|
|
|
#include "KismetCompilerMisc.h"
|
2014-03-14 14:13:41 -04:00
|
|
|
#include "KismetCompiler.h"
|
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3209340 on 2016/11/23 by Ben.Marsh
Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h.
Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms.
* Every header now includes everything it needs to compile.
* There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first.
* There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h.
* Every .cpp file includes its matching .h file first.
* This helps validate that each header is including everything it needs to compile.
* No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more.
* You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there.
* There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible.
* No engine code explicitly includes a precompiled header any more.
* We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies.
* PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files.
Tool used to generate this transform is at Engine\Source\Programs\IncludeTool.
[CL 3209342 by Ben Marsh in Main branch]
2016-11-23 15:48:37 -05:00
|
|
|
|
|
|
|
|
#include "Kismet2/KismetDebugUtilities.h"
|
|
|
|
|
#include "Kismet2/KismetReinstanceUtilities.h"
|
|
|
|
|
#include "Kismet2/BlueprintEditorUtils.h"
|
2014-03-14 14:13:41 -04:00
|
|
|
|
|
|
|
|
#include "UserDefinedStructureCompilerUtils.h"
|
2015-04-10 03:30:54 -04:00
|
|
|
#include "Engine/UserDefinedStruct.h"
|
2017-06-21 10:25:35 -04:00
|
|
|
#include "IMessageLogListing.h"
|
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 3716594)
#lockdown Nick.Penwarden
============================
MAJOR FEATURES & CHANGES
============================
Change 3623720 by Phillip.Kavan
#jira UE-49239 - Temp fix for QAGame animations not updating in a nativized build.
Change summary:
- Temporarily excluded all AnimBP assets from nativization as a workaround.
Change 3626305 by Phillip.Kavan
#jira UE-49269 - Workaround fix for crash after packaging a nativized QAGame build with all AnimBP assets disabled for nativization by default.
Change 3629145 by Marc.Audy
Don't hide developer nativization tool behind ini
Change 3630849 by Marc.Audy
Fix nativization uncompilable code when using a non-referenceable term in a switch statement.
#jira UE-44085
Change 3631037 by Marc.Audy
(4.17.2) Fix crash when nativizing blueprint with MakeMap or MakeSet node in it
#jira UE-49440
Change 3631206 by Marc.Audy
Make NAME_None == TEXT("") behave the same as NAME_None == FName(TEXT(""))
Change 3631232 by Marc.Audy
Remove outdated diagnostic code throwing false positives
#jira UE-47986
Change 3631573 by Marc.Audy
Fix containers of vector, rotator, or transform placing a space between the type and the pluralization 's'
Change 3633168 by Lukasz.Furman
fixed behavior tree changing its state during latent abort,
modified order of operations during abort to: abort & wait -> change aux nodes -> execute
Change 3633609 by Marc.Audy
Don't get unneeded string
Change 3633691 by Marc.Audy
Fix copy-pasting of a collapsed graph containing a map input losing the value type
#jira UE-49517
Change 3633967 by Ben.Zeigler
Actor.h header cleanup, fix various comments and reorganize some members, saves 80 bytes per actor in a cooked Win64 build
bRunningUserConstructionScript is now private, exposed with IsRunningUserConstructionScript
Fixed a few other fields to be private that were accidentally made public in 4.17
Change 3633984 by Michael.Noland
Blueprints: Fixed a potential crash when collapsing nodes to a function when a potential entry pin had no links
Change 3634464 by Ben.Zeigler
Header cleanups for Pawn, Controller, Character, and PlayerController
Change 3636858 by Marc.Audy
In preview worlds don't display the light error sprite
#jira UE-49555
Change 3636903 by Marc.Audy
Fix numerous issues with copy/pasting editable pin bases
#jira UE-49532
Change 3638898 by Marc.Audy
Allow right-click creation of local variables in blueprint function libraries
#jira UE-49590
Change 3639086 by Marc.Audy
PR #4006: Mark UEdGraphSchema::BreakSinglePinLink as const (Contributed by leyyin)
#jira UE-49591
Change 3639445 by Marc.Audy
Fix mistaken override and virtual markup on niagara schema function.
Change 3641202 by Marc.Audy
(4.17.2) Fix crash undoing pin changes with split pins
#jira UE-49634
Change 3643825 by Marc.Audy
(4.17.2) Fix crash right clicking a struct pin when the struct it represented has been deleted
#jira UE-49756
Change 3645110 by mason.seay
Fixed up QA-ClickHUD map so it's usable and makes more sense
Change 3646428 by Dan.Oconnor
Fix for UbergraphFrame layout changing during bytecode recompile, which would cause actual ubergraph frame layout to mismatch reflection data
#jira None
Change 3647298 by Marc.Audy
PR #4016: Rename argument name for SetInputMode (Contributed by projectgheist)
#jira UE-49748
Change 3647815 by Marc.Audy
Minor performance improvements
Change 3648931 by Lina.Halper
#Compiler : fixed so that each type of BP can provide module info, and compiler info
- Moved out AnimBlueprint Compiler
- Refactored WidgetBlueprint
- DUPE - Merging using ControlRig_Dev-Framework
Change 3654310 by Marc.Audy
Shrink USkinnedMeshComponent 64 bytes
Shrink USkeletalMeshComponent 224 bytes (160 bytes internal)
Change 3654636 by Lina.Halper
Fix crashing on shutdown
#jira: UE-50004
Change 3654960 by Lina.Halper
- Fix with automation test of creation/duplication
- Fixed shut down crash with editor again due to uobject GCed
#jira: UE-50028
Change 3655023 by Ben.Zeigler
#jira UE-50101 Fix level streaming transform when PIE-duplicating a level that has been preloaded but not made visible in the editor. Instead of always saying actors have been moved we copy the source level's flag
Change 3655426 by Ben.Zeigler
#jira UE-50019 Fix issue where StreamableManager could return objects that are partially loaded if called from PostLoad. StreamableManager never wants half-loaded objects, so change it to explicitly skip them
Change 3657627 by Ben.Zeigler
#jira UE-50157 Fix EDL load dependency issue where the simple construction script/ICH are not guaranteed to be serialized in time for subobject construction
Change 3662086 by Mieszko.Zielinski
Fixed navmesh not loading properly in PIE when owning world has been duplicated-for-play #UE4
This can happen when navigation containing level is loaded via AsyncLoadPrimaryAssetList
#jira UE-50101
Change 3662294 by Ben.Zeigler
Fix enum redirects to handle non-class enums properly where a value redirect is not specified. It needs to convert from EOldEnum::Value to ENewEnum::Value before doing the name check
Change 3662825 by Mieszko.Zielinski
Fixed VisLog debug drawing crashing when using UI to change log lines to be displayed #UE4
there was a loop iterating over elements of a map and was modifying the map as it went, which is a big no-no
Change 3664424 by Marc.Audy
UE-50076 test assets #rb none #rnx
Change 3664441 by Mieszko.Zielinski
PR #3993: UE-25907: Added logging to Log Text, Log Location, and Log Box Shape (Contributed by projectgheist)
Piggybacking on this PR I've redone how visual log is using categories. Now it's using FName rather than FLogCategoryBase to indicated log category. All UE_VLOG macros have been updated.
Change 3664506 by Phillip.Kavan
#jira UE-47852 - Fix various issues with both UAT/UBT-driven and manually-configured code/data build workflows involving nativized Blueprint assets.
Change summary:
- UAT: Removed '-nativizedAssets' command-line option. It's no longer required to specify this flag when cooking/building in order to enable nativization.
- UAT: Removed AutomationTool.ProjectParams.BlueprintPluginPaths.
- UAT: Modified AutomationTool.ProjectParams.ProjectParams() to initialize the 'RunAssetNativization' field based on the current 'BlueprintNativizationMethod' config setting. This flag is now used just to direct UAT to defer invoking UBT for '-build' until after the '-cook' stage has finished.
- UAT: Modified BuildCookRun.DoBuildCookRun() to remove the 'bWarnIfPackagedWithoutNativizationFlag' case (since we removed the '-nativizedAssets' command-line option).
- UAT: Removed Project.AddBlueprintPluginPathArgument() and Project.GetBlueprintPluginPathArgument(). These utility functions are no longer needed.
- UAT: Modified Project.Cook() to remove the registration of each NativizedAssets plugin path for '-build' along with the addition of the '-nativizedAssets' argument with the platform-agnostic path to the NativizedAssets plugin when invoking UE4Editor.exe for '-cook'. This is now handled by the UE4Editor cook commandlet instead.
- UAT: Modified Project.Build() to remove the addition of the '-plugin' argument with the path to the NativizedAssets plugin when invoking UBT for '-build'. This is now handled by UBT instead.
- UBT: Modified UnrealBuildTool.ProjectFileGenerator.DiscoverExtraPlugins() to remove the previously-added search for intermediate plugin assets based on the 'AdditionalPluginDirectories' optionally found in the .uproject file. Instead, this search is now handled via a Plugins.EnumeratePlugins() LINQ query. It is also gated by a new Advanced project setting in DefaultGame.ini that defaults to off, but this way users can still add generated assets into the solution file.
- UBT: Added UnrealBuildTool.UEBuildTarget.ShouldIncludeNativizedAssets() as a utility method for checking the current 'BlueprintNativizationMethod' setting in the game's config file.
- UBT: Modified UnrealBuildTool.UEBuildTarget.CreateTarget() to confirm the existence of a NativizedAssets plugin (generated at cook time) when the project is configured for nativization. If the plugin is found, it is added to the RulesAssembly chain and the ProjectDescriptor.ForeignPlugins list. If the plugin is not found, then a BuildException is thrown informing the user that the plugin must exist in order to build (with a note to make sure to cook the target platform first).
- UE4: Added 'Lex' namespace utility functions for converting PlatformInfo::EPlatformType to/from an FString. Note: Lex::FromString() is simply a proxy to the already-existing PlatformInfo::EPlaformTypeFromString() API, but it was included for completeness.
- UE4: Removed the UProjectPackagingSettings::bWarnIfPackagedWithoutNativizationFlag. This is no longer needed since the '-nativizedAssets' command-line option has been removed.
- UE4: Added UProjectPackagingSettings::bIncludeNativizedAssetsInProjectGeneration (advanced setting). This defaults to 'false' (off). When true, running GenerateProjects.bat will also generate project files for any NativizedAssets plugins previously generated at cook time. This gives advanced users/engineers an option to include nativized Blueprint class sources in the set of generated C++ code projects for faster browsing, etc.
- UE4: Modified UProjectPackagingSettings::PostEditChangeProperty() to remove the case that handles the 'BlueprintNativizationMethod' property. When this value changes, we no longer make an attempt to modify the .uproject file.
- UE4: Removed BlueprintNativeCodeGenManifestImpl::PlatformPlaceholderPattern. This pattern string is no longer in use. Also modified the FBlueprintNativeCodeGenPaths ctor to remove the replacement logic for the pattern string.
- UE4: Modified FBlueprintNativeCodeGenPaths::GetDefaultCodeGenPaths() to construct and return a new directory pattern for the generated NativizedAssets plugin. This is now generated to: Intermediate/Plugins/NativizedAssets/<Platform>/<Type:Game|Client|Server>.
- UE4: Modified FBlueprintNativeCodeGenPaths::PluginRootDir() to no longer append "NativizedAssets" to the end of the path to the generated NativizedAssets plugin.
- UE4: Removed FCookByTheBookStartupOptions::bNativizeAssets and NativizedPluginPath (no longer in use since the '-nativizeAssets' command-line option has been removed).
- UE4: Modified UCookCommandlet::CookByTheBook() to remove initialization of the 'bNativizeAssets' field in the startup options (since the corresponding command-line argument has been removed).
- UE4: Removed FNativeCodeGenData::DestPluginPath and modified FBlueprintNativeCodeGenModule::Initialize() to remove the check for it.
- UE4: Added FBlueprintNativeCodeGenModule::ShutdownModule(). This now handles cleanup for the nativization module after the cook process has finished.
- UE4: Modified UCookCommandlet::CookByTheBook() to no longer look for the '-nativizedAssets' command-line option as well as to remove the initialization of the nativization-related startup option flags that were removed.
- UE4: Modified UCookOnTheFlyServer::StartCookByTheBook() to check the 'BlueprintNativizationMethod' config setting in order to determine whether or not to nativize assets. This replaces the '-nativizedAssets' command-line flag.
- UE4: Modified UCookOnTheFlyServer::StartCookByTheBook() to remove the case that previously handled the 'bWarnIfPackagedWithoutNativizationFlag' check. This is no longer needed since the '-nativizedAssets' flag was removed.
- UE4: Modified UCookOnTheFlyServer::CookByTheBookFinished() to unload the IBlueprintNativeCodeGenModule instance after cooking, in order to reset module state for another potential pass within the same process context.
- UE4: Modified UWidgetBlueprintGeneratedClass::InitializeTemplate() to append 'REN_ForceNoResetLoaders' to the Rename() flags so that when we shift the OldArchetype object into the transient package, it doesn't invalidate the outer package's linker. We need that to remain valid so that multiple nativized cooks within the same process don't fail.
- UE4: Modified FMainFrameActionCallbacks::PackageProject() to remove the addition of '-nativizedAssets' to the UAT command line based on project settings (this is no longer needed, as it is now handled internally by UAT).
- UE4: Modified SaveWorld() to append 'REN_ForceNoResetLoaders' to the Rename() flags so that when we rename the world instead of duplicating it, it no longer triggers a reset of *all* object loaders.
Notes:
- After this change, all nativization workflows (e.g. UAT, UBT and UE4Editor) now look to the 'BlueprintNativizationMethod' flag in the Project settings (UProjectPackagingSettings). This unifies everything on a single flag by default, and removes the feature added in 4.17 that touched the .uproject file when that setting changed (which itself introduced a couple of new regressions in that release).
- Advanced users and build engineers can override this value per task. Instructions to do that are as follows:
- For UAT/UBT/UE4Editor.exe tasks, adding '-ini:Game:[/Script/UnrealEd.ProjectPackagingSettings]:BlueprintNativizationMethod=<Disabled|Inclusive|Exclusive>' will allow the current setting to be overridden on the command line.
- When '-cook' is included on the RunUAT BuildCookRun command line, the above needs to also be embedded within the '-AdditionalCookerOptions' command-line argument. This means that if both '-cook' and '-build' are included, then both the '-ini' argument shown above as well as the same '-ini' argument embedded inside the '-AdditionalCookerOptions' argument will need to be included for the build pipeline to work properly.
- We should add a release note instructing users to check their .uproject file and remove any 'AdditionalPluginDirectories' entries that list the "Intermediate/Plugins" path. This will avoid issues when building the cooked target with UBT.
- We should also add a release note and/or documentation to explain the "advanced" build pipeline options (i.e. the '-ini' argument noted above).
Change 3665061 by Phillip.Kavan
Fix crash on load in a nativized build caused by a reference to a BP class containing a nativized enum.
Mirrored from //UE4/Release-4.18 (CL# 3664993).
#3969
#jira UE-49233
Change 3665108 by Marc.Audy
(4.18) Fix crash when diffing a blueprint whose older version's parent blueprint has been deleted
+ additional code cleanup
#jira UE-50076
Change 3665114 by Marc.Audy
Minor change that could potentially improve performance in some cases
Change 3665410 by Mieszko.Zielinski
Fixed naming of Vislog's BP API #UE4
Change 3665634 by Ben.Zeigler
#jira UE-50045 Mark PIE-duplicated packages as explicitly fully loaded to fix PIE networking crash. These used to be accidentally treated as fully loaded because it was checking the wrong package name on disk
Change 3666970 by Phillip.Kavan
Do not emit a BOM when generating nativized Blueprint asset source files encoded as UTF-8.
#jira UE-46814
Change 3667058 by Phillip.Kavan
Ensure that '-build' is always passed to BuildCookRun automation for projects configured with Blueprint nativization enabled so that it doesn't skip that stage.
Mirrored from //UE4/Release-4.18 (CL# 3667043).
#jira UE-50403
Change 3667150 by Mieszko.Zielinski
PR #4042: BT CompositeDecorator node clears RF_Transient flag for all owned Decorator nodes. (Contributed by BibbitM)
Minor tweak from the original PR - made UBehaviorTreeDecoratorGraphNode_Decorator::ResetNodeOwner protected and added UBehaviorTreeGraphNode_CompositeDecorator class a a friend.
#jira UE-50249
Change 3667152 by Mieszko.Zielinski
PR #4047: Clearing RF_Transient flag when reseting EQS node owner - single change. (Contributed by BibbitM)
#jira UE-50298
Change 3667166 by Mieszko.Zielinski
Fixed FRichCurve baking so that it doesn't loose its curvature #UE4
Also, added some baking sanity checking (like if the range is larger than a single point).
Change 3668025 by Dan.Oconnor
Added a step to the compilation manager to skip recompilation of classes that are dependent on a given classes function signatures when those signatures have not changed
#jira UE-50453
Change 3672063 by Ben.Zeigler
#jira UE-49049 Fix issue with StreamableHandle ParentHandles array being modified during iteration, I had already fixed the Cancel case but not the complete case
Change 3672306 by Ben.Zeigler
#jira UE-50571 Fix issue where PrimaryAsset blueprints would be incorrectly added to the dictionary if their base class had an active class redirect referencing it
Change 3672683 by Marc.Audy
Code cleanup
Change 3672749 by Ben.Zeigler
Fix issue where deleting a source package would not cause the generated cooked package to get deleted while doing an incremental build
Change 3672831 by Ben.Zeigler
#jira UE-50507 Add a cook/save warning when a registered PrimaryAssetId does not match the object's real exported PrimaryAssetId.
Make PrimaryDataAsset blueprintable so you can make primary assets in a blueprint-only project
Change 3673551 by Ben.Zeigler
#jira UE-50029 Fix it so data-only blueprints will never create a UCS function in the final class. If you manually compiled the blueprint or it got recompiled due to inheritance it would create a UCS function that just calls its parent, which could cause problems later on when it did not create a UCS function during normal load
Change 3675074 by mason.seay
Test map for VisLog Testing
Change 3675084 by Mieszko.Zielinski
Fixed BT editor constantly marking BT asset as dirty if it has a "RunBehavior" node #UE4
#jira UE-43430
Change 3676490 by Ben.Zeigler
#jira UE-50635 Fix it so directly blueprinting PrimaryDataAsset will give you a useful PrimaryAssetType. Unless overridden the Type of a PrimaryDataAsset will be the first native class found in the hierarchy, or the the blueprint class that directly blueprints PrimaryDataAsset
Change 3676579 by Lukasz.Furman
fixed crash in behavior tree's search rollback
Change 3676586 by Lukasz.Furman
added local scope mode to behavior tree's composite nodes
Change 3676587 by Ben.Zeigler
Swap PrimaryAssetId property customization to use the same ui as the Pin customization. This one better handles objects that aren't loaded into memory, the old Property one would show None in that case
Add browse, use selected, and clear buttons, and make ID selector font the normal property font
Change 3676715 by Lukasz.Furman
changed order of behavior tree's aux node ticking
Change 3676867 by Ben.Zeigler
#jira UE-50665 Fix issue where resolving Soft Object Ptrs that are stored inside static assets or Blueprint CDOs from PIE will return the editor actor, not the PIE actor. So when resolving a path/ptr during PIE add a failsafe to do a PIE fixup
Fix issue where Lazy pointer fixup could corrupt Soft Object Ptrs by applying the PIE fixup too early
Change 3677892 by Ben.Zeigler
Fix crash when additional level viewport sprites are added after level editor module is loaded. This is basically the same fix as CL #3491406, but for sprites
Change 3678247 by Marc.Audy
Fix static analysis warning
Change 3678357 by Ben.Zeigler
#jira UE-50696 Add some container variables to diff test to track down crashes
Change 3678385 by Ben.Zeigler
#jira UE-50696 Fix crash diffing blueprints where array properties were changed. It needs to not run the generic identical check until it's sure the container types match
Change 3678600 by Ben.Zeigler
#jira UE-50703 Fix crash when a soft actor reference is not actually pointing to an actor, treat it like a broken reference
Change 3679075 by Dan.Oconnor
Mirror 3679030 from Release-4.18
Fix crash when compiling a level blueprint that has delegates to a blueprint that it also has a direct dependency on
#jira UE-48692
Change 3679087 by Dan.Oconnor
Filter out unnecessary relink jobs from the compilation manager
#jira None
Change 3680221 by Ben.Zeigler
#jira UE-50764 Fix crash when converting a property from a soft object reference to hard, it needs to validate the class after the conversion and null if necessary
Change 3680561 by Lukasz.Furman
fixed unsafe StopTree calls in behavior tree
#jira nope
Change 3680788 by Ben.Zeigler
Fix issue where scrubbing sequencer in simulate would not modify actors. We need to temporarily set the PIE context global when doing this specific type of actor bind
Change 3683001 by mason.seay
Submitting various test maps and assets
Change 3686837 by Mieszko.Zielinski
Fixed NavMeshBoundsVolume not updating navmesh when its location gets changed via the Transform Details widget #Orion
#jira UE-50857
Change 3688451 by Marc.Audy
Fix up new material expression to work with String -> Name refactor
Change 3689097 by Mason.Seay
Test content for nativization and enum testing
Change 3689106 by Mieszko.Zielinski
Made NavMeshBoundsVolume react to undo in the editor #Orion
#jira UE-51013
Change 3689347 by Mieszko.Zielinski
Fixed a crash on FAIDynamicParam creation resulting from uninitialized member variables #UE4
Manual merge of CL#3689316 over from 4.18
#jira UE-51019
Change 3692524 by mason.seay
Moved some assets to folder for org, fixed up redirectors
Change 3692540 by mason.seay
Renaming test maps so they are clearly indicated for testing nativization
Change 3692577 by mason.seay
Deleted a bunch of old assets I created specifically for various bugs reported. All issues are closed so they're no longer needed
Change 3692724 by mason.seay
Deleting handful of assets found in developer folders of those no longer with the team. Moved assets that are still used by test maps
Change 3693184 by mason.seay
Assets for testing nativization with structs
Change 3693367 by mason.seay
Improvements to test content
Change 3695395 by Dan.Oconnor
Fix for rare linker issue, IsBlueprintFinalizationPending would return true when we were trying to force load subobjects that were now ready to be loaded. This would prevent some placeholder objects from being replaced
#jira None
Change 3695484 by Marc.Audy
Fix sound cue connection drawing policy not getting returned.
#jira UE-51032
Change 3695494 by mason.seay
More test content for nativization testing
Change 3697829 by Mieszko.Zielinski
PR #4104: Fixed a typo CaclulateMaxTilesCount to CalculateMaxTilesCount (Contributed by YuchenMei)
Change 3700541 by mason.seay
Test map for containers with function bug
Change 3703459 by Marc.Audy
Remove poorly named InverseLerp
Fix degenerate behavior returning bad value
#jira UE-50295
Change 3703803 by Marc.Audy
Clean up autos
Minor improvement to ShouldGenerateCluster
Change 3704496 by Mason.Seay
More test content for testing nativization
Change 3706314 by Marc.Audy
PR #4085: GetDefaultPawnClassForController -> BlueprintCallable (Contributed by Allar)
#jira UE-50874
Change 3707502 by Mason.Seay
Final changes to nativization test content (hopefully)
Change 3709478 by Marc.Audy
PR #4144: Exposed MassageAxisInput for inheritence (Contributed by jackknobel)
Same as CL# 3689702 implemented in Fortnite
#jira UE-51453
Change 3709967 by Marc.Audy
PR #4139: fixed a typo in a comment (Contributed by derekvanvliet)
#jira UE-51372
Change 3709970 by Marc.Audy
PR #4150: Fixed a typo in movement override comment (Contributed by ruffenman)
#jira UE-51495
Change 3709971 by Marc.Audy
PR #4149: Fixing typo on movement pawn component (Contributed by celsodantas)
#jira UE-51492
Change 3710041 by Marc.Audy
Minor code cleanup
Change 3711223 by Phillip.Kavan
Move some Blueprint nativization log spam into the verbose category.
#jira UE-49770
Change 3713398 by Marc.Audy
PR #4157: Renamed AActor::InternalTakePointDamage function's parameter. (Contributed by BibbitM)
#jira UE-51517
Change 3713601 by Marc.Audy
Fix merge error
Change 3713994 by Marc.Audy
(4.18) Just mark level script actor pending kill when the level script blueprint has been recompiled, instead of trying to send it through the destroy actor lifecycle event.
#jira UE-50738
Change 3714270 by Marc.Audy
Fix crashes with tickables as a result of virtuals not being usable in constructors/destructors
#jira UE-51534
Change 3714406 by Marc.Audy
Fix dumb inverted boolean check
Change 3716594 by Dan.Oconnor
Integrate 3681301 from 4.18
Only run OnLevelScriptBlueprintChanged when explicitly compiling a level blueprint, this matches the old behavior
#jira UE-50780, UE-51568
Change 3686450 by Marc.Audy
PinCategory, PinSubcategory, and PinName are now stored as FName instead of FString.
CreatePin has several simplified overrides so you can only specify Subcategory or SubcategoryObject or neither.
CreatePin also takes a parameter bundle for reference, const, container type, index, and value terminal type rather than a long list of default parameters.
Material Expressions now store input and output names as FName instead of FString
FNiagaraParameterHandle now stores the parameter handle, namespace, and name as FName instead of FString
Most existing pin related functions using string have been deprecated.
Change 3713796 by Marc.Audy
Added virtual GetTickableType function to FTickableBaseObject that can return Conditional (default), Always, or Never. Tickable Never objects will not get added to the tickable array or ever evaluated. Tickable Always objects do not call IsTickable and assume it will return true. Tickable Conditional objects work as in the past with IsTickable called each frame to make the determination whether to call Tick or not.
IsTickable no longer a pure virtual (defaults to true).
Applied fixes to avoid array corruption when a FTickableEditorObject is deleted during the tick phase consistent with previous fixes to FTickableGameObject.
Change 3638554 by Marc.Audy
Add enum expansion functional test to validate that the metadata ExpandEnumAsExecs works as expected.
Change 3676502 by Ben.Zeigler
Add Blueprint-only primary asset type to EngineTest, to cover testing UE-50635
[CL 3718205 by Marc Audy in Main branch]
2017-10-25 09:30:36 -04:00
|
|
|
#include "Engine/Engine.h"
|
2014-03-14 14:13:41 -04:00
|
|
|
|
|
|
|
|
DEFINE_LOG_CATEGORY(LogK2Compiler);
|
2015-01-15 15:57:51 -05:00
|
|
|
DECLARE_CYCLE_STAT(TEXT("Compile Time"), EKismetCompilerStats_CompileTime, STATGROUP_KismetCompiler);
|
|
|
|
|
DECLARE_CYCLE_STAT(TEXT("Compile Skeleton Class"), EKismetCompilerStats_CompileSkeletonClass, STATGROUP_KismetCompiler);
|
|
|
|
|
DECLARE_CYCLE_STAT(TEXT("Compile Generated Class"), EKismetCompilerStats_CompileGeneratedClass, STATGROUP_KismetCompiler);
|
2014-03-14 14:13:41 -04:00
|
|
|
|
|
|
|
|
#define LOCTEXT_NAMESPACE "KismetCompiler"
|
|
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3235800)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3194900 on 2016/11/11 by Ryan.Rauschkolb
Fixed issue where Reroute node pins weren't mirroring data properly.
#jira UE-33717
Change 3195081 on 2016/11/11 by Dan.Oconnor
This @todo was addressed
Change 3196368 on 2016/11/14 by Maciej.Mroz
Results of FBlueprintNativeCodeGenModule::IsTargetedForReplacement are cashed - optimization (cooking time).
Change 3196369 on 2016/11/14 by Maciej.Mroz
CompileDisplaysBinaryBackend, CompileDisplaysTextBackend and bDisplaysLayout features (in [Kismet] in Engine.ini) are disabled in commandlets. They slow down BP compilation.
Change 3196398 on 2016/11/14 by Ben.Cosh
Reworked the tracking of latent and expansion event tracking in the blueprint compiler for use with the blueprint profiler.
#Jira - UE-37364 - Crash: PIE with instrumented PlayerPawn_Generic added to AITestbed scene
#Proj BlueprintProfiler, KismetCompiler. BlueprintGraph, Engine
Change 3196410 on 2016/11/14 by Maciej.Mroz
Fixed crash in UK2Node_Knot::PropagatePinTypeFromInput
Change 3196852 on 2016/11/14 by Maciej.Mroz
Fixed static analysis warning.
Change 3196874 on 2016/11/14 by Maciej.Mroz
#jira UE-37778
(the issue was already fixed, but it was reintroduced, when EDL support was added).
ObjectImport->XObject is not filled prematurelly, so CreateExport is properly called each dynamic class.
Change 3197469 on 2016/11/14 by Dan.Oconnor
Fix for being able to make Sets and Maps of user defined structs that contained unhashable types (e.g. Rotator)
Change 3197703 on 2016/11/14 by Dan.Oconnor
Updated documentation comment to reflect current behavior
Change 3198167 on 2016/11/15 by Maciej.Mroz
Merged 3196582 from Dev-Core
UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.
Change 3198433 on 2016/11/15 by Ryan.Rauschkolb
Fixed Copy/pasting variable nodes hides them from a reference search
#UE-31606
Change 3198811 on 2016/11/15 by Maciej.Mroz
Fixed Knot node - it will use/propagate the type from input connection, if it's possible (intstead of the type from output connection).
Change 3198866 on 2016/11/15 by Maciej.Mroz
#jira UE-38578
Fixed infinite loading of DynamicClass in EDL.
Change 3199045 on 2016/11/15 by Phillip.Kavan
[UE-27402] Fix attached Actor-based Blueprint instance root component relative transform values after reconstruction.
change summary:
- modified FActorComponentInstanceData's ctor to exclude relative transform properties when caching root component values.
#jira UE-27402
Change 3200703 on 2016/11/16 by Mike.Beach
Marking the ease node explicitly as pure, which makes it so we can prune it from graphs when it is unused.
#jira UE-38453
Change 3201115 on 2016/11/16 by Maciej.Mroz
Nativization + EDL: "Dynamic" objects are processed by FAsyncPackage::PostLoadDeferredObjects, so the EInternalObjectFlags::AsyncLoading flag is properly cleared.
Change 3201749 on 2016/11/17 by Maciej.Mroz
In EDL a package containig a dynamic class has PKG_CompiledIn flag (the same like without EDL).
Change 3202577 on 2016/11/17 by Mike.Beach
Accounting for a change in our intermediate node mapping - the old list no longer maps expanded nodes to macro instances (instead it maps to the corresponding node in the macro graph), so we had to use a new mapping meant for this.
#jira UE-35609
Change 3204803 on 2016/11/18 by Phillip.Kavan
[UE-38607] Implicitly turn on Blueprint class nativization for dependencies.
change summary:
- added a UBlueprint::PostEditChangeProperty() override method to handle this.
#jira UE-38607
Change 3204812 on 2016/11/18 by Phillip.Kavan
[UE-38580] Implicitly turn on the "nativize" project setting when enabling nativize for any Blueprint class.
change summary:
- modified UBlueprint::PostEditChangeProperty() to update project packaging settings if necessary
#jira UE-38580
Change 3204818 on 2016/11/18 by Phillip.Kavan
[UE-38725] Interface class dependencies that are not enabled for nativization will now raise an error during nativized cooks.
change summary:
- modified FBlueprintNativeCodeGenModule::IsTargetedForReplacement() to check interface class dependencies in addition to parent class dependencies.
#jira UE-38725
Change 3204963 on 2016/11/18 by Dan.Oconnor
Create a transaction when using UBlueprintFunctionNodeSpawner* directly
#jira UE-36439
Change 3206510 on 2016/11/21 by Mike.Beach
Adding math-expression aliases for dot and cross functions ("dot" and "cross" respectively).
#jira UEBP-71
Change 3206547 on 2016/11/21 by Mike.Beach
Exposing GetReflectionVector() to Blueprints.
#jira UEBP-70
Change 3206658 on 2016/11/21 by Dan.Oconnor
Fix for compile error, digging out authorative class from trash class.
Mirror of 3206638 from Odin
#jira None
Change 3207579 on 2016/11/22 by Mike.Beach
No longer enforcing the requirement that game UFunctions have to have a category (making writing of game code easier).
#jira UE-18093
Change 3207956 on 2016/11/22 by Phillip.Kavan
[UE-38690] Fix a regression in which nested scene component subobjects would no longer be registered after construction of an instance-added component in IWCE.
change summary:
- modified the IWCE path in SSCSEditor::AddNewComponent() to ensure that any components added as a result of instancing the newly-added component are also registered.
- modified AActor::ExecuteConstruction() to ensure that non-scene, native nested component subobjects that might be created as a result of SCS execution are also registered (previously it was only considering non-scene components that were explicitly created by the SCS, or that inherited the creation method of the instance that created it).
#jira UE-38690
Change 3208217 on 2016/11/22 by Mike.Beach
Modified fix (originally from Ryan.Rauschkolb, CL 3186023):
Fixed unable to set struct variable name if name includes space
#jira UE-28435
Change 3208347 on 2016/11/22 by Mike.Beach
Merging //UE4/Dev-Main to Dev-Blueprints (//UE4/Dev-Blueprints)
Change 3208688 on 2016/11/23 by Ben.Cosh
Made a minor change that forces debugging references to the PIE world when the play in editor world is changed. This is intended to better handle mutliple game instance/world debugging scenarios.
#Jira UE-26386 - Can't hit breakpoints in blueprints for level script for server instances
#Proj Engine, UnrealEd
Change 3208712 on 2016/11/23 by Ben.Cosh
Improved handling of unwired transform struct terminal expression's in the blueprint VM compiler to remove an errant warning.
#Jira UE-32401 - "ImportText: Missing opening parenthesis" message, when a function returns Transform
#Proj KismetCompiler
Change 3209457 on 2016/11/23 by Phillip.Kavan
[UE-30479] Fix inability to edit the ISMC instance array on Actor instances when the ISMC is inherited from a Blueprint class.
change summary:
- added PPF_ForceTaggedSerialization as a means to override the CPF_SkipSerialization flag when explicit serialization of the property value is needed
- modified UProperty::ShouldSerializeValue() to check for and handle the PPF_ForceTaggedSerialization flag when the CPF_SkipSerialization flag is present
- modified UActorComponent::DetermineUCSModifiedProperties() to add the PPF_ForceTaggedSerialization flag to the custom FArchive impl
- modified FActorComponentInstanceData::FActorComponentInstanceData() to add the PPF_ForceTaggedSerialization flag to the custom FObjectWriter impl
- modified FActorComponentInstanceData::ApplyToComponent() to add the PPF_ForceTaggedSerialization flag to the custom FObjectReader impl
#jira UE-30479
Change 3209758 on 2016/11/24 by Maciej.Mroz
#jira UE-38979
Nativization: fixed error when a BP implements a native interface.
FBlueprintNativeCodeGenModule::IsTargetedForReplacement will return "DontReplace" for native class.
Change 3210376 on 2016/11/25 by Maciej.Mroz
#jira UE-39028
Fixed FBlueprintNativeCodeGenModule::FindReplacedNameAndOuter
Components in nativized BPCG SCS have replaced outer object and name while cooking.
Change 3210936 on 2016/11/28 by Phillip.Kavan
Minor revision to try and avoid a potentially expensive Contains() call when possible.
Change 3211527 on 2016/11/28 by Maciej.Mroz
Fixed map of names cooked in packages in nativized build.
Change 3211969 on 2016/11/28 by Mike.Beach
Merging //UE4/Dev-Main to Dev-Blueprints (//UE4/Dev-Blueprints)
Change 3212328 on 2016/11/28 by Dan.Oconnor
Enum, pointer and arithmetic specializations for THasGetTypeHash, as VC doesn't detect them properly.
TIsEnum moved to its own header. Submitted on behalf of steve.robb
Change 3212398 on 2016/11/28 by Dan.Oconnor
Build fix, this function is part of another change
Change 3212442 on 2016/11/28 by Dan.Oconnor
UHT now supports structs in TMap and TSet, misc. fixes to PropertyStruct's PropertyFlags detecting whether the struct type is hashable (all HasGetTypeHash flags are now computed from THasGetTypeHash). Various fixes for generating TMap/TSet code from blueprints
Change 3212578 on 2016/11/28 by Dan.Oconnor
Rename RegisterClass to avoid collsion with RegistClass macro in generated code
Change 3213668 on 2016/11/29 by Dan.Oconnor
Fix for missing CDO when instatiating some subobjects in nativized BPs
#jira UE-34980
Change 3213737 on 2016/11/29 by Dan.Oconnor
Added GetTypeHash implementation to UEnumProperty
#jira UE-39091
Change 3215225 on 2016/11/30 by Maciej.Mroz
Bunch of changes required for nativized Orion to work with EDL.
- ClientOnly, ServerOnly and EditorOnly assets are properly distinguished and handled
- Introduced FCompilerNativizationOptions
- fixed inproper references to BP instead of BPGC
- fixed generated delegate name
- hack for DefaultRootNode UE-39168
- improved NativeCodeGenrationTool
- various minor improvements
Change 3216363 on 2016/11/30 by Dan.Oconnor
Better fix for discrepency between UUserDefinedEnum::GetEnumText and UEnum::GetEnumText. Without meta data we could not look up display names, so I'm writing out the display names into a function in the BP cpp backend. This function could be generated by UHT if we wanted to correct this odd behavior for native enums
#jira UE-27735
Change 3217168 on 2016/12/01 by Maciej.Mroz
#jira UE-35390
Nativization:
Fixed compilation warning C4458: declaration of 'CurrentState' hides class member
Disabled warning C4996 (deprecated) in nativized code.
Change 3217320 on 2016/12/01 by Phillip.Kavan
[UE-38652] Selecting Blueprint assets for nativization is now integrated into the project's configuration.
change summary:
- added EProjectPackagingBlueprintNativizationMethod
- deprecated the 'bNativizeBlueprintAssets' and 'bNativizeOnlySelectedBlueprints' flags in favor of a new 'BlueprintNativizationMethod' config property in UProjectPackagingSettings
- added a new 'NativizeBlueprintAssets' config property to UProjectPackagingSettings to track/store the list of Blueprints to be nativized when the exclusive method (whitelist) is selected
- added a PostInitProperties() override to UProjectPackagingSettings; implemented to migrate from the deprecated config properties to the new method enum type
- updated FMainFrameActionCallbacks::PackageProject() to migrate to checking the enum type
- updated FBlueprintNativeCodeGenModule::IsTargetedForReplacement() to migrate to checking the enum type
- modified UProjectPackagingSettings::CanEditChange() to enable editing of the nativization whitelist only when the "exclusive" method is active
- modified UProjectPackagingSettings::PostEditChangeProperty() to add a new case for handling changes to the whitelist; changes are propagated to any Blueprint assets that are loaded
- added new Add/RemoveBlueprintAssetFromNativizationList() APIs to UProjectPackagingSettings for assisting with adding/removing Blueprint assets to/from the exclusive list (whitelist)
- deprecated the 'bNativize' flag in UBlueprint in favor of a new transient 'bSelectedForNativization' flag that is no longer serialized; this now caches whether or not the asset is present in the whitelist in the project config
- modified UBlueprint::Serialize() to both migrate from the deprecated flag to the project config/transient flag on load, as well as to propagate the value of the transient flag back to the project config on save. this means that if the user changes the value of the transient flag through the Details view, that change won't be reflected back to the project config until the Blueprint is actually saved (saving the value to the config rather than serializing to the asset)
- modified UBlueprint::PostEditChangeProperty() to remove code that was previously updating the project configuration at edit time. this functionality has been relocated to Serialize() (save time) instead.
notes:
- also completes UE-38636 (task: consolidate config options into a single drop-down)
#jira UE-38652
Change 3218124 on 2016/12/01 by Dan.Oconnor
CPF_HasGetValueTypeHash flag was not set on native UEnumProperties
#jira UE-39181
Change 3218168 on 2016/12/01 by Phillip.Kavan
Fix local var name that shadows a function param (CIS fix).
Change 3219117 on 2016/12/02 by Maciej.Mroz
#jira UE-39241 "warning C4458: declaration of XXX hides class member" In Nativized Code
Nativization:
Fixed compilation warning C4458: when local function variable hides a class variable. Names of local variables in funvtions have prefix "bpfv__".
Change 3219201 on 2016/12/02 by Mike.Beach
Keeping the "Select All Input Nodes" option from infinitely recurssing by blocking on nodes it has already selected.
#jira UE-38988
Change 3219247 on 2016/12/02 by Mike.Beach
Fixing CIS shadow variable warning from my last check in (CL 3219201).
Change 3219332 on 2016/12/02 by Maciej.Mroz
#jira HeaderParser: "private:" specifier is lost in FGameplayTag::TagName
Workaround for UE-38231
Change 3219381 on 2016/12/02 by Mike.Beach
Accounting for cyclic compile issues in cast-node's validate function, making it check the authoratative class instead of the current type. Also down grading some of the warnings to notes (suggesting the users don't need the cast).
#jira UE-39272
Change 3220224 on 2016/12/02 by Dan.Oconnor
Reduce font size for compact nodes
Change 3220476 on 2016/12/03 by Maciej.Mroz
#jira UE-35390
Better fix for UE-35390
Disabled deprecation warnings in nativized code.
Change 3221637 on 2016/12/05 by Maciej.Mroz
#jira UEBP-245
Nativization:
Forced ImportCreation while InitialLoad for DynamicClasses.
Change 3222306 on 2016/12/05 by Dan.Oconnor
Support for default values of TMap and TSet local variables
#jira UE-39239
Change 3222383 on 2016/12/05 by Dan.Oconnor
Fixed bug in Blueprint TMap function for getting values out of a TMap
Change 3222427 on 2016/12/05 by Mike.Beach
Preventing ChildActorTemplate fixups from occuring on component load, when they may instead be a placeholder object (a byproduct of deferred Blueprint loading - a guard against cyclic load problems).
#jira UE-39323
Change 3222679 on 2016/12/05 by Dan.Oconnor
Remove unused code. Had no sideeffects, other than potential for leak when struct with non-trivial dtor was allocated here.
Change 3222719 on 2016/12/05 by Dan.Oconnor
Earlier detection of invalid native map/set properties. These generate a compile error if any TMap/TSet functions are used, but will slip by undetected if not used. Working on static assert to catch them.
#jira UE-39338
Change 3224375 on 2016/12/06 by Dan.Oconnor
Add tags for testing of array diffing
Change 3224507 on 2016/12/07 by Phillip.Kavan
[UE-39055] Fix a crash caused by an object name collision that could occur when loading some older Blueprint assets.
change summary:
- added UInheritableComponentHandler::FixComponentTemplateName()
- modified UInheritableComponentHandler::PostLoad() to check for and correct stale records that cause a collision with the corrected name
- added a UInheritableComponentHandler::Serialize() override to ensure that UsingCustomVersion() is called for the asset containing the ICH (already happening in UBlueprint::Serialize(), but added for consistency with other usage)
- modified USimpleConstructionScript::Serialize() to ensure that UsingCustomVersion() is called for the asset containing the SCS (same reason as above)
#jira UE-39055
Change 3225572 on 2016/12/07 by Samuel.Proctor
Test assets for TSet/TMap testing. Includes new native class for testing containers. #rb none
Change 3225577 on 2016/12/07 by Samuel.Proctor
New test map for Array, TSet and Tmap testing.
Change 3226281 on 2016/12/07 by Dan.Oconnor
Container test asset, needs to be in p4 for diff tool tests.
Change 3226345 on 2016/12/07 by Dan.Oconnor
Another revision of test data
Change 3228496 on 2016/12/09 by Ben.Cosh
This change adds extra information to component template arrays so that the component class can be determined in builds that strip out objects of certain class types such as the editor dedicated server build.
#Jira UE-38842 - "LogBlueprint:Error: [Compiler BP_Skybox_World_RandomTrees_01] Error Can't connect pins ReturnValue and Target" after entering a lobby in a synced server
#Proj KismetCompiler, BlueprintGraph, UnrealEd, Core, Engine, Kismet, BlueprintCompilerCppBackend
Change 3230120 on 2016/12/09 by Dan.Oconnor
Merging //UE4/Dev-Main to Dev-Blueprints (//UE4/Dev-Blueprints)
Change 3230700 on 2016/12/12 by Samuel.Proctor
Removing some array test properties from container test class that were not needed. Also updated struct element to better reflect testing purpose. #rb none
Change 3230926 on 2016/12/12 by Samuel.Proctor
Missed a file on previous container test native QA asset checkin. #rb none
Change 3231246 on 2016/12/12 by Dan.Oconnor
PR #3003: New Feature: In-editor diff of arrays and structs now highlights diff. (Contributed by CA-ADuran).
I've added TSet and TMap support as well.
Change 3231311 on 2016/12/12 by Dan.Oconnor
Handle class load failure
#jira UE-39480
Change 3231387 on 2016/12/12 by Dan.Oconnor
Shadow variable fixes
Change 3231501 on 2016/12/12 by Dan.Oconnor
More shadow fixes
Change 3231584 on 2016/12/12 by Maciej.Mroz
#jira UE-39636
Replaced obsolate macro usage.
#fyi Dan.Oconnor
Change 3231685 on 2016/12/12 by Mike.Beach
PR #3032: Fixed category for IsValidIndex (Contributed by elFarto)
#jira UE-39660
Change 3231689 on 2016/12/12 by Maciej.Mroz
Nativization: Fixed Dependency list generation.
Change 3231765 on 2016/12/12 by Phillip.Kavan
[UE-38903] Auto-enable exclusive Blueprint nativization only after explicitly selecting the first asset.
change summary:
- fixed up the auto-enable logic on save in UBlueprint::Serialize()
#jira UE-38903
#fyi Maciej.Mroz
Change 3231837 on 2016/12/12 by Dan.Oconnor
Restore hack to keep objects referenced by bytecode alive while in editor
#jira UE-38486
Change 3232085 on 2016/12/13 by Phillip.Kavan
Compile fix.
Change 3232435 on 2016/12/13 by Ben.Cosh
Fix for a bug introduced in CL 3228496 that caused component templates to fail to be identified by name and resulted in blueprint compilation issues for add component nodes.
#Jira UE-39623 - Unknown template referenced by Add Component Node
#Proj BlueprintGraph, Engine
Change 3232437 on 2016/12/13 by Maciej.Mroz
#jira UE-33021
Remove an obsolete warning.
Change 3232564 on 2016/12/13 by Ben.Cosh
This adds extra component template renaming propagation and checking for the blueprint generated class and blueprint skeleton class.
#Jira UE-39623 - Unknown template referenced by Add Component Node
#Proj BlueprintGraph
- Implementing a bit of review feedback and some safety checking.
Change 3232598 on 2016/12/13 by Maciej.Mroz
Nativization:
stati functions cannot be const, so no workaound (_Inner function) specyfic to const functions is necessary
#jira UE-39518
Change 3232601 on 2016/12/13 by Phillip.Kavan
[UE-38975] Warn on BuildCookRun or a standalone cook when the -nativizeAssets flag is omitted from the command line for a nativization-enabled project.
change summary:
- added 'bWarnIfPackagedWithoutNativizationFlag' to UProjectPackagingSettings (default = true)
- modified UCookOnTheFlyServer::StartCookByTheBook() to check for the presence of the -nativizeAssets flag and emit a warning for unexpected omission from the command line
- modified UAT to include a warning for the BuildCookRun command when -build is specified with the same unexpected omission of the -nativizeAssets flag on the UAT command line
#jira UE-38975
Change 3232749 on 2016/12/13 by Mike.Beach
Moving Blueprint nativization out of the experimental category.
#jira UE-39358
Change 3233043 on 2016/12/13 by Dan.Oconnor
Various fixes for TSet/TMap nativization issues
#jira UE-39634
Change 3233086 on 2016/12/13 by Dan.Oconnor
Advanced Containers (TSet/TMap) no longer experimental
Change 3233175 on 2016/12/13 by Mike.Beach
Whitelising "Packaging" as an acceptable BP settings category (follow up to CL 3232749).
#jira UE-39358
Change 3233182 on 2016/12/13 by Mike.Beach
Exposing the editor setting "Show Action Menu Item Signatures" through the Blueprint Developer menu (for ease of access).
Change 3233662 on 2016/12/13 by Phillip.Kavan
[UE-39722] Fix a typo that led to a UAT runtime failure.
#jira UE-39722
Change 3233710 on 2016/12/13 by Dan.Oconnor
Clang template useage fix
#jira UE-39742
Change 3233895 on 2016/12/13 by Dan.Oconnor
Several fixes to crashes that occur when you delete a blueprint asset when its children are not loaded.
#jira UE-39558
Change 3234443 on 2016/12/14 by Phillip.Kavan
[UE-39354] Fix script VM crash on assignment to TSet/TMap variables.
change summary:
- modified FScriptBuilderBase::EmitDestinationExpression() to consider TSet/TMap value types in addition to TArray terms
#jira UE-39354
Change 3234581 on 2016/12/14 by Mike.Beach
Backing out fix for UE-38842 (CL 3228496/3232435/3232564) - mapping UBlueprintGeneratedClass's ComponentTemplates array to a new format was causing issues with deferred dependency loading during serialization (trying to extract type information from a placeholder object). We're opting for a smaller/simpler solution to UE-38842, which will be to store the component information on the node itself (not with the templates).
#jira UE-39707
Change 3234729 on 2016/12/14 by Mike.Beach
Making it so AddComponent nodes now track the component (class) type that they represent (in case the template cannot be spawned, like in -server w/ client-only components).
#jira UE-38842
Change 3234805 on 2016/12/14 by Mike.Beach
Fixing CIS shadowed variable warning.
Change 3234830 on 2016/12/14 by Nick.Atamas
Added extra debugging mechanisms to help track down duplicate item issues with TableViews.
Change 3235075 on 2016/12/14 by Mike.Beach
Creating a helper to better manage nested scope blocks added in generated code - on close, clears out cached local accessor variables that were added, so we don't use one that was declared inside the nested scope.
#jira UE-39769
Change 3235213 on 2016/12/14 by Phillip.Kavan
[UE-39790] Fix UAT compile issue after latest merge from Main.
change summary:
- migrated the BuildCookRun command's usage of the (deprecated) ConfigCacheIni to the new ConfigHierarchy API
#jira UE-39790
Change 3235384 on 2016/12/14 by Mike.Beach
Defaulting to excluding data-only Blueprints from nativization.
Change 3235675 on 2016/12/14 by Nick.Atamas
Hopefully fixed build.
Added OnEnteredBadState delegate that lets users add arbitrary logging info when the List/Tree enters a bad state.
Change 3235761 on 2016/12/14 by Mike.Beach
Hopefully resolving CIS mac/ps4 build failures in Dev-BP for 4.15 integration.
#jira UE-39800
Change 3235800 on 2016/12/14 by Mike.Beach
More hopeful CIS mac/ps4 fixes for 4.15 integration.
#jira UE-39800
[CL 3236017 by Mike Beach in Main branch]
2016-12-14 22:10:20 -05:00
|
|
|
// FKismet2CompilerModule - The Kismet 2 Compiler module
|
|
|
|
|
class FKismet2CompilerModule : public IKismetCompilerInterface
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
// Implementation of the IKismetCompilerInterface
|
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3255454)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3228496 on 2016/12/09 by Ben.Cosh
This change adds extra information to component template arrays so that the component class can be determined in builds that strip out objects of certain class types such as the editor dedicated server build.
#Jira UE-38842 - "LogBlueprint:Error: [Compiler BP_Skybox_World_RandomTrees_01] Error Can't connect pins ReturnValue and Target" after entering a lobby in a synced server
#Proj KismetCompiler, BlueprintGraph, UnrealEd, Core, Engine, Kismet, BlueprintCompilerCppBackend
Change 3232435 on 2016/12/13 by Ben.Cosh
Fix for a bug introduced in CL 3228496 that caused component templates to fail to be identified by name and resulted in blueprint compilation issues for add component nodes.
#Jira UE-39623 - Unknown template referenced by Add Component Node
#Proj BlueprintGraph, Engine
Change 3234581 on 2016/12/14 by Mike.Beach
Backing out fix for UE-38842 (CL 3228496/3232435/3232564) - mapping UBlueprintGeneratedClass's ComponentTemplates array to a new format was causing issues with deferred dependency loading during serialization (trying to extract type information from a placeholder object). We're opting for a smaller/simpler solution to UE-38842, which will be to store the component information on the node itself (not with the templates).
#jira UE-39707
Change 3236615 on 2016/12/15 by Maciej.Mroz
Nativization: Fixed getter fuctions in FUnconvertedWrapper, the returned ref won;t be const.
Change 3236967 on 2016/12/15 by Dan.Oconnor
Test data showing an error for jira issue UE-39808
Change 3237021 on 2016/12/15 by Dan.Oconnor
UE31622 test data
Change 3237046 on 2016/12/15 by Dan.Oconnor
UE-14123 test data
Change 3239289 on 2016/12/17 by Phillip.Kavan
[UE-38999] Dump component tree node hierarchy to the output log on error state during widget generation.
change summary:
- added FOnTableViewBadState delegate parameter to SSCSEditorDragDropTree
- added SSCSEditor::DumpTree() as the FOnTableViewBadState delegate implementatioon for the STableView widget (to provide us with more info on future occurrences)
#jira UE-38999
Change 3239448 on 2016/12/19 by Maciej.Mroz
#jira UE-39794
New way of collecting dependencies assets. Only directly used assets are listed. It will be used in projects with EDL enabled, once the "EDL boot time" is enabled.
Nativized projects with EDL disabled use the new mechanism as well. They use new __StaticDependenciesAssets functions generator. __StaticDependenciesAssets calls recursively __StaticDependenciesAssets of all Blueprints, that the current BP depends on. It reduces the size of __StaticDependenciesAssets.
Notice, that at the moment, this change should no affect any projects with EDL enabled (because the EDL boot time doesn't work yet).
Change 3239778 on 2016/12/19 by Phillip.Kavan
[UE-39854] Fix nativized assets build error when there are no native code dependencies.
change summary:
- modified FDependenciesGlobalMapHelper::EmitBodyCode() to emit a NULL entry when there are no other entries to emit, in order to avoid a zero-length array initialization error at compile time.
#jira UE-39854
Change 3239965 on 2016/12/19 by Phillip.Kavan
[UE-39733] Fix incorrect graph pin value display names for user-defined enum types.
change summary:
- switched UEnum::GetDisplayNameText() to be a virtual API
- added a UUserDefinedEnum::GetDisplayNameText() override to call FEnumEditorUtils::GetEnumeratorDisplayName()
#jira UE-39733
Change 3240422 on 2016/12/19 by Dan.Oconnor
Remove useless counter. ensureMsgf only fires once
Change 3242313 on 2016/12/21 by Phillip.Kavan
[UE-35418] The Actor details view will now refresh property mappings for the current Actor instance selection after a bytecode-only recompile of its Blueprint class as a dependency during reinstancing.
change summary:
- Modified FBlueprintCompileReinstancer::ReinstanceObjects() to invoke SelectActor() on the current editor selection after a bytecode-only recompile of its class as a dependent BP (i.e. when reinstancing/finalization is not actually incurred). This is meant to be consistent with how the refresh for the current Actor selection is handled by the reinstancer in the other cases.
#jira UE-35418
Change 3242409 on 2016/12/21 by Dan.Oconnor
PR #2995: Arbitrary base logarithm blueprint node (Contributed by Valkrysa)
#jira UE-39169
Change 3243207 on 2016/12/22 by Phillip.Kavan
[UE-39816] Renaming interface input/output parameters will no longer cause broken pin links at interface function call sites in Blueprints that are currently loaded.
change summary:
- modified FBasePinChangeHelper::Broadcast() to consider pin changes sourced from an interface Blueprint
- also revised non-interface function call site check code a bit to try and avoid doing some unnecessary work when possible, since this code runs through every call site node
#jira UE-39816
Change 3243210 on 2016/12/22 by Phillip.Kavan
[UE-39944] Extend the GetClassDefaults node to include output pin exceptions for TSet/TMap properties (i.e. mirror safeguards already in place for TArray).
change summary:
- deprecated 'bExcludeObjectArrays' and replaced with 'bExcludeObjectContainers' (not using a redirect because I need the old property serialized on load for backwards-compatibility)
- modified FClassDefaultsOptionalPinManager's ctor to consider both flags
- modified FClassDefaultsOptionalPinManager::CanTreatPropertyAsOptional() to also test for TSet/TMap types, and exclude them if they contain a non-class UObject property as the inner type (same as we do for TArray)
- modified UK2Node_GetClassDefaults::ValidateNodeDuringCompilation() to also test for TSet/TMap types, and emit a warning for existing pin connections that would have otherwise failed for newly-placed nodes (same as TArray)
- modified UK2Node_GetClassDefaults::ExpandNode() to generate the necessary script needed to create a copy of TSet/TMap property value outputs (same as we do for TArray types)
#jira UE-39944
Change 3243373 on 2016/12/23 by Maciej.Mroz
#jira UE-39794
-Nativized build with EDL enabled use new dependency-gathering system. It shrinks size of the .exe file. This code will change once the boot time EDL is enabled.
-In nativized code, ZCOnstructors are not called. They are replaced by ::StaticClass(). Static class doesn't call noting recursively. We still need to fix interfaces (they have no StaticClass).
- Workaround for UE-40026
- Various minior improvements.
Change 3244038 on 2016/12/28 by Phillip.Kavan
[UE-34488] Child Blueprint assets are now marked as dirty if its parent Blueprint incurs a strucutural change.
change summary:
- modified FBlueprintEditorUtils::MarkBlueprintAsStructurallyModified() to call MarkPackageDirty() after a skeleton-only compile pass on a child Blueprint.
notes:
- this only fixes the issue for child Blueprints that are loaded when the change to the parent Blueprint occurs. unloaded child Blueprints would still need a redirector to fix this up on load.
#jira UE-34488
Change 3244087 on 2016/12/28 by Phillip.Kavan
CIS warning fix (C6236).
Change 3244388 on 2016/12/30 by Phillip.Kavan
[UE-39816] Fix broken pin links caused by renaming interface function input/output parameters prior to compiling the interface, but after renaming the function itself.
change summary:
- modified FBlueprintEditorUtils::FindFunctionInImplementedInterfaces() to prefer the skeleton class when searching, as that is always up-to-date.
- modified FBlueprintEditorUtils::RenameGraph() to update *all* function call site nodes, rather than just those within the current Blueprint class scope.
#jira UE-39816
Change 3245322 on 2017/01/03 by Maciej.Mroz
#jira UE-40125
Fixed a crash when implementing a native interface in a BP
Change 3245667 on 2017/01/03 by Mike.Beach
Mirroring CL 3245664 - Making it so level script bound nodes are fixed up on load (in case the level instances were saved out without the bindings).
#jira UE-39950
Change 3247675 on 2017/01/05 by Maciej.Mroz
BP is not DataOnly, when it overrides an inherited component
related to UE-40131
Change 3247985 on 2017/01/05 by Maciej.Mroz
NativizationSummary object is always present.
#jira UE-40035
Change 3249423 on 2017/01/06 by Mike.Beach
Mirroring CL 3248792 from Orion.
Fix to keep placeholder classes from being needlessly created (when the object they represent already exists) - instead, attempt to lookup and find the existing import objects (which used to be set, but could be cleared during async loading by FLinkerManager::DissociateImportsAndForcedExports()).
#jira OR-34038
Change 3249568 on 2017/01/06 by Mike.Beach
Updating the UBlueprintThumbnailRenderer API so it can be sub-classed by plugin/projects.
PR #2899: Expose UBlueprintThumbnailRenderer in the API (Contributed by e-agaubatz)
#jira UE-38004
Change 3251903 on 2017/01/10 by Phillip.Kavan
[UE-31640] Function inputs are now exposed as variable "Get" nodes via the right-click context menu in a Blueprint function graph context.
Note: Changes are based on shelved CL# 2452724, original proof-of-concept code (credit: Michael.Noland).
#jira UE-31640
#fyi Michael.Noland
Change 3252119 on 2017/01/10 by Phillip.Kavan
CIS fix (shadowed variable).
Change 3252744 on 2017/01/10 by Dan.Oconnor
Add GMinimalCompileOnLoad path for postponing compile on load until all data has been loaded - long term this will be used to improve bp compiler infrastructure (performance, correctness, succinctness)
Change 3252968 on 2017/01/10 by Phillip.Kavan
[UE-36798] Fix for an infinite loop case in the math expression parser.
#jira UE-36798
Change 3253153 on 2017/01/10 by Dan.Oconnor
Fixed construction scripts not being loaded before instancing occurs when using new lighter compile path
Change 3253171 on 2017/01/10 by Mike.Beach
Mirrored CL 3253147.
Properly fills out FPropertyChangedEvent's MemberProperty field, for the property editor's NotifyHook. As its comment implies, "MemberProperty" is meant to represent the outermost property (in scenarios, like with nested struct properties). It was not working this way, and was instead set to the same nested property.
Change 3253220 on 2017/01/10 by Dan.Oconnor
These pins should infer together
#jira UE-40427
Change 3253223 on 2017/01/10 by Phillip.Kavan
[UE-35050] Fix a crash that occurs on an attempt to rename the category of an implemented interface function inherited from a native parent class in the My Blueprint panel.
change summary:
- modified FBlueprintEditorUtils::FindFunctionInImplementedInterfaces() to accept an additional input parameter so that callers can opt-in to searching all inherited interface classes
- modified SMyBlueprint::CanRequestRenameOnActionNode() to prevent rename on implemented interface functions inherited from a native parent class
#jira UE-35050
Change 3253259 on 2017/01/10 by Dan.Oconnor
Quick cleanup, this stuff is in progress
Change 3253983 on 2017/01/11 by Phillip.Kavan
[UE-35629] Disable external curve asset creation when editing a local variable's default value in a Blueprint graph.
change summary:
- modified FCurveStructCustomization::CustomizeChildren() to set the "create" button visibility to "collapsed" when the Owner is NULL (as the default asset path is inferred from the Owner's package).
#jira UE-35629
Change 3254024 on 2017/01/11 by Phillip.Kavan
[UE-40131] Non-native child BPs can now properly override a nativized parent BP's components in a cooked build with exclusive Blueprint class nativiation.
change summary:
- added UBlueprintGeneratedClass::CheckAndApplyComponentTemplateOverrides()
- switched FComponentKey::OwnerClass type from UBlueprintGeneratedClass to UClass to allow the reference to be loaded when it's a nativized BP class.
- modified AActor::PostLoadSubobjects() to apply ICH template overrides to inherited component subobjects on load (only in a cooked build)
- modified AActor::PostSpawnInitialize() to also apply ICH template overrides to inherited component subobjects on new Actor spawns (only in a cooked build)
- modified FBlueprintEditorUtils::IsDataOnlyBlueprint() to additionally reject BPs that have a non-empty ICH (from Maciej)
- added UBlueprint::bHasNativizedParent to cache this as an indicator for cooked builds to allow Actor instances to avoid incurring additional overhead for this at load time in the general case
#jira UE-40131
Change 3254176 on 2017/01/11 by Mike.Beach
Mirroring CL 3245838 to unblock the Odin build. Downgrading new error to warning until we can address it in content (and fully understand why it is triggering).
#jira UE-40470
Change 3254391 on 2017/01/11 by Phillip.Kavan
[UE-40131] CIS fix (non-unity).
Change 3254442 on 2017/01/11 by Mike.Beach
Mirroring CL 3245069 (from RobM), which is described as a "temp fix".
#jira UE-40399
Change 3254599 on 2017/01/11 by Mike.Beach
Updating some of our GetRedirectPinNames() functions - making local copy of an array element instead of a reference. We're adding to the array right after, and the ref can become invalid (if the array is grown and reallocated). Came to us via UDN.
Change 3254624 on 2017/01/11 by Mike.Beach
Backing out CL 3247675, as it removed the "data-only" status from certain Blueprints that, IMO, are still considered "data-only". This would have reprecussions to editor (compile-on) load times, and affect how these Blueprints are presented to the user.
#fyi Maciej.Mroz, Phillip.Kavan
Change 3254671 on 2017/01/11 by Mike.Beach
Resolving CIS warning - USE_EVENT_DRIVEN_ASYNC_LOAD was replaced with GEventDrivenLoaderEnabled.
[CL 3255791 by Mike Beach in Main branch]
2017-01-12 14:36:04 -05:00
|
|
|
virtual void RefreshVariables(UBlueprint* Blueprint) override final;
|
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3235800)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3194900 on 2016/11/11 by Ryan.Rauschkolb
Fixed issue where Reroute node pins weren't mirroring data properly.
#jira UE-33717
Change 3195081 on 2016/11/11 by Dan.Oconnor
This @todo was addressed
Change 3196368 on 2016/11/14 by Maciej.Mroz
Results of FBlueprintNativeCodeGenModule::IsTargetedForReplacement are cashed - optimization (cooking time).
Change 3196369 on 2016/11/14 by Maciej.Mroz
CompileDisplaysBinaryBackend, CompileDisplaysTextBackend and bDisplaysLayout features (in [Kismet] in Engine.ini) are disabled in commandlets. They slow down BP compilation.
Change 3196398 on 2016/11/14 by Ben.Cosh
Reworked the tracking of latent and expansion event tracking in the blueprint compiler for use with the blueprint profiler.
#Jira - UE-37364 - Crash: PIE with instrumented PlayerPawn_Generic added to AITestbed scene
#Proj BlueprintProfiler, KismetCompiler. BlueprintGraph, Engine
Change 3196410 on 2016/11/14 by Maciej.Mroz
Fixed crash in UK2Node_Knot::PropagatePinTypeFromInput
Change 3196852 on 2016/11/14 by Maciej.Mroz
Fixed static analysis warning.
Change 3196874 on 2016/11/14 by Maciej.Mroz
#jira UE-37778
(the issue was already fixed, but it was reintroduced, when EDL support was added).
ObjectImport->XObject is not filled prematurelly, so CreateExport is properly called each dynamic class.
Change 3197469 on 2016/11/14 by Dan.Oconnor
Fix for being able to make Sets and Maps of user defined structs that contained unhashable types (e.g. Rotator)
Change 3197703 on 2016/11/14 by Dan.Oconnor
Updated documentation comment to reflect current behavior
Change 3198167 on 2016/11/15 by Maciej.Mroz
Merged 3196582 from Dev-Core
UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.
Change 3198433 on 2016/11/15 by Ryan.Rauschkolb
Fixed Copy/pasting variable nodes hides them from a reference search
#UE-31606
Change 3198811 on 2016/11/15 by Maciej.Mroz
Fixed Knot node - it will use/propagate the type from input connection, if it's possible (intstead of the type from output connection).
Change 3198866 on 2016/11/15 by Maciej.Mroz
#jira UE-38578
Fixed infinite loading of DynamicClass in EDL.
Change 3199045 on 2016/11/15 by Phillip.Kavan
[UE-27402] Fix attached Actor-based Blueprint instance root component relative transform values after reconstruction.
change summary:
- modified FActorComponentInstanceData's ctor to exclude relative transform properties when caching root component values.
#jira UE-27402
Change 3200703 on 2016/11/16 by Mike.Beach
Marking the ease node explicitly as pure, which makes it so we can prune it from graphs when it is unused.
#jira UE-38453
Change 3201115 on 2016/11/16 by Maciej.Mroz
Nativization + EDL: "Dynamic" objects are processed by FAsyncPackage::PostLoadDeferredObjects, so the EInternalObjectFlags::AsyncLoading flag is properly cleared.
Change 3201749 on 2016/11/17 by Maciej.Mroz
In EDL a package containig a dynamic class has PKG_CompiledIn flag (the same like without EDL).
Change 3202577 on 2016/11/17 by Mike.Beach
Accounting for a change in our intermediate node mapping - the old list no longer maps expanded nodes to macro instances (instead it maps to the corresponding node in the macro graph), so we had to use a new mapping meant for this.
#jira UE-35609
Change 3204803 on 2016/11/18 by Phillip.Kavan
[UE-38607] Implicitly turn on Blueprint class nativization for dependencies.
change summary:
- added a UBlueprint::PostEditChangeProperty() override method to handle this.
#jira UE-38607
Change 3204812 on 2016/11/18 by Phillip.Kavan
[UE-38580] Implicitly turn on the "nativize" project setting when enabling nativize for any Blueprint class.
change summary:
- modified UBlueprint::PostEditChangeProperty() to update project packaging settings if necessary
#jira UE-38580
Change 3204818 on 2016/11/18 by Phillip.Kavan
[UE-38725] Interface class dependencies that are not enabled for nativization will now raise an error during nativized cooks.
change summary:
- modified FBlueprintNativeCodeGenModule::IsTargetedForReplacement() to check interface class dependencies in addition to parent class dependencies.
#jira UE-38725
Change 3204963 on 2016/11/18 by Dan.Oconnor
Create a transaction when using UBlueprintFunctionNodeSpawner* directly
#jira UE-36439
Change 3206510 on 2016/11/21 by Mike.Beach
Adding math-expression aliases for dot and cross functions ("dot" and "cross" respectively).
#jira UEBP-71
Change 3206547 on 2016/11/21 by Mike.Beach
Exposing GetReflectionVector() to Blueprints.
#jira UEBP-70
Change 3206658 on 2016/11/21 by Dan.Oconnor
Fix for compile error, digging out authorative class from trash class.
Mirror of 3206638 from Odin
#jira None
Change 3207579 on 2016/11/22 by Mike.Beach
No longer enforcing the requirement that game UFunctions have to have a category (making writing of game code easier).
#jira UE-18093
Change 3207956 on 2016/11/22 by Phillip.Kavan
[UE-38690] Fix a regression in which nested scene component subobjects would no longer be registered after construction of an instance-added component in IWCE.
change summary:
- modified the IWCE path in SSCSEditor::AddNewComponent() to ensure that any components added as a result of instancing the newly-added component are also registered.
- modified AActor::ExecuteConstruction() to ensure that non-scene, native nested component subobjects that might be created as a result of SCS execution are also registered (previously it was only considering non-scene components that were explicitly created by the SCS, or that inherited the creation method of the instance that created it).
#jira UE-38690
Change 3208217 on 2016/11/22 by Mike.Beach
Modified fix (originally from Ryan.Rauschkolb, CL 3186023):
Fixed unable to set struct variable name if name includes space
#jira UE-28435
Change 3208347 on 2016/11/22 by Mike.Beach
Merging //UE4/Dev-Main to Dev-Blueprints (//UE4/Dev-Blueprints)
Change 3208688 on 2016/11/23 by Ben.Cosh
Made a minor change that forces debugging references to the PIE world when the play in editor world is changed. This is intended to better handle mutliple game instance/world debugging scenarios.
#Jira UE-26386 - Can't hit breakpoints in blueprints for level script for server instances
#Proj Engine, UnrealEd
Change 3208712 on 2016/11/23 by Ben.Cosh
Improved handling of unwired transform struct terminal expression's in the blueprint VM compiler to remove an errant warning.
#Jira UE-32401 - "ImportText: Missing opening parenthesis" message, when a function returns Transform
#Proj KismetCompiler
Change 3209457 on 2016/11/23 by Phillip.Kavan
[UE-30479] Fix inability to edit the ISMC instance array on Actor instances when the ISMC is inherited from a Blueprint class.
change summary:
- added PPF_ForceTaggedSerialization as a means to override the CPF_SkipSerialization flag when explicit serialization of the property value is needed
- modified UProperty::ShouldSerializeValue() to check for and handle the PPF_ForceTaggedSerialization flag when the CPF_SkipSerialization flag is present
- modified UActorComponent::DetermineUCSModifiedProperties() to add the PPF_ForceTaggedSerialization flag to the custom FArchive impl
- modified FActorComponentInstanceData::FActorComponentInstanceData() to add the PPF_ForceTaggedSerialization flag to the custom FObjectWriter impl
- modified FActorComponentInstanceData::ApplyToComponent() to add the PPF_ForceTaggedSerialization flag to the custom FObjectReader impl
#jira UE-30479
Change 3209758 on 2016/11/24 by Maciej.Mroz
#jira UE-38979
Nativization: fixed error when a BP implements a native interface.
FBlueprintNativeCodeGenModule::IsTargetedForReplacement will return "DontReplace" for native class.
Change 3210376 on 2016/11/25 by Maciej.Mroz
#jira UE-39028
Fixed FBlueprintNativeCodeGenModule::FindReplacedNameAndOuter
Components in nativized BPCG SCS have replaced outer object and name while cooking.
Change 3210936 on 2016/11/28 by Phillip.Kavan
Minor revision to try and avoid a potentially expensive Contains() call when possible.
Change 3211527 on 2016/11/28 by Maciej.Mroz
Fixed map of names cooked in packages in nativized build.
Change 3211969 on 2016/11/28 by Mike.Beach
Merging //UE4/Dev-Main to Dev-Blueprints (//UE4/Dev-Blueprints)
Change 3212328 on 2016/11/28 by Dan.Oconnor
Enum, pointer and arithmetic specializations for THasGetTypeHash, as VC doesn't detect them properly.
TIsEnum moved to its own header. Submitted on behalf of steve.robb
Change 3212398 on 2016/11/28 by Dan.Oconnor
Build fix, this function is part of another change
Change 3212442 on 2016/11/28 by Dan.Oconnor
UHT now supports structs in TMap and TSet, misc. fixes to PropertyStruct's PropertyFlags detecting whether the struct type is hashable (all HasGetTypeHash flags are now computed from THasGetTypeHash). Various fixes for generating TMap/TSet code from blueprints
Change 3212578 on 2016/11/28 by Dan.Oconnor
Rename RegisterClass to avoid collsion with RegistClass macro in generated code
Change 3213668 on 2016/11/29 by Dan.Oconnor
Fix for missing CDO when instatiating some subobjects in nativized BPs
#jira UE-34980
Change 3213737 on 2016/11/29 by Dan.Oconnor
Added GetTypeHash implementation to UEnumProperty
#jira UE-39091
Change 3215225 on 2016/11/30 by Maciej.Mroz
Bunch of changes required for nativized Orion to work with EDL.
- ClientOnly, ServerOnly and EditorOnly assets are properly distinguished and handled
- Introduced FCompilerNativizationOptions
- fixed inproper references to BP instead of BPGC
- fixed generated delegate name
- hack for DefaultRootNode UE-39168
- improved NativeCodeGenrationTool
- various minor improvements
Change 3216363 on 2016/11/30 by Dan.Oconnor
Better fix for discrepency between UUserDefinedEnum::GetEnumText and UEnum::GetEnumText. Without meta data we could not look up display names, so I'm writing out the display names into a function in the BP cpp backend. This function could be generated by UHT if we wanted to correct this odd behavior for native enums
#jira UE-27735
Change 3217168 on 2016/12/01 by Maciej.Mroz
#jira UE-35390
Nativization:
Fixed compilation warning C4458: declaration of 'CurrentState' hides class member
Disabled warning C4996 (deprecated) in nativized code.
Change 3217320 on 2016/12/01 by Phillip.Kavan
[UE-38652] Selecting Blueprint assets for nativization is now integrated into the project's configuration.
change summary:
- added EProjectPackagingBlueprintNativizationMethod
- deprecated the 'bNativizeBlueprintAssets' and 'bNativizeOnlySelectedBlueprints' flags in favor of a new 'BlueprintNativizationMethod' config property in UProjectPackagingSettings
- added a new 'NativizeBlueprintAssets' config property to UProjectPackagingSettings to track/store the list of Blueprints to be nativized when the exclusive method (whitelist) is selected
- added a PostInitProperties() override to UProjectPackagingSettings; implemented to migrate from the deprecated config properties to the new method enum type
- updated FMainFrameActionCallbacks::PackageProject() to migrate to checking the enum type
- updated FBlueprintNativeCodeGenModule::IsTargetedForReplacement() to migrate to checking the enum type
- modified UProjectPackagingSettings::CanEditChange() to enable editing of the nativization whitelist only when the "exclusive" method is active
- modified UProjectPackagingSettings::PostEditChangeProperty() to add a new case for handling changes to the whitelist; changes are propagated to any Blueprint assets that are loaded
- added new Add/RemoveBlueprintAssetFromNativizationList() APIs to UProjectPackagingSettings for assisting with adding/removing Blueprint assets to/from the exclusive list (whitelist)
- deprecated the 'bNativize' flag in UBlueprint in favor of a new transient 'bSelectedForNativization' flag that is no longer serialized; this now caches whether or not the asset is present in the whitelist in the project config
- modified UBlueprint::Serialize() to both migrate from the deprecated flag to the project config/transient flag on load, as well as to propagate the value of the transient flag back to the project config on save. this means that if the user changes the value of the transient flag through the Details view, that change won't be reflected back to the project config until the Blueprint is actually saved (saving the value to the config rather than serializing to the asset)
- modified UBlueprint::PostEditChangeProperty() to remove code that was previously updating the project configuration at edit time. this functionality has been relocated to Serialize() (save time) instead.
notes:
- also completes UE-38636 (task: consolidate config options into a single drop-down)
#jira UE-38652
Change 3218124 on 2016/12/01 by Dan.Oconnor
CPF_HasGetValueTypeHash flag was not set on native UEnumProperties
#jira UE-39181
Change 3218168 on 2016/12/01 by Phillip.Kavan
Fix local var name that shadows a function param (CIS fix).
Change 3219117 on 2016/12/02 by Maciej.Mroz
#jira UE-39241 "warning C4458: declaration of XXX hides class member" In Nativized Code
Nativization:
Fixed compilation warning C4458: when local function variable hides a class variable. Names of local variables in funvtions have prefix "bpfv__".
Change 3219201 on 2016/12/02 by Mike.Beach
Keeping the "Select All Input Nodes" option from infinitely recurssing by blocking on nodes it has already selected.
#jira UE-38988
Change 3219247 on 2016/12/02 by Mike.Beach
Fixing CIS shadow variable warning from my last check in (CL 3219201).
Change 3219332 on 2016/12/02 by Maciej.Mroz
#jira HeaderParser: "private:" specifier is lost in FGameplayTag::TagName
Workaround for UE-38231
Change 3219381 on 2016/12/02 by Mike.Beach
Accounting for cyclic compile issues in cast-node's validate function, making it check the authoratative class instead of the current type. Also down grading some of the warnings to notes (suggesting the users don't need the cast).
#jira UE-39272
Change 3220224 on 2016/12/02 by Dan.Oconnor
Reduce font size for compact nodes
Change 3220476 on 2016/12/03 by Maciej.Mroz
#jira UE-35390
Better fix for UE-35390
Disabled deprecation warnings in nativized code.
Change 3221637 on 2016/12/05 by Maciej.Mroz
#jira UEBP-245
Nativization:
Forced ImportCreation while InitialLoad for DynamicClasses.
Change 3222306 on 2016/12/05 by Dan.Oconnor
Support for default values of TMap and TSet local variables
#jira UE-39239
Change 3222383 on 2016/12/05 by Dan.Oconnor
Fixed bug in Blueprint TMap function for getting values out of a TMap
Change 3222427 on 2016/12/05 by Mike.Beach
Preventing ChildActorTemplate fixups from occuring on component load, when they may instead be a placeholder object (a byproduct of deferred Blueprint loading - a guard against cyclic load problems).
#jira UE-39323
Change 3222679 on 2016/12/05 by Dan.Oconnor
Remove unused code. Had no sideeffects, other than potential for leak when struct with non-trivial dtor was allocated here.
Change 3222719 on 2016/12/05 by Dan.Oconnor
Earlier detection of invalid native map/set properties. These generate a compile error if any TMap/TSet functions are used, but will slip by undetected if not used. Working on static assert to catch them.
#jira UE-39338
Change 3224375 on 2016/12/06 by Dan.Oconnor
Add tags for testing of array diffing
Change 3224507 on 2016/12/07 by Phillip.Kavan
[UE-39055] Fix a crash caused by an object name collision that could occur when loading some older Blueprint assets.
change summary:
- added UInheritableComponentHandler::FixComponentTemplateName()
- modified UInheritableComponentHandler::PostLoad() to check for and correct stale records that cause a collision with the corrected name
- added a UInheritableComponentHandler::Serialize() override to ensure that UsingCustomVersion() is called for the asset containing the ICH (already happening in UBlueprint::Serialize(), but added for consistency with other usage)
- modified USimpleConstructionScript::Serialize() to ensure that UsingCustomVersion() is called for the asset containing the SCS (same reason as above)
#jira UE-39055
Change 3225572 on 2016/12/07 by Samuel.Proctor
Test assets for TSet/TMap testing. Includes new native class for testing containers. #rb none
Change 3225577 on 2016/12/07 by Samuel.Proctor
New test map for Array, TSet and Tmap testing.
Change 3226281 on 2016/12/07 by Dan.Oconnor
Container test asset, needs to be in p4 for diff tool tests.
Change 3226345 on 2016/12/07 by Dan.Oconnor
Another revision of test data
Change 3228496 on 2016/12/09 by Ben.Cosh
This change adds extra information to component template arrays so that the component class can be determined in builds that strip out objects of certain class types such as the editor dedicated server build.
#Jira UE-38842 - "LogBlueprint:Error: [Compiler BP_Skybox_World_RandomTrees_01] Error Can't connect pins ReturnValue and Target" after entering a lobby in a synced server
#Proj KismetCompiler, BlueprintGraph, UnrealEd, Core, Engine, Kismet, BlueprintCompilerCppBackend
Change 3230120 on 2016/12/09 by Dan.Oconnor
Merging //UE4/Dev-Main to Dev-Blueprints (//UE4/Dev-Blueprints)
Change 3230700 on 2016/12/12 by Samuel.Proctor
Removing some array test properties from container test class that were not needed. Also updated struct element to better reflect testing purpose. #rb none
Change 3230926 on 2016/12/12 by Samuel.Proctor
Missed a file on previous container test native QA asset checkin. #rb none
Change 3231246 on 2016/12/12 by Dan.Oconnor
PR #3003: New Feature: In-editor diff of arrays and structs now highlights diff. (Contributed by CA-ADuran).
I've added TSet and TMap support as well.
Change 3231311 on 2016/12/12 by Dan.Oconnor
Handle class load failure
#jira UE-39480
Change 3231387 on 2016/12/12 by Dan.Oconnor
Shadow variable fixes
Change 3231501 on 2016/12/12 by Dan.Oconnor
More shadow fixes
Change 3231584 on 2016/12/12 by Maciej.Mroz
#jira UE-39636
Replaced obsolate macro usage.
#fyi Dan.Oconnor
Change 3231685 on 2016/12/12 by Mike.Beach
PR #3032: Fixed category for IsValidIndex (Contributed by elFarto)
#jira UE-39660
Change 3231689 on 2016/12/12 by Maciej.Mroz
Nativization: Fixed Dependency list generation.
Change 3231765 on 2016/12/12 by Phillip.Kavan
[UE-38903] Auto-enable exclusive Blueprint nativization only after explicitly selecting the first asset.
change summary:
- fixed up the auto-enable logic on save in UBlueprint::Serialize()
#jira UE-38903
#fyi Maciej.Mroz
Change 3231837 on 2016/12/12 by Dan.Oconnor
Restore hack to keep objects referenced by bytecode alive while in editor
#jira UE-38486
Change 3232085 on 2016/12/13 by Phillip.Kavan
Compile fix.
Change 3232435 on 2016/12/13 by Ben.Cosh
Fix for a bug introduced in CL 3228496 that caused component templates to fail to be identified by name and resulted in blueprint compilation issues for add component nodes.
#Jira UE-39623 - Unknown template referenced by Add Component Node
#Proj BlueprintGraph, Engine
Change 3232437 on 2016/12/13 by Maciej.Mroz
#jira UE-33021
Remove an obsolete warning.
Change 3232564 on 2016/12/13 by Ben.Cosh
This adds extra component template renaming propagation and checking for the blueprint generated class and blueprint skeleton class.
#Jira UE-39623 - Unknown template referenced by Add Component Node
#Proj BlueprintGraph
- Implementing a bit of review feedback and some safety checking.
Change 3232598 on 2016/12/13 by Maciej.Mroz
Nativization:
stati functions cannot be const, so no workaound (_Inner function) specyfic to const functions is necessary
#jira UE-39518
Change 3232601 on 2016/12/13 by Phillip.Kavan
[UE-38975] Warn on BuildCookRun or a standalone cook when the -nativizeAssets flag is omitted from the command line for a nativization-enabled project.
change summary:
- added 'bWarnIfPackagedWithoutNativizationFlag' to UProjectPackagingSettings (default = true)
- modified UCookOnTheFlyServer::StartCookByTheBook() to check for the presence of the -nativizeAssets flag and emit a warning for unexpected omission from the command line
- modified UAT to include a warning for the BuildCookRun command when -build is specified with the same unexpected omission of the -nativizeAssets flag on the UAT command line
#jira UE-38975
Change 3232749 on 2016/12/13 by Mike.Beach
Moving Blueprint nativization out of the experimental category.
#jira UE-39358
Change 3233043 on 2016/12/13 by Dan.Oconnor
Various fixes for TSet/TMap nativization issues
#jira UE-39634
Change 3233086 on 2016/12/13 by Dan.Oconnor
Advanced Containers (TSet/TMap) no longer experimental
Change 3233175 on 2016/12/13 by Mike.Beach
Whitelising "Packaging" as an acceptable BP settings category (follow up to CL 3232749).
#jira UE-39358
Change 3233182 on 2016/12/13 by Mike.Beach
Exposing the editor setting "Show Action Menu Item Signatures" through the Blueprint Developer menu (for ease of access).
Change 3233662 on 2016/12/13 by Phillip.Kavan
[UE-39722] Fix a typo that led to a UAT runtime failure.
#jira UE-39722
Change 3233710 on 2016/12/13 by Dan.Oconnor
Clang template useage fix
#jira UE-39742
Change 3233895 on 2016/12/13 by Dan.Oconnor
Several fixes to crashes that occur when you delete a blueprint asset when its children are not loaded.
#jira UE-39558
Change 3234443 on 2016/12/14 by Phillip.Kavan
[UE-39354] Fix script VM crash on assignment to TSet/TMap variables.
change summary:
- modified FScriptBuilderBase::EmitDestinationExpression() to consider TSet/TMap value types in addition to TArray terms
#jira UE-39354
Change 3234581 on 2016/12/14 by Mike.Beach
Backing out fix for UE-38842 (CL 3228496/3232435/3232564) - mapping UBlueprintGeneratedClass's ComponentTemplates array to a new format was causing issues with deferred dependency loading during serialization (trying to extract type information from a placeholder object). We're opting for a smaller/simpler solution to UE-38842, which will be to store the component information on the node itself (not with the templates).
#jira UE-39707
Change 3234729 on 2016/12/14 by Mike.Beach
Making it so AddComponent nodes now track the component (class) type that they represent (in case the template cannot be spawned, like in -server w/ client-only components).
#jira UE-38842
Change 3234805 on 2016/12/14 by Mike.Beach
Fixing CIS shadowed variable warning.
Change 3234830 on 2016/12/14 by Nick.Atamas
Added extra debugging mechanisms to help track down duplicate item issues with TableViews.
Change 3235075 on 2016/12/14 by Mike.Beach
Creating a helper to better manage nested scope blocks added in generated code - on close, clears out cached local accessor variables that were added, so we don't use one that was declared inside the nested scope.
#jira UE-39769
Change 3235213 on 2016/12/14 by Phillip.Kavan
[UE-39790] Fix UAT compile issue after latest merge from Main.
change summary:
- migrated the BuildCookRun command's usage of the (deprecated) ConfigCacheIni to the new ConfigHierarchy API
#jira UE-39790
Change 3235384 on 2016/12/14 by Mike.Beach
Defaulting to excluding data-only Blueprints from nativization.
Change 3235675 on 2016/12/14 by Nick.Atamas
Hopefully fixed build.
Added OnEnteredBadState delegate that lets users add arbitrary logging info when the List/Tree enters a bad state.
Change 3235761 on 2016/12/14 by Mike.Beach
Hopefully resolving CIS mac/ps4 build failures in Dev-BP for 4.15 integration.
#jira UE-39800
Change 3235800 on 2016/12/14 by Mike.Beach
More hopeful CIS mac/ps4 fixes for 4.15 integration.
#jira UE-39800
[CL 3236017 by Mike Beach in Main branch]
2016-12-14 22:10:20 -05:00
|
|
|
virtual void CompileStructure(class UUserDefinedStruct* Struct, FCompilerResultsLog& Results) override;
|
|
|
|
|
virtual void RecoverCorruptedBlueprint(class UBlueprint* Blueprint) override;
|
|
|
|
|
virtual void RemoveBlueprintGeneratedClasses(class UBlueprint* Blueprint) override;
|
|
|
|
|
virtual TArray<IBlueprintCompiler*>& GetCompilers() override { return Compilers; }
|
|
|
|
|
virtual void GetBlueprintTypesForClass(UClass* ParentClass, UClass*& OutBlueprintClass, UClass*& OutBlueprintGeneratedClass) const override;
|
|
|
|
|
// End implementation
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
|
|
TArray<IBlueprintCompiler*> Compilers;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
IMPLEMENT_MODULE( FKismet2CompilerModule, KismetCompiler );
|
2014-03-14 14:13:41 -04:00
|
|
|
|
|
|
|
|
struct FBlueprintIsBeingCompiledHelper
|
|
|
|
|
{
|
|
|
|
|
private:
|
|
|
|
|
UBlueprint* Blueprint;
|
|
|
|
|
public:
|
|
|
|
|
FBlueprintIsBeingCompiledHelper(UBlueprint* InBlueprint) : Blueprint(InBlueprint)
|
|
|
|
|
{
|
|
|
|
|
check(NULL != Blueprint);
|
|
|
|
|
check(!Blueprint->bBeingCompiled);
|
|
|
|
|
Blueprint->bBeingCompiled = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
~FBlueprintIsBeingCompiledHelper()
|
|
|
|
|
{
|
|
|
|
|
Blueprint->bBeingCompiled = false;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// Compiles a blueprint.
|
2014-04-23 20:18:55 -04:00
|
|
|
|
2015-04-10 03:30:54 -04:00
|
|
|
void FKismet2CompilerModule::CompileStructure(UUserDefinedStruct* Struct, FCompilerResultsLog& Results)
|
2014-04-23 20:18:55 -04:00
|
|
|
{
|
Copying //UE4/Orion-Staging to //UE4/Main (Origin: //Orion/Dev-General @ 2904087)
==========================
MAJOR FEATURES + CHANGES
==========================
#lockdown Nick.Penwarden
Change 2903938 on 2016/03/10 by Frank.Gigliotti
Added an instance ID to FAnimMontageInstance
#CodeReview Laurent.Delayen
#RB Laurent.Delayen
#Tests PIE
Change 2903745 on 2016/03/10 by Wes.Hunt
Update Oodle TPS
#rb none
#tests none
#codereview:john.pollard
Change 2903689 on 2016/03/10 by Uriel.Doyon
New "LogHeroMaterials" console command, displaying the current state of materials and textures on the character hero.
#rb marcus.wasmer
#codereview marcus.wassmer
#tests editor, playing PC games, trying the new command
Change 2903669 on 2016/03/10 by Aaron.McLeran
OR-17180 Make stat soundcues and stat soundwaves NOT display zero volume sounds
- Change only effects debug stat commands for audio guys
#rb none
#tests played paragon with new debug stat commands, confirms doesn't show zero-volume sounds
Change 2903625 on 2016/03/10 by John.Pollard
XB1 Oodle SDK
#rb none
#tests none
#codereview Jeff.Campeau
Change 2903577 on 2016/03/10 by Ben.Marsh
Remaking latest build scripts from //UE4/Main @ 2900980.
Change 2903560 on 2016/03/10 by Ben.Marsh
Initial version of BuildGraph scripts - used to create build processes in UE4 which can be run locally or in parallel across a build farm (assuming synchronization and resource allocation implemented by a separate system). Intended to supersede GUBP.
Build graphs are declared using an XML script using syntax similar to MSBuild, ANT or NAnt, and consist of the following components:
* Tasks: Building blocks which can be executed as part of the build process. Many predefined tasks are provided (<Cook>, <Compile>, <Copy>, <Stage>, <Log>, <PakFile>, etc...), and additional tasks may be added be declaring classes derived from AutomationTool.CustomTask in other UAT modules.
* Nodes: A named sequence of tasks which is executed to produce outputs. Nodes may have input dependencies on other nodes before they can be executed. Declared with the <Node> element in scripts.
* Agent Groups: A set of nodes nodes which is executed on the same machine if running as part of a build system. Has no effect when building locally. Declared with the <Group> element in scripts.
* Triggers: Container for groups which should only be executed when explicitly triggered (using the -Trigger=<Name> or -SkipTriggers command line argument). Declared with the <Trigger> element in scripts.
* Notifiers: Specifies email recipients for failures in one or more nodes, whether they should receive notifications on warnings, and so on.
Properties can be passed in to a script on the command line, or set procedurally with the <Property Name="Foo" Value="Bar"/> syntax. Properties referenced with the $(Property Name) notation are valid within all strings, and will be expanded as macros when the script is read. If a property name is not set explicitly, it defaults to the contents of an environment variable with the same name.
Local properties, which only affect the scope of the containing XML element (node, group, etc...) are declared with the <Local Name="Foo" Value="Bar"/> element, and will override a similarly named global property for the local property's scope.
Any elements can be conditionally defined via the "If" attribute, and are largely identical to MSBuild conditions. Literals in conditions may be quoted with single (') or double (") quotes, or an unquoted sequence of letters, digits and underscore characters. All literals are considered identical regardless of how they are declared, and are considered case-insensitive for comparisons (so true equals 'True', equals "TRUE"). Available operators are "==", "!=", "And", "Or", "!", "(...)", "Exists(...)" and "HasTrailingSlash(...)". A full grammar is written up in Condition.cs.
File manipulation is done using wildcards and tags. Any attribute that accepts a list of files may consist of: a Perforce-style wildcard (matching any number of "...", "*" and "?" patterns in any location), a full path name, or a reference to a tagged collection of files, denoted by prefixing with a '#' character. Files may be added to a tag set using the <Tag> Task, which also allows performing set union/difference style operations. Each node can declare multiple outputs in the form of a list of named tags, which other nodes can then depend on.
Build graphs may be executed in parallel as part build system. To do so, the initial graph configuration is generated by running with the -Export=<Filename> argument (producing a JSON file listing the nodes and dependencies to execute). Each participating agent should be synced to the same changelist, and UAT should be re-run with the appropriate -Node=<Name> argument. Outputs from different nodes are transferred between agents via shared storage, typically a network share, the path to which can be specified on the command line using the -SharedStorageDir=<Path> argument. Note that the allocation of machines, and coordination between them, is assumed to be managed by an external system.
A schema for the known set of tasks can be generated by running UAT with the "-Schema=<FileName>" option. Generating a schema and referencing it from a BuildGraph script allows Visual Studio to validate and auto-complete elements as you type.
#rb none
#codereview Marc.Audy, Wes.Hunt, Matthew.Griffin, Richard.Fawcett
#tests local only so far, but not part of any build process yet
Change 2903539 on 2016/03/10 by John.Pollard
Improve replay playback debugging of character movement
#rb none
#tests replays
Change 2903526 on 2016/03/10 by Ben.Marsh
Remake changes from //UE4/Main without integration history, to add support for BuildGraph tasks.
#rb none
#tests none
Change 2903512 on 2016/03/10 by Dan.Youhon
Modify minimum Duration values for JumpForce and MoveToForce ability tasks so that having minimum Duration values doesn't trigger check()s
#rb None
#tests Compiles
Change 2903474 on 2016/03/10 by Marc.Audy
Fix crash if ChildActor is null
#rb None
#tests None
Change 2903314 on 2016/03/10 by Marc.Audy
Fix ParentComponent not being persisted and fixup content that was saved in the window it was broken
#rb James.Golding
#tests Selection of child actors works as expected
#jira UE-28201
Change 2903298 on 2016/03/10 by Simon.Tovey
Disabling the trails optimization.
#tests none
#rb none
#codereview Olaf.Piesche
Change 2903124 on 2016/03/10 by Robert.Manuszewski
Small refactor to pak signing to help with exe protection
#rb none
#tests none
[CL 2907678 by Andrew Grant in Main branch]
2016-03-13 18:53:13 -04:00
|
|
|
Results.SetSourcePath(Struct->GetPathName());
|
2014-10-07 00:40:02 -04:00
|
|
|
BP_SCOPED_COMPILER_EVENT_STAT(EKismetCompilerStats_CompileTime);
|
2014-04-23 20:18:55 -04:00
|
|
|
FUserDefinedStructureCompilerUtils::CompileStruct(Struct, Results, true);
|
|
|
|
|
}
|
|
|
|
|
|
2015-06-09 21:35:23 -04:00
|
|
|
extern UNREALED_API FSecondsCounterData BlueprintCompileAndLoadTimerData;
|
|
|
|
|
|
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3255454)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3228496 on 2016/12/09 by Ben.Cosh
This change adds extra information to component template arrays so that the component class can be determined in builds that strip out objects of certain class types such as the editor dedicated server build.
#Jira UE-38842 - "LogBlueprint:Error: [Compiler BP_Skybox_World_RandomTrees_01] Error Can't connect pins ReturnValue and Target" after entering a lobby in a synced server
#Proj KismetCompiler, BlueprintGraph, UnrealEd, Core, Engine, Kismet, BlueprintCompilerCppBackend
Change 3232435 on 2016/12/13 by Ben.Cosh
Fix for a bug introduced in CL 3228496 that caused component templates to fail to be identified by name and resulted in blueprint compilation issues for add component nodes.
#Jira UE-39623 - Unknown template referenced by Add Component Node
#Proj BlueprintGraph, Engine
Change 3234581 on 2016/12/14 by Mike.Beach
Backing out fix for UE-38842 (CL 3228496/3232435/3232564) - mapping UBlueprintGeneratedClass's ComponentTemplates array to a new format was causing issues with deferred dependency loading during serialization (trying to extract type information from a placeholder object). We're opting for a smaller/simpler solution to UE-38842, which will be to store the component information on the node itself (not with the templates).
#jira UE-39707
Change 3236615 on 2016/12/15 by Maciej.Mroz
Nativization: Fixed getter fuctions in FUnconvertedWrapper, the returned ref won;t be const.
Change 3236967 on 2016/12/15 by Dan.Oconnor
Test data showing an error for jira issue UE-39808
Change 3237021 on 2016/12/15 by Dan.Oconnor
UE31622 test data
Change 3237046 on 2016/12/15 by Dan.Oconnor
UE-14123 test data
Change 3239289 on 2016/12/17 by Phillip.Kavan
[UE-38999] Dump component tree node hierarchy to the output log on error state during widget generation.
change summary:
- added FOnTableViewBadState delegate parameter to SSCSEditorDragDropTree
- added SSCSEditor::DumpTree() as the FOnTableViewBadState delegate implementatioon for the STableView widget (to provide us with more info on future occurrences)
#jira UE-38999
Change 3239448 on 2016/12/19 by Maciej.Mroz
#jira UE-39794
New way of collecting dependencies assets. Only directly used assets are listed. It will be used in projects with EDL enabled, once the "EDL boot time" is enabled.
Nativized projects with EDL disabled use the new mechanism as well. They use new __StaticDependenciesAssets functions generator. __StaticDependenciesAssets calls recursively __StaticDependenciesAssets of all Blueprints, that the current BP depends on. It reduces the size of __StaticDependenciesAssets.
Notice, that at the moment, this change should no affect any projects with EDL enabled (because the EDL boot time doesn't work yet).
Change 3239778 on 2016/12/19 by Phillip.Kavan
[UE-39854] Fix nativized assets build error when there are no native code dependencies.
change summary:
- modified FDependenciesGlobalMapHelper::EmitBodyCode() to emit a NULL entry when there are no other entries to emit, in order to avoid a zero-length array initialization error at compile time.
#jira UE-39854
Change 3239965 on 2016/12/19 by Phillip.Kavan
[UE-39733] Fix incorrect graph pin value display names for user-defined enum types.
change summary:
- switched UEnum::GetDisplayNameText() to be a virtual API
- added a UUserDefinedEnum::GetDisplayNameText() override to call FEnumEditorUtils::GetEnumeratorDisplayName()
#jira UE-39733
Change 3240422 on 2016/12/19 by Dan.Oconnor
Remove useless counter. ensureMsgf only fires once
Change 3242313 on 2016/12/21 by Phillip.Kavan
[UE-35418] The Actor details view will now refresh property mappings for the current Actor instance selection after a bytecode-only recompile of its Blueprint class as a dependency during reinstancing.
change summary:
- Modified FBlueprintCompileReinstancer::ReinstanceObjects() to invoke SelectActor() on the current editor selection after a bytecode-only recompile of its class as a dependent BP (i.e. when reinstancing/finalization is not actually incurred). This is meant to be consistent with how the refresh for the current Actor selection is handled by the reinstancer in the other cases.
#jira UE-35418
Change 3242409 on 2016/12/21 by Dan.Oconnor
PR #2995: Arbitrary base logarithm blueprint node (Contributed by Valkrysa)
#jira UE-39169
Change 3243207 on 2016/12/22 by Phillip.Kavan
[UE-39816] Renaming interface input/output parameters will no longer cause broken pin links at interface function call sites in Blueprints that are currently loaded.
change summary:
- modified FBasePinChangeHelper::Broadcast() to consider pin changes sourced from an interface Blueprint
- also revised non-interface function call site check code a bit to try and avoid doing some unnecessary work when possible, since this code runs through every call site node
#jira UE-39816
Change 3243210 on 2016/12/22 by Phillip.Kavan
[UE-39944] Extend the GetClassDefaults node to include output pin exceptions for TSet/TMap properties (i.e. mirror safeguards already in place for TArray).
change summary:
- deprecated 'bExcludeObjectArrays' and replaced with 'bExcludeObjectContainers' (not using a redirect because I need the old property serialized on load for backwards-compatibility)
- modified FClassDefaultsOptionalPinManager's ctor to consider both flags
- modified FClassDefaultsOptionalPinManager::CanTreatPropertyAsOptional() to also test for TSet/TMap types, and exclude them if they contain a non-class UObject property as the inner type (same as we do for TArray)
- modified UK2Node_GetClassDefaults::ValidateNodeDuringCompilation() to also test for TSet/TMap types, and emit a warning for existing pin connections that would have otherwise failed for newly-placed nodes (same as TArray)
- modified UK2Node_GetClassDefaults::ExpandNode() to generate the necessary script needed to create a copy of TSet/TMap property value outputs (same as we do for TArray types)
#jira UE-39944
Change 3243373 on 2016/12/23 by Maciej.Mroz
#jira UE-39794
-Nativized build with EDL enabled use new dependency-gathering system. It shrinks size of the .exe file. This code will change once the boot time EDL is enabled.
-In nativized code, ZCOnstructors are not called. They are replaced by ::StaticClass(). Static class doesn't call noting recursively. We still need to fix interfaces (they have no StaticClass).
- Workaround for UE-40026
- Various minior improvements.
Change 3244038 on 2016/12/28 by Phillip.Kavan
[UE-34488] Child Blueprint assets are now marked as dirty if its parent Blueprint incurs a strucutural change.
change summary:
- modified FBlueprintEditorUtils::MarkBlueprintAsStructurallyModified() to call MarkPackageDirty() after a skeleton-only compile pass on a child Blueprint.
notes:
- this only fixes the issue for child Blueprints that are loaded when the change to the parent Blueprint occurs. unloaded child Blueprints would still need a redirector to fix this up on load.
#jira UE-34488
Change 3244087 on 2016/12/28 by Phillip.Kavan
CIS warning fix (C6236).
Change 3244388 on 2016/12/30 by Phillip.Kavan
[UE-39816] Fix broken pin links caused by renaming interface function input/output parameters prior to compiling the interface, but after renaming the function itself.
change summary:
- modified FBlueprintEditorUtils::FindFunctionInImplementedInterfaces() to prefer the skeleton class when searching, as that is always up-to-date.
- modified FBlueprintEditorUtils::RenameGraph() to update *all* function call site nodes, rather than just those within the current Blueprint class scope.
#jira UE-39816
Change 3245322 on 2017/01/03 by Maciej.Mroz
#jira UE-40125
Fixed a crash when implementing a native interface in a BP
Change 3245667 on 2017/01/03 by Mike.Beach
Mirroring CL 3245664 - Making it so level script bound nodes are fixed up on load (in case the level instances were saved out without the bindings).
#jira UE-39950
Change 3247675 on 2017/01/05 by Maciej.Mroz
BP is not DataOnly, when it overrides an inherited component
related to UE-40131
Change 3247985 on 2017/01/05 by Maciej.Mroz
NativizationSummary object is always present.
#jira UE-40035
Change 3249423 on 2017/01/06 by Mike.Beach
Mirroring CL 3248792 from Orion.
Fix to keep placeholder classes from being needlessly created (when the object they represent already exists) - instead, attempt to lookup and find the existing import objects (which used to be set, but could be cleared during async loading by FLinkerManager::DissociateImportsAndForcedExports()).
#jira OR-34038
Change 3249568 on 2017/01/06 by Mike.Beach
Updating the UBlueprintThumbnailRenderer API so it can be sub-classed by plugin/projects.
PR #2899: Expose UBlueprintThumbnailRenderer in the API (Contributed by e-agaubatz)
#jira UE-38004
Change 3251903 on 2017/01/10 by Phillip.Kavan
[UE-31640] Function inputs are now exposed as variable "Get" nodes via the right-click context menu in a Blueprint function graph context.
Note: Changes are based on shelved CL# 2452724, original proof-of-concept code (credit: Michael.Noland).
#jira UE-31640
#fyi Michael.Noland
Change 3252119 on 2017/01/10 by Phillip.Kavan
CIS fix (shadowed variable).
Change 3252744 on 2017/01/10 by Dan.Oconnor
Add GMinimalCompileOnLoad path for postponing compile on load until all data has been loaded - long term this will be used to improve bp compiler infrastructure (performance, correctness, succinctness)
Change 3252968 on 2017/01/10 by Phillip.Kavan
[UE-36798] Fix for an infinite loop case in the math expression parser.
#jira UE-36798
Change 3253153 on 2017/01/10 by Dan.Oconnor
Fixed construction scripts not being loaded before instancing occurs when using new lighter compile path
Change 3253171 on 2017/01/10 by Mike.Beach
Mirrored CL 3253147.
Properly fills out FPropertyChangedEvent's MemberProperty field, for the property editor's NotifyHook. As its comment implies, "MemberProperty" is meant to represent the outermost property (in scenarios, like with nested struct properties). It was not working this way, and was instead set to the same nested property.
Change 3253220 on 2017/01/10 by Dan.Oconnor
These pins should infer together
#jira UE-40427
Change 3253223 on 2017/01/10 by Phillip.Kavan
[UE-35050] Fix a crash that occurs on an attempt to rename the category of an implemented interface function inherited from a native parent class in the My Blueprint panel.
change summary:
- modified FBlueprintEditorUtils::FindFunctionInImplementedInterfaces() to accept an additional input parameter so that callers can opt-in to searching all inherited interface classes
- modified SMyBlueprint::CanRequestRenameOnActionNode() to prevent rename on implemented interface functions inherited from a native parent class
#jira UE-35050
Change 3253259 on 2017/01/10 by Dan.Oconnor
Quick cleanup, this stuff is in progress
Change 3253983 on 2017/01/11 by Phillip.Kavan
[UE-35629] Disable external curve asset creation when editing a local variable's default value in a Blueprint graph.
change summary:
- modified FCurveStructCustomization::CustomizeChildren() to set the "create" button visibility to "collapsed" when the Owner is NULL (as the default asset path is inferred from the Owner's package).
#jira UE-35629
Change 3254024 on 2017/01/11 by Phillip.Kavan
[UE-40131] Non-native child BPs can now properly override a nativized parent BP's components in a cooked build with exclusive Blueprint class nativiation.
change summary:
- added UBlueprintGeneratedClass::CheckAndApplyComponentTemplateOverrides()
- switched FComponentKey::OwnerClass type from UBlueprintGeneratedClass to UClass to allow the reference to be loaded when it's a nativized BP class.
- modified AActor::PostLoadSubobjects() to apply ICH template overrides to inherited component subobjects on load (only in a cooked build)
- modified AActor::PostSpawnInitialize() to also apply ICH template overrides to inherited component subobjects on new Actor spawns (only in a cooked build)
- modified FBlueprintEditorUtils::IsDataOnlyBlueprint() to additionally reject BPs that have a non-empty ICH (from Maciej)
- added UBlueprint::bHasNativizedParent to cache this as an indicator for cooked builds to allow Actor instances to avoid incurring additional overhead for this at load time in the general case
#jira UE-40131
Change 3254176 on 2017/01/11 by Mike.Beach
Mirroring CL 3245838 to unblock the Odin build. Downgrading new error to warning until we can address it in content (and fully understand why it is triggering).
#jira UE-40470
Change 3254391 on 2017/01/11 by Phillip.Kavan
[UE-40131] CIS fix (non-unity).
Change 3254442 on 2017/01/11 by Mike.Beach
Mirroring CL 3245069 (from RobM), which is described as a "temp fix".
#jira UE-40399
Change 3254599 on 2017/01/11 by Mike.Beach
Updating some of our GetRedirectPinNames() functions - making local copy of an array element instead of a reference. We're adding to the array right after, and the ref can become invalid (if the array is grown and reallocated). Came to us via UDN.
Change 3254624 on 2017/01/11 by Mike.Beach
Backing out CL 3247675, as it removed the "data-only" status from certain Blueprints that, IMO, are still considered "data-only". This would have reprecussions to editor (compile-on) load times, and affect how these Blueprints are presented to the user.
#fyi Maciej.Mroz, Phillip.Kavan
Change 3254671 on 2017/01/11 by Mike.Beach
Resolving CIS warning - USE_EVENT_DRIVEN_ASYNC_LOAD was replaced with GEventDrivenLoaderEnabled.
[CL 3255791 by Mike Beach in Main branch]
2017-01-12 14:36:04 -05:00
|
|
|
void FKismet2CompilerModule::RefreshVariables(UBlueprint* Blueprint)
|
|
|
|
|
{
|
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3298107)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3256692 on 2017/01/13 by Ben.Cosh
This updates the blueprint variable config option tooltip to be more accurate when describing the config to override the value in.
#Jira UE-40334 - Blueprint variables report the wrong config file in the UI when using the set from config option
#Proj Kismet
Change 3258553 on 2017/01/16 by Phillip.Kavan
[UE-40131] Revised fix that will work for "inclusive" BP nativization with data-only BPs.
- Mirrored from //UE4/Release-4.15 (CL# 3258541).
#jira UE-40131
Change 3258958 on 2017/01/16 by Mike.Beach
Adopted fix from UDN - resolves problems with Blueprints which inherit from UDataAsset. Compiling/Reinstancing them was leaving the data asset packages empty.
Change 3259363 on 2017/01/16 by Mike.Beach
Revising fix in UBlueprint::BeginCacheForCookedPlatformData(), saving off nativization data if the -nativizeAssets param is present (not just if it was enabled in packaging settings).
#jira UE-40620
Change 3260722 on 2017/01/17 by Maciej.Mroz
Exclude client-only BPGC from Server.
#jira UE-39728
Change 3261420 on 2017/01/17 by Dan.Oconnor
Final prototype of the GMinimalCompileOnLoad pass
Change 3262208 on 2017/01/18 by Dan.Oconnor
SA fix
Change 3263168 on 2017/01/18 by Dan.Oconnor
Tweak to minimal compile on load pass, doing node refreshing early because node refresh can trigger CDO generation (which cannot happen while reinstancing, unless the new class is ready)
Change 3263844 on 2017/01/19 by Maciej.Mroz
Error when CDO is created for an incomplete dynamic class
Change 3264647 on 2017/01/19 by Mike.Beach
PR #3146: Only ensure if ptr != nullptr (Contributed by projectgheist )
#jira UE-40846
Change 3264818 on 2017/01/19 by Dan.Oconnor
Undo overzealous use of GMinimalCompileOnLoad
Change 3265075 on 2017/01/19 by Dan.Oconnor
Make sure we use the authoritative class for the component template, fixes reinst issue in GMinimalCompileOnLoad pass
Change 3265085 on 2017/01/19 by Mike.Beach
Mirroring CL 3260397
Making it so CreateEvent nodes are searchable using the function name they are bound to (as requested by Jeff Farris). To find this data across your content library, in unopened Blueprints, you'll have to resave those Blueprints (so the new data is available in the asset registry).
Change 3272401 on 2017/01/25 by Mike.Beach
Fixed a bug where modifying certain timeline settings would not dirty the Blueprint.
PR #3137: UE-40674: Mark TimeLine BP as modified (Contributed by projectgheist)
#jira UE-40680, UE-40674
Change 3273050 on 2017/01/26 by Maciej.Mroz
#jira ODIN-4913, UE-40974
merged cl3268193 from Odin branch
Nativization:
- added ConstructTInlineValue function
- TInlineValue structures will be initialized using UScriptStruct::InitializeStruct, instead of callind default constructor ( default constructor is unrealible)
Change 3273052 on 2017/01/26 by Maciej.Mroz
#jira UE-40917
merged cl#3270456 from Odin branch
Nativization:
Actor template from ChildActorComponent is a subobject of nativized class.
Change 3275646 on 2017/01/27 by Dan.Oconnor
Fix obscure issue when reinstancing interface types
Change 3275811 on 2017/01/27 by Dan.Oconnor
ImplementsGetWorld now properly inherited for blueprint types that derive from a blueprint type that derives from a native type that "ImplementsGetWorld"
Change 3275922 on 2017/01/27 by Dan.Oconnor
Preserve trashed properties' names, don't force regen nodes when using the new compile manager (it has already regen'd nodes)
Change 3276037 on 2017/01/27 by Dan.Oconnor
Uses Authoritative class for this type check, added const version of GetAuthoritativeClass
Change 3276109 on 2017/01/27 by Phillip.Kavan
[UE-40894] Fix data loss issues with non-native Blueprint classes that override inherited component default values from a nativized parent Blueprint class hierarchy.
change summary:
- modified FBlueprintEditorUtils::BuildComponentInstancingData() to accept an additional parameter indicating whether or not to use the CDO or the template's Archetype as the basis for building the delta property list.
- revised UBlueprint::BeginCacheForCookedPlatformData() to first generate "override" data for ICH records that override SCS nodes from parent classes that are targeted for nativization. this also makes the optimized component instancing feature compatible with nativization as well (should that ever become useful).
- revised UBlueprintGeneratedClass::CheckAndApplyComponentTemplateOverrides() to utilize the additional delta property list data that's now generated at cook time along with a delta serialization pass against the ICH template that's serializes changed properties to a cached data block at load time. this cached "override" data is then applied to instanced subobjects inherited from nativized parent Blueprint classes using a minimal binary serialization pass.
#jira UE-40894
Change 3277671 on 2017/01/30 by Mike.Beach
Mirroring CL 3276602.
Refactoring FBlueprintCompilerCppBackend::SortNodesInUberGraphExecutionGroup() a bit. Catching cases that weren't acounted for - detecting cyclical logic now when we've pulled a node/statement out of order, and other nodes need to fall through to that logic (not relying on a goto).
#jira UE-41188, UE-41189, UE-41186, UE-41037
Change 3278454 on 2017/01/30 by Mike.Beach
Mirroring CL 3278054
Upgrading USimpleConstructionScript::FixupSceneNodeHierarchy() so that the SCS detects orphaned components, and adds them to the hierarchy (notifying users of the issue with a warning).
#jira UE-41247
Change 3278814 on 2017/01/31 by Maciej.Mroz
fixed CIS warning
fixed FBlueprintNativeCodeGenModule::FindReplacedNameAndOuter
Change 3279398 on 2017/01/31 by Mike.Beach
Back out changelist 3278454 - causing unforseen issues, restructuring the component hierarchy.
Change 3282200 on 2017/02/01 by Dan.Oconnor
Moved ForceLoad helpers into UBlueprint so that new compile on load path can prod the linker into loading stuff before flushing the compilation queue
Change 3282269 on 2017/02/01 by Mike.Beach
ClassGeneratedBy not dependable in cooked builds, must rely on class flags to determine if this is a Blueprint class.
Change 3284455 on 2017/02/02 by Dan.Oconnor
Reinstancer optimizations and skipping loader reset when using the new compile manager
Change 3284463 on 2017/02/02 by Dan.Oconnor
Handling missing GeneratedClass
Change 3284476 on 2017/02/02 by Dan.Oconnor
Flush compilation manager when we would normally do a bytecode pass, this guarantees clients of LoadObject that we won't reinstance a pointer on load (giving them back a stale object)
Change 3284523 on 2017/02/02 by Dan.Oconnor
Optimize FBlueprintUnloader::ReplaceStaleRefs, add option to skip reinstancing when recompiling bytecode, refactored bytecode recompilation options into a flag parameter
Change 3285731 on 2017/02/03 by Dan.Oconnor
Merging //UE4/Dev-Main to Dev-Blueprints (//UE4/Dev-Blueprints)
Auto resolved, with merging:
K2Node_CreateDelegate.h/cpp, KismetCompiler.cpp, WidgetBlueprintCompiler.cpp, Kismet2.cpp, KismetReinstanceUtilities.cpp/h, KismetEditorUtils.h, BlueprintSupport.cpp, Class.cpp, LinkerLoad.cpp, Obj.cpp, Class.h, Object.h, BlueprintGeneratedClass.cpp, DefaultEngine.ini,
Manually resolved:
BlueprintEditorUtils.cpp, TestRunner.Automation.Tests.cs, OrionAutobuyCardStatEntry.cpp/h, OrionStateWidget_DraftLobby.cpp
All else resolved safely (no merging)
Change 3286019 on 2017/02/03 by Dan.Oconnor
Add assertion that was added in main
Change 3286031 on 2017/02/03 by Dan.Oconnor
Build fix, missing include
Change 3286056 on 2017/02/03 by Mike.Beach
Corrected fix (from CL 3278454, which had to be backed out) - USimpleConstructionScript::FixupSceneNodeHierarchy() so that the SCS detects orphaned components, and adds them to the hierarchy (notifying users of the issue with a warning).
#jira UE-41247
Change 3286302 on 2017/02/03 by Dan.Oconnor
Allow reinstancing to run very early or in other situation where GEditor is not yet set up
Change 3286386 on 2017/02/03 by Dan.Oconnor
GMinimalCompileOnLoad checks no longer needed with my local changes to BlueprintCompilationManager
Change 3286391 on 2017/02/03 by Dan.Oconnor
Missed old comment
Change 3286614 on 2017/02/03 by Dan.Oconnor
GMinimalCompileOnLoad logic no longer needed
Change 3286655 on 2017/02/03 by Dan.Oconnor
Refactor FKismetEditorUtilities::CompileBlueprint flags into EBlueprintCompileOptions
Change 3286662 on 2017/02/03 by Dan.Oconnor
Build fix, missed file
Change 3288770 on 2017/02/06 by Mike.Beach
Attempt to fix up CIS warnings from CL 3286056.
Change 3289236 on 2017/02/06 by Mike.Beach
Missed fix for CIS warning.
Change 3289276 on 2017/02/06 by Dan.Oconnor
Duplication of CDO is unnecessary
#fyi Maciej.Mroz
Change 3289334 on 2017/02/06 by Dan.Oconnor
Add option to skip all reinstancing logic when running CompileBlueprint - used locally by the blueprint compilation manager. Fixed Typo.
Change 3289443 on 2017/02/06 by Dan.Oconnor
Further cleanup of GMinimalCompileOnLoad abuse. added flag to skip reinstancing and "stub on failure" compile pass
Change 3290509 on 2017/02/07 by Dan.Oconnor
Addressed this with a change to the blueprint compiler manager - no modification needed
Change 3290534 on 2017/02/07 by Dan.Oconnor
Remove old forward declare and outdated comment
Change 3291446 on 2017/02/07 by Dan.Oconnor
This CPFUO call is unused with my latest iteration on the compiler manager
Change 3291516 on 2017/02/07 by Dan.Oconnor
Running compile manager earlier means we don't need to worry about this weird (and costly) call
Change 3291534 on 2017/02/07 by Dan.Oconnor
This compile children call is no longer running with latest improvents to the compile manager
Change 3292587 on 2017/02/08 by Maciej.Mroz
#jira UE-41694
Mirroring cl#3292273 from Odin branch
Change 3293344 on 2017/02/08 by Dan.Oconnor
Iteration on blueprint compile manager - fortnite loads without issue. For now I do the three compile passes that are done by the existing load paths. Timing is actually quite reasonable. Centralizing reinstancing has sped things up.
#fyi Maciej.Mroz
Change 3293565 on 2017/02/08 by Dan.Oconnor
Back out changelist 3293344 - wrong CL
Change 3293567 on 2017/02/08 by Dan.Oconnor
Iteration on blueprint compile manager - fortnite loads without issue. For now I do the three compile passes that are done by the existing load paths. Timing is actually quite reasonable. Centralizing reinstancing has sped things up.
#fyi Maciej.Mroz
Change 3294334 on 2017/02/09 by Phillip.Kavan
[UE-41246] Fix misaligned memory access of noexport struct properties leading to incorrectly initialized values.
- Mirrored from //Odin/Main/... (CL# 3284308).
#jira UE-41246
Change 3294343 on 2017/02/09 by Phillip.Kavan
[UE-41246] Add a whitelist mechanism to handle native noexport types that can support direct field access in nativized Blueprint code.
- Mirrored from //Odin/Main/... (CL# 3285789).
#jira UE-41246
Change 3295913 on 2017/02/09 by Dan.Oconnor
Back out reinstancer optimization, failing to find a reference and it's causing a crash when a component is renamed
#jira UE-41843
Change 3297279 on 2017/02/10 by Dan.Oconnor
SA fix
Change 3297587 on 2017/02/10 by Mike.Beach
Temporarily disabling a spurious warning that gets triggered in Fortnite, when correctly excluding client-only Blueprints.
#jira UE-41880
Change 3298078 on 2017/02/10 by Dan.Oconnor
Try to suppress confused SA warning
[CL 3298251 by Mike Beach in Main branch]
2017-02-10 19:50:34 -05:00
|
|
|
#if 0 // disabled because this is a costly ensure:
|
|
|
|
|
// ensure that nothing is using this class cause that would be super bad:
|
|
|
|
|
TArray<UObject*> Instances;
|
|
|
|
|
GetObjectsOfClass(*(Blueprint->GeneratedClass), Instances);
|
|
|
|
|
ensure(Instances.Num() == 0 || Instances.Num() == 1);
|
|
|
|
|
#endif
|
|
|
|
|
|
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3255454)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3228496 on 2016/12/09 by Ben.Cosh
This change adds extra information to component template arrays so that the component class can be determined in builds that strip out objects of certain class types such as the editor dedicated server build.
#Jira UE-38842 - "LogBlueprint:Error: [Compiler BP_Skybox_World_RandomTrees_01] Error Can't connect pins ReturnValue and Target" after entering a lobby in a synced server
#Proj KismetCompiler, BlueprintGraph, UnrealEd, Core, Engine, Kismet, BlueprintCompilerCppBackend
Change 3232435 on 2016/12/13 by Ben.Cosh
Fix for a bug introduced in CL 3228496 that caused component templates to fail to be identified by name and resulted in blueprint compilation issues for add component nodes.
#Jira UE-39623 - Unknown template referenced by Add Component Node
#Proj BlueprintGraph, Engine
Change 3234581 on 2016/12/14 by Mike.Beach
Backing out fix for UE-38842 (CL 3228496/3232435/3232564) - mapping UBlueprintGeneratedClass's ComponentTemplates array to a new format was causing issues with deferred dependency loading during serialization (trying to extract type information from a placeholder object). We're opting for a smaller/simpler solution to UE-38842, which will be to store the component information on the node itself (not with the templates).
#jira UE-39707
Change 3236615 on 2016/12/15 by Maciej.Mroz
Nativization: Fixed getter fuctions in FUnconvertedWrapper, the returned ref won;t be const.
Change 3236967 on 2016/12/15 by Dan.Oconnor
Test data showing an error for jira issue UE-39808
Change 3237021 on 2016/12/15 by Dan.Oconnor
UE31622 test data
Change 3237046 on 2016/12/15 by Dan.Oconnor
UE-14123 test data
Change 3239289 on 2016/12/17 by Phillip.Kavan
[UE-38999] Dump component tree node hierarchy to the output log on error state during widget generation.
change summary:
- added FOnTableViewBadState delegate parameter to SSCSEditorDragDropTree
- added SSCSEditor::DumpTree() as the FOnTableViewBadState delegate implementatioon for the STableView widget (to provide us with more info on future occurrences)
#jira UE-38999
Change 3239448 on 2016/12/19 by Maciej.Mroz
#jira UE-39794
New way of collecting dependencies assets. Only directly used assets are listed. It will be used in projects with EDL enabled, once the "EDL boot time" is enabled.
Nativized projects with EDL disabled use the new mechanism as well. They use new __StaticDependenciesAssets functions generator. __StaticDependenciesAssets calls recursively __StaticDependenciesAssets of all Blueprints, that the current BP depends on. It reduces the size of __StaticDependenciesAssets.
Notice, that at the moment, this change should no affect any projects with EDL enabled (because the EDL boot time doesn't work yet).
Change 3239778 on 2016/12/19 by Phillip.Kavan
[UE-39854] Fix nativized assets build error when there are no native code dependencies.
change summary:
- modified FDependenciesGlobalMapHelper::EmitBodyCode() to emit a NULL entry when there are no other entries to emit, in order to avoid a zero-length array initialization error at compile time.
#jira UE-39854
Change 3239965 on 2016/12/19 by Phillip.Kavan
[UE-39733] Fix incorrect graph pin value display names for user-defined enum types.
change summary:
- switched UEnum::GetDisplayNameText() to be a virtual API
- added a UUserDefinedEnum::GetDisplayNameText() override to call FEnumEditorUtils::GetEnumeratorDisplayName()
#jira UE-39733
Change 3240422 on 2016/12/19 by Dan.Oconnor
Remove useless counter. ensureMsgf only fires once
Change 3242313 on 2016/12/21 by Phillip.Kavan
[UE-35418] The Actor details view will now refresh property mappings for the current Actor instance selection after a bytecode-only recompile of its Blueprint class as a dependency during reinstancing.
change summary:
- Modified FBlueprintCompileReinstancer::ReinstanceObjects() to invoke SelectActor() on the current editor selection after a bytecode-only recompile of its class as a dependent BP (i.e. when reinstancing/finalization is not actually incurred). This is meant to be consistent with how the refresh for the current Actor selection is handled by the reinstancer in the other cases.
#jira UE-35418
Change 3242409 on 2016/12/21 by Dan.Oconnor
PR #2995: Arbitrary base logarithm blueprint node (Contributed by Valkrysa)
#jira UE-39169
Change 3243207 on 2016/12/22 by Phillip.Kavan
[UE-39816] Renaming interface input/output parameters will no longer cause broken pin links at interface function call sites in Blueprints that are currently loaded.
change summary:
- modified FBasePinChangeHelper::Broadcast() to consider pin changes sourced from an interface Blueprint
- also revised non-interface function call site check code a bit to try and avoid doing some unnecessary work when possible, since this code runs through every call site node
#jira UE-39816
Change 3243210 on 2016/12/22 by Phillip.Kavan
[UE-39944] Extend the GetClassDefaults node to include output pin exceptions for TSet/TMap properties (i.e. mirror safeguards already in place for TArray).
change summary:
- deprecated 'bExcludeObjectArrays' and replaced with 'bExcludeObjectContainers' (not using a redirect because I need the old property serialized on load for backwards-compatibility)
- modified FClassDefaultsOptionalPinManager's ctor to consider both flags
- modified FClassDefaultsOptionalPinManager::CanTreatPropertyAsOptional() to also test for TSet/TMap types, and exclude them if they contain a non-class UObject property as the inner type (same as we do for TArray)
- modified UK2Node_GetClassDefaults::ValidateNodeDuringCompilation() to also test for TSet/TMap types, and emit a warning for existing pin connections that would have otherwise failed for newly-placed nodes (same as TArray)
- modified UK2Node_GetClassDefaults::ExpandNode() to generate the necessary script needed to create a copy of TSet/TMap property value outputs (same as we do for TArray types)
#jira UE-39944
Change 3243373 on 2016/12/23 by Maciej.Mroz
#jira UE-39794
-Nativized build with EDL enabled use new dependency-gathering system. It shrinks size of the .exe file. This code will change once the boot time EDL is enabled.
-In nativized code, ZCOnstructors are not called. They are replaced by ::StaticClass(). Static class doesn't call noting recursively. We still need to fix interfaces (they have no StaticClass).
- Workaround for UE-40026
- Various minior improvements.
Change 3244038 on 2016/12/28 by Phillip.Kavan
[UE-34488] Child Blueprint assets are now marked as dirty if its parent Blueprint incurs a strucutural change.
change summary:
- modified FBlueprintEditorUtils::MarkBlueprintAsStructurallyModified() to call MarkPackageDirty() after a skeleton-only compile pass on a child Blueprint.
notes:
- this only fixes the issue for child Blueprints that are loaded when the change to the parent Blueprint occurs. unloaded child Blueprints would still need a redirector to fix this up on load.
#jira UE-34488
Change 3244087 on 2016/12/28 by Phillip.Kavan
CIS warning fix (C6236).
Change 3244388 on 2016/12/30 by Phillip.Kavan
[UE-39816] Fix broken pin links caused by renaming interface function input/output parameters prior to compiling the interface, but after renaming the function itself.
change summary:
- modified FBlueprintEditorUtils::FindFunctionInImplementedInterfaces() to prefer the skeleton class when searching, as that is always up-to-date.
- modified FBlueprintEditorUtils::RenameGraph() to update *all* function call site nodes, rather than just those within the current Blueprint class scope.
#jira UE-39816
Change 3245322 on 2017/01/03 by Maciej.Mroz
#jira UE-40125
Fixed a crash when implementing a native interface in a BP
Change 3245667 on 2017/01/03 by Mike.Beach
Mirroring CL 3245664 - Making it so level script bound nodes are fixed up on load (in case the level instances were saved out without the bindings).
#jira UE-39950
Change 3247675 on 2017/01/05 by Maciej.Mroz
BP is not DataOnly, when it overrides an inherited component
related to UE-40131
Change 3247985 on 2017/01/05 by Maciej.Mroz
NativizationSummary object is always present.
#jira UE-40035
Change 3249423 on 2017/01/06 by Mike.Beach
Mirroring CL 3248792 from Orion.
Fix to keep placeholder classes from being needlessly created (when the object they represent already exists) - instead, attempt to lookup and find the existing import objects (which used to be set, but could be cleared during async loading by FLinkerManager::DissociateImportsAndForcedExports()).
#jira OR-34038
Change 3249568 on 2017/01/06 by Mike.Beach
Updating the UBlueprintThumbnailRenderer API so it can be sub-classed by plugin/projects.
PR #2899: Expose UBlueprintThumbnailRenderer in the API (Contributed by e-agaubatz)
#jira UE-38004
Change 3251903 on 2017/01/10 by Phillip.Kavan
[UE-31640] Function inputs are now exposed as variable "Get" nodes via the right-click context menu in a Blueprint function graph context.
Note: Changes are based on shelved CL# 2452724, original proof-of-concept code (credit: Michael.Noland).
#jira UE-31640
#fyi Michael.Noland
Change 3252119 on 2017/01/10 by Phillip.Kavan
CIS fix (shadowed variable).
Change 3252744 on 2017/01/10 by Dan.Oconnor
Add GMinimalCompileOnLoad path for postponing compile on load until all data has been loaded - long term this will be used to improve bp compiler infrastructure (performance, correctness, succinctness)
Change 3252968 on 2017/01/10 by Phillip.Kavan
[UE-36798] Fix for an infinite loop case in the math expression parser.
#jira UE-36798
Change 3253153 on 2017/01/10 by Dan.Oconnor
Fixed construction scripts not being loaded before instancing occurs when using new lighter compile path
Change 3253171 on 2017/01/10 by Mike.Beach
Mirrored CL 3253147.
Properly fills out FPropertyChangedEvent's MemberProperty field, for the property editor's NotifyHook. As its comment implies, "MemberProperty" is meant to represent the outermost property (in scenarios, like with nested struct properties). It was not working this way, and was instead set to the same nested property.
Change 3253220 on 2017/01/10 by Dan.Oconnor
These pins should infer together
#jira UE-40427
Change 3253223 on 2017/01/10 by Phillip.Kavan
[UE-35050] Fix a crash that occurs on an attempt to rename the category of an implemented interface function inherited from a native parent class in the My Blueprint panel.
change summary:
- modified FBlueprintEditorUtils::FindFunctionInImplementedInterfaces() to accept an additional input parameter so that callers can opt-in to searching all inherited interface classes
- modified SMyBlueprint::CanRequestRenameOnActionNode() to prevent rename on implemented interface functions inherited from a native parent class
#jira UE-35050
Change 3253259 on 2017/01/10 by Dan.Oconnor
Quick cleanup, this stuff is in progress
Change 3253983 on 2017/01/11 by Phillip.Kavan
[UE-35629] Disable external curve asset creation when editing a local variable's default value in a Blueprint graph.
change summary:
- modified FCurveStructCustomization::CustomizeChildren() to set the "create" button visibility to "collapsed" when the Owner is NULL (as the default asset path is inferred from the Owner's package).
#jira UE-35629
Change 3254024 on 2017/01/11 by Phillip.Kavan
[UE-40131] Non-native child BPs can now properly override a nativized parent BP's components in a cooked build with exclusive Blueprint class nativiation.
change summary:
- added UBlueprintGeneratedClass::CheckAndApplyComponentTemplateOverrides()
- switched FComponentKey::OwnerClass type from UBlueprintGeneratedClass to UClass to allow the reference to be loaded when it's a nativized BP class.
- modified AActor::PostLoadSubobjects() to apply ICH template overrides to inherited component subobjects on load (only in a cooked build)
- modified AActor::PostSpawnInitialize() to also apply ICH template overrides to inherited component subobjects on new Actor spawns (only in a cooked build)
- modified FBlueprintEditorUtils::IsDataOnlyBlueprint() to additionally reject BPs that have a non-empty ICH (from Maciej)
- added UBlueprint::bHasNativizedParent to cache this as an indicator for cooked builds to allow Actor instances to avoid incurring additional overhead for this at load time in the general case
#jira UE-40131
Change 3254176 on 2017/01/11 by Mike.Beach
Mirroring CL 3245838 to unblock the Odin build. Downgrading new error to warning until we can address it in content (and fully understand why it is triggering).
#jira UE-40470
Change 3254391 on 2017/01/11 by Phillip.Kavan
[UE-40131] CIS fix (non-unity).
Change 3254442 on 2017/01/11 by Mike.Beach
Mirroring CL 3245069 (from RobM), which is described as a "temp fix".
#jira UE-40399
Change 3254599 on 2017/01/11 by Mike.Beach
Updating some of our GetRedirectPinNames() functions - making local copy of an array element instead of a reference. We're adding to the array right after, and the ref can become invalid (if the array is grown and reallocated). Came to us via UDN.
Change 3254624 on 2017/01/11 by Mike.Beach
Backing out CL 3247675, as it removed the "data-only" status from certain Blueprints that, IMO, are still considered "data-only". This would have reprecussions to editor (compile-on) load times, and affect how these Blueprints are presented to the user.
#fyi Maciej.Mroz, Phillip.Kavan
Change 3254671 on 2017/01/11 by Mike.Beach
Resolving CIS warning - USE_EVENT_DRIVEN_ASYNC_LOAD was replaced with GEventDrivenLoaderEnabled.
[CL 3255791 by Mike Beach in Main branch]
2017-01-12 14:36:04 -05:00
|
|
|
const UEdGraphSchema_K2* K2Schema = GetDefault<UEdGraphSchema_K2>();
|
|
|
|
|
FCompilerResultsLog MessageLog;
|
|
|
|
|
|
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3298107)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3256692 on 2017/01/13 by Ben.Cosh
This updates the blueprint variable config option tooltip to be more accurate when describing the config to override the value in.
#Jira UE-40334 - Blueprint variables report the wrong config file in the UI when using the set from config option
#Proj Kismet
Change 3258553 on 2017/01/16 by Phillip.Kavan
[UE-40131] Revised fix that will work for "inclusive" BP nativization with data-only BPs.
- Mirrored from //UE4/Release-4.15 (CL# 3258541).
#jira UE-40131
Change 3258958 on 2017/01/16 by Mike.Beach
Adopted fix from UDN - resolves problems with Blueprints which inherit from UDataAsset. Compiling/Reinstancing them was leaving the data asset packages empty.
Change 3259363 on 2017/01/16 by Mike.Beach
Revising fix in UBlueprint::BeginCacheForCookedPlatformData(), saving off nativization data if the -nativizeAssets param is present (not just if it was enabled in packaging settings).
#jira UE-40620
Change 3260722 on 2017/01/17 by Maciej.Mroz
Exclude client-only BPGC from Server.
#jira UE-39728
Change 3261420 on 2017/01/17 by Dan.Oconnor
Final prototype of the GMinimalCompileOnLoad pass
Change 3262208 on 2017/01/18 by Dan.Oconnor
SA fix
Change 3263168 on 2017/01/18 by Dan.Oconnor
Tweak to minimal compile on load pass, doing node refreshing early because node refresh can trigger CDO generation (which cannot happen while reinstancing, unless the new class is ready)
Change 3263844 on 2017/01/19 by Maciej.Mroz
Error when CDO is created for an incomplete dynamic class
Change 3264647 on 2017/01/19 by Mike.Beach
PR #3146: Only ensure if ptr != nullptr (Contributed by projectgheist )
#jira UE-40846
Change 3264818 on 2017/01/19 by Dan.Oconnor
Undo overzealous use of GMinimalCompileOnLoad
Change 3265075 on 2017/01/19 by Dan.Oconnor
Make sure we use the authoritative class for the component template, fixes reinst issue in GMinimalCompileOnLoad pass
Change 3265085 on 2017/01/19 by Mike.Beach
Mirroring CL 3260397
Making it so CreateEvent nodes are searchable using the function name they are bound to (as requested by Jeff Farris). To find this data across your content library, in unopened Blueprints, you'll have to resave those Blueprints (so the new data is available in the asset registry).
Change 3272401 on 2017/01/25 by Mike.Beach
Fixed a bug where modifying certain timeline settings would not dirty the Blueprint.
PR #3137: UE-40674: Mark TimeLine BP as modified (Contributed by projectgheist)
#jira UE-40680, UE-40674
Change 3273050 on 2017/01/26 by Maciej.Mroz
#jira ODIN-4913, UE-40974
merged cl3268193 from Odin branch
Nativization:
- added ConstructTInlineValue function
- TInlineValue structures will be initialized using UScriptStruct::InitializeStruct, instead of callind default constructor ( default constructor is unrealible)
Change 3273052 on 2017/01/26 by Maciej.Mroz
#jira UE-40917
merged cl#3270456 from Odin branch
Nativization:
Actor template from ChildActorComponent is a subobject of nativized class.
Change 3275646 on 2017/01/27 by Dan.Oconnor
Fix obscure issue when reinstancing interface types
Change 3275811 on 2017/01/27 by Dan.Oconnor
ImplementsGetWorld now properly inherited for blueprint types that derive from a blueprint type that derives from a native type that "ImplementsGetWorld"
Change 3275922 on 2017/01/27 by Dan.Oconnor
Preserve trashed properties' names, don't force regen nodes when using the new compile manager (it has already regen'd nodes)
Change 3276037 on 2017/01/27 by Dan.Oconnor
Uses Authoritative class for this type check, added const version of GetAuthoritativeClass
Change 3276109 on 2017/01/27 by Phillip.Kavan
[UE-40894] Fix data loss issues with non-native Blueprint classes that override inherited component default values from a nativized parent Blueprint class hierarchy.
change summary:
- modified FBlueprintEditorUtils::BuildComponentInstancingData() to accept an additional parameter indicating whether or not to use the CDO or the template's Archetype as the basis for building the delta property list.
- revised UBlueprint::BeginCacheForCookedPlatformData() to first generate "override" data for ICH records that override SCS nodes from parent classes that are targeted for nativization. this also makes the optimized component instancing feature compatible with nativization as well (should that ever become useful).
- revised UBlueprintGeneratedClass::CheckAndApplyComponentTemplateOverrides() to utilize the additional delta property list data that's now generated at cook time along with a delta serialization pass against the ICH template that's serializes changed properties to a cached data block at load time. this cached "override" data is then applied to instanced subobjects inherited from nativized parent Blueprint classes using a minimal binary serialization pass.
#jira UE-40894
Change 3277671 on 2017/01/30 by Mike.Beach
Mirroring CL 3276602.
Refactoring FBlueprintCompilerCppBackend::SortNodesInUberGraphExecutionGroup() a bit. Catching cases that weren't acounted for - detecting cyclical logic now when we've pulled a node/statement out of order, and other nodes need to fall through to that logic (not relying on a goto).
#jira UE-41188, UE-41189, UE-41186, UE-41037
Change 3278454 on 2017/01/30 by Mike.Beach
Mirroring CL 3278054
Upgrading USimpleConstructionScript::FixupSceneNodeHierarchy() so that the SCS detects orphaned components, and adds them to the hierarchy (notifying users of the issue with a warning).
#jira UE-41247
Change 3278814 on 2017/01/31 by Maciej.Mroz
fixed CIS warning
fixed FBlueprintNativeCodeGenModule::FindReplacedNameAndOuter
Change 3279398 on 2017/01/31 by Mike.Beach
Back out changelist 3278454 - causing unforseen issues, restructuring the component hierarchy.
Change 3282200 on 2017/02/01 by Dan.Oconnor
Moved ForceLoad helpers into UBlueprint so that new compile on load path can prod the linker into loading stuff before flushing the compilation queue
Change 3282269 on 2017/02/01 by Mike.Beach
ClassGeneratedBy not dependable in cooked builds, must rely on class flags to determine if this is a Blueprint class.
Change 3284455 on 2017/02/02 by Dan.Oconnor
Reinstancer optimizations and skipping loader reset when using the new compile manager
Change 3284463 on 2017/02/02 by Dan.Oconnor
Handling missing GeneratedClass
Change 3284476 on 2017/02/02 by Dan.Oconnor
Flush compilation manager when we would normally do a bytecode pass, this guarantees clients of LoadObject that we won't reinstance a pointer on load (giving them back a stale object)
Change 3284523 on 2017/02/02 by Dan.Oconnor
Optimize FBlueprintUnloader::ReplaceStaleRefs, add option to skip reinstancing when recompiling bytecode, refactored bytecode recompilation options into a flag parameter
Change 3285731 on 2017/02/03 by Dan.Oconnor
Merging //UE4/Dev-Main to Dev-Blueprints (//UE4/Dev-Blueprints)
Auto resolved, with merging:
K2Node_CreateDelegate.h/cpp, KismetCompiler.cpp, WidgetBlueprintCompiler.cpp, Kismet2.cpp, KismetReinstanceUtilities.cpp/h, KismetEditorUtils.h, BlueprintSupport.cpp, Class.cpp, LinkerLoad.cpp, Obj.cpp, Class.h, Object.h, BlueprintGeneratedClass.cpp, DefaultEngine.ini,
Manually resolved:
BlueprintEditorUtils.cpp, TestRunner.Automation.Tests.cs, OrionAutobuyCardStatEntry.cpp/h, OrionStateWidget_DraftLobby.cpp
All else resolved safely (no merging)
Change 3286019 on 2017/02/03 by Dan.Oconnor
Add assertion that was added in main
Change 3286031 on 2017/02/03 by Dan.Oconnor
Build fix, missing include
Change 3286056 on 2017/02/03 by Mike.Beach
Corrected fix (from CL 3278454, which had to be backed out) - USimpleConstructionScript::FixupSceneNodeHierarchy() so that the SCS detects orphaned components, and adds them to the hierarchy (notifying users of the issue with a warning).
#jira UE-41247
Change 3286302 on 2017/02/03 by Dan.Oconnor
Allow reinstancing to run very early or in other situation where GEditor is not yet set up
Change 3286386 on 2017/02/03 by Dan.Oconnor
GMinimalCompileOnLoad checks no longer needed with my local changes to BlueprintCompilationManager
Change 3286391 on 2017/02/03 by Dan.Oconnor
Missed old comment
Change 3286614 on 2017/02/03 by Dan.Oconnor
GMinimalCompileOnLoad logic no longer needed
Change 3286655 on 2017/02/03 by Dan.Oconnor
Refactor FKismetEditorUtilities::CompileBlueprint flags into EBlueprintCompileOptions
Change 3286662 on 2017/02/03 by Dan.Oconnor
Build fix, missed file
Change 3288770 on 2017/02/06 by Mike.Beach
Attempt to fix up CIS warnings from CL 3286056.
Change 3289236 on 2017/02/06 by Mike.Beach
Missed fix for CIS warning.
Change 3289276 on 2017/02/06 by Dan.Oconnor
Duplication of CDO is unnecessary
#fyi Maciej.Mroz
Change 3289334 on 2017/02/06 by Dan.Oconnor
Add option to skip all reinstancing logic when running CompileBlueprint - used locally by the blueprint compilation manager. Fixed Typo.
Change 3289443 on 2017/02/06 by Dan.Oconnor
Further cleanup of GMinimalCompileOnLoad abuse. added flag to skip reinstancing and "stub on failure" compile pass
Change 3290509 on 2017/02/07 by Dan.Oconnor
Addressed this with a change to the blueprint compiler manager - no modification needed
Change 3290534 on 2017/02/07 by Dan.Oconnor
Remove old forward declare and outdated comment
Change 3291446 on 2017/02/07 by Dan.Oconnor
This CPFUO call is unused with my latest iteration on the compiler manager
Change 3291516 on 2017/02/07 by Dan.Oconnor
Running compile manager earlier means we don't need to worry about this weird (and costly) call
Change 3291534 on 2017/02/07 by Dan.Oconnor
This compile children call is no longer running with latest improvents to the compile manager
Change 3292587 on 2017/02/08 by Maciej.Mroz
#jira UE-41694
Mirroring cl#3292273 from Odin branch
Change 3293344 on 2017/02/08 by Dan.Oconnor
Iteration on blueprint compile manager - fortnite loads without issue. For now I do the three compile passes that are done by the existing load paths. Timing is actually quite reasonable. Centralizing reinstancing has sped things up.
#fyi Maciej.Mroz
Change 3293565 on 2017/02/08 by Dan.Oconnor
Back out changelist 3293344 - wrong CL
Change 3293567 on 2017/02/08 by Dan.Oconnor
Iteration on blueprint compile manager - fortnite loads without issue. For now I do the three compile passes that are done by the existing load paths. Timing is actually quite reasonable. Centralizing reinstancing has sped things up.
#fyi Maciej.Mroz
Change 3294334 on 2017/02/09 by Phillip.Kavan
[UE-41246] Fix misaligned memory access of noexport struct properties leading to incorrectly initialized values.
- Mirrored from //Odin/Main/... (CL# 3284308).
#jira UE-41246
Change 3294343 on 2017/02/09 by Phillip.Kavan
[UE-41246] Add a whitelist mechanism to handle native noexport types that can support direct field access in nativized Blueprint code.
- Mirrored from //Odin/Main/... (CL# 3285789).
#jira UE-41246
Change 3295913 on 2017/02/09 by Dan.Oconnor
Back out reinstancer optimization, failing to find a reference and it's causing a crash when a component is renamed
#jira UE-41843
Change 3297279 on 2017/02/10 by Dan.Oconnor
SA fix
Change 3297587 on 2017/02/10 by Mike.Beach
Temporarily disabling a spurious warning that gets triggered in Fortnite, when correctly excluding client-only Blueprints.
#jira UE-41880
Change 3298078 on 2017/02/10 by Dan.Oconnor
Try to suppress confused SA warning
[CL 3298251 by Mike Beach in Main branch]
2017-02-10 19:50:34 -05:00
|
|
|
bool bMissingProperty = false;
|
|
|
|
|
TArray<int32> MissingVariables;
|
|
|
|
|
|
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3255454)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3228496 on 2016/12/09 by Ben.Cosh
This change adds extra information to component template arrays so that the component class can be determined in builds that strip out objects of certain class types such as the editor dedicated server build.
#Jira UE-38842 - "LogBlueprint:Error: [Compiler BP_Skybox_World_RandomTrees_01] Error Can't connect pins ReturnValue and Target" after entering a lobby in a synced server
#Proj KismetCompiler, BlueprintGraph, UnrealEd, Core, Engine, Kismet, BlueprintCompilerCppBackend
Change 3232435 on 2016/12/13 by Ben.Cosh
Fix for a bug introduced in CL 3228496 that caused component templates to fail to be identified by name and resulted in blueprint compilation issues for add component nodes.
#Jira UE-39623 - Unknown template referenced by Add Component Node
#Proj BlueprintGraph, Engine
Change 3234581 on 2016/12/14 by Mike.Beach
Backing out fix for UE-38842 (CL 3228496/3232435/3232564) - mapping UBlueprintGeneratedClass's ComponentTemplates array to a new format was causing issues with deferred dependency loading during serialization (trying to extract type information from a placeholder object). We're opting for a smaller/simpler solution to UE-38842, which will be to store the component information on the node itself (not with the templates).
#jira UE-39707
Change 3236615 on 2016/12/15 by Maciej.Mroz
Nativization: Fixed getter fuctions in FUnconvertedWrapper, the returned ref won;t be const.
Change 3236967 on 2016/12/15 by Dan.Oconnor
Test data showing an error for jira issue UE-39808
Change 3237021 on 2016/12/15 by Dan.Oconnor
UE31622 test data
Change 3237046 on 2016/12/15 by Dan.Oconnor
UE-14123 test data
Change 3239289 on 2016/12/17 by Phillip.Kavan
[UE-38999] Dump component tree node hierarchy to the output log on error state during widget generation.
change summary:
- added FOnTableViewBadState delegate parameter to SSCSEditorDragDropTree
- added SSCSEditor::DumpTree() as the FOnTableViewBadState delegate implementatioon for the STableView widget (to provide us with more info on future occurrences)
#jira UE-38999
Change 3239448 on 2016/12/19 by Maciej.Mroz
#jira UE-39794
New way of collecting dependencies assets. Only directly used assets are listed. It will be used in projects with EDL enabled, once the "EDL boot time" is enabled.
Nativized projects with EDL disabled use the new mechanism as well. They use new __StaticDependenciesAssets functions generator. __StaticDependenciesAssets calls recursively __StaticDependenciesAssets of all Blueprints, that the current BP depends on. It reduces the size of __StaticDependenciesAssets.
Notice, that at the moment, this change should no affect any projects with EDL enabled (because the EDL boot time doesn't work yet).
Change 3239778 on 2016/12/19 by Phillip.Kavan
[UE-39854] Fix nativized assets build error when there are no native code dependencies.
change summary:
- modified FDependenciesGlobalMapHelper::EmitBodyCode() to emit a NULL entry when there are no other entries to emit, in order to avoid a zero-length array initialization error at compile time.
#jira UE-39854
Change 3239965 on 2016/12/19 by Phillip.Kavan
[UE-39733] Fix incorrect graph pin value display names for user-defined enum types.
change summary:
- switched UEnum::GetDisplayNameText() to be a virtual API
- added a UUserDefinedEnum::GetDisplayNameText() override to call FEnumEditorUtils::GetEnumeratorDisplayName()
#jira UE-39733
Change 3240422 on 2016/12/19 by Dan.Oconnor
Remove useless counter. ensureMsgf only fires once
Change 3242313 on 2016/12/21 by Phillip.Kavan
[UE-35418] The Actor details view will now refresh property mappings for the current Actor instance selection after a bytecode-only recompile of its Blueprint class as a dependency during reinstancing.
change summary:
- Modified FBlueprintCompileReinstancer::ReinstanceObjects() to invoke SelectActor() on the current editor selection after a bytecode-only recompile of its class as a dependent BP (i.e. when reinstancing/finalization is not actually incurred). This is meant to be consistent with how the refresh for the current Actor selection is handled by the reinstancer in the other cases.
#jira UE-35418
Change 3242409 on 2016/12/21 by Dan.Oconnor
PR #2995: Arbitrary base logarithm blueprint node (Contributed by Valkrysa)
#jira UE-39169
Change 3243207 on 2016/12/22 by Phillip.Kavan
[UE-39816] Renaming interface input/output parameters will no longer cause broken pin links at interface function call sites in Blueprints that are currently loaded.
change summary:
- modified FBasePinChangeHelper::Broadcast() to consider pin changes sourced from an interface Blueprint
- also revised non-interface function call site check code a bit to try and avoid doing some unnecessary work when possible, since this code runs through every call site node
#jira UE-39816
Change 3243210 on 2016/12/22 by Phillip.Kavan
[UE-39944] Extend the GetClassDefaults node to include output pin exceptions for TSet/TMap properties (i.e. mirror safeguards already in place for TArray).
change summary:
- deprecated 'bExcludeObjectArrays' and replaced with 'bExcludeObjectContainers' (not using a redirect because I need the old property serialized on load for backwards-compatibility)
- modified FClassDefaultsOptionalPinManager's ctor to consider both flags
- modified FClassDefaultsOptionalPinManager::CanTreatPropertyAsOptional() to also test for TSet/TMap types, and exclude them if they contain a non-class UObject property as the inner type (same as we do for TArray)
- modified UK2Node_GetClassDefaults::ValidateNodeDuringCompilation() to also test for TSet/TMap types, and emit a warning for existing pin connections that would have otherwise failed for newly-placed nodes (same as TArray)
- modified UK2Node_GetClassDefaults::ExpandNode() to generate the necessary script needed to create a copy of TSet/TMap property value outputs (same as we do for TArray types)
#jira UE-39944
Change 3243373 on 2016/12/23 by Maciej.Mroz
#jira UE-39794
-Nativized build with EDL enabled use new dependency-gathering system. It shrinks size of the .exe file. This code will change once the boot time EDL is enabled.
-In nativized code, ZCOnstructors are not called. They are replaced by ::StaticClass(). Static class doesn't call noting recursively. We still need to fix interfaces (they have no StaticClass).
- Workaround for UE-40026
- Various minior improvements.
Change 3244038 on 2016/12/28 by Phillip.Kavan
[UE-34488] Child Blueprint assets are now marked as dirty if its parent Blueprint incurs a strucutural change.
change summary:
- modified FBlueprintEditorUtils::MarkBlueprintAsStructurallyModified() to call MarkPackageDirty() after a skeleton-only compile pass on a child Blueprint.
notes:
- this only fixes the issue for child Blueprints that are loaded when the change to the parent Blueprint occurs. unloaded child Blueprints would still need a redirector to fix this up on load.
#jira UE-34488
Change 3244087 on 2016/12/28 by Phillip.Kavan
CIS warning fix (C6236).
Change 3244388 on 2016/12/30 by Phillip.Kavan
[UE-39816] Fix broken pin links caused by renaming interface function input/output parameters prior to compiling the interface, but after renaming the function itself.
change summary:
- modified FBlueprintEditorUtils::FindFunctionInImplementedInterfaces() to prefer the skeleton class when searching, as that is always up-to-date.
- modified FBlueprintEditorUtils::RenameGraph() to update *all* function call site nodes, rather than just those within the current Blueprint class scope.
#jira UE-39816
Change 3245322 on 2017/01/03 by Maciej.Mroz
#jira UE-40125
Fixed a crash when implementing a native interface in a BP
Change 3245667 on 2017/01/03 by Mike.Beach
Mirroring CL 3245664 - Making it so level script bound nodes are fixed up on load (in case the level instances were saved out without the bindings).
#jira UE-39950
Change 3247675 on 2017/01/05 by Maciej.Mroz
BP is not DataOnly, when it overrides an inherited component
related to UE-40131
Change 3247985 on 2017/01/05 by Maciej.Mroz
NativizationSummary object is always present.
#jira UE-40035
Change 3249423 on 2017/01/06 by Mike.Beach
Mirroring CL 3248792 from Orion.
Fix to keep placeholder classes from being needlessly created (when the object they represent already exists) - instead, attempt to lookup and find the existing import objects (which used to be set, but could be cleared during async loading by FLinkerManager::DissociateImportsAndForcedExports()).
#jira OR-34038
Change 3249568 on 2017/01/06 by Mike.Beach
Updating the UBlueprintThumbnailRenderer API so it can be sub-classed by plugin/projects.
PR #2899: Expose UBlueprintThumbnailRenderer in the API (Contributed by e-agaubatz)
#jira UE-38004
Change 3251903 on 2017/01/10 by Phillip.Kavan
[UE-31640] Function inputs are now exposed as variable "Get" nodes via the right-click context menu in a Blueprint function graph context.
Note: Changes are based on shelved CL# 2452724, original proof-of-concept code (credit: Michael.Noland).
#jira UE-31640
#fyi Michael.Noland
Change 3252119 on 2017/01/10 by Phillip.Kavan
CIS fix (shadowed variable).
Change 3252744 on 2017/01/10 by Dan.Oconnor
Add GMinimalCompileOnLoad path for postponing compile on load until all data has been loaded - long term this will be used to improve bp compiler infrastructure (performance, correctness, succinctness)
Change 3252968 on 2017/01/10 by Phillip.Kavan
[UE-36798] Fix for an infinite loop case in the math expression parser.
#jira UE-36798
Change 3253153 on 2017/01/10 by Dan.Oconnor
Fixed construction scripts not being loaded before instancing occurs when using new lighter compile path
Change 3253171 on 2017/01/10 by Mike.Beach
Mirrored CL 3253147.
Properly fills out FPropertyChangedEvent's MemberProperty field, for the property editor's NotifyHook. As its comment implies, "MemberProperty" is meant to represent the outermost property (in scenarios, like with nested struct properties). It was not working this way, and was instead set to the same nested property.
Change 3253220 on 2017/01/10 by Dan.Oconnor
These pins should infer together
#jira UE-40427
Change 3253223 on 2017/01/10 by Phillip.Kavan
[UE-35050] Fix a crash that occurs on an attempt to rename the category of an implemented interface function inherited from a native parent class in the My Blueprint panel.
change summary:
- modified FBlueprintEditorUtils::FindFunctionInImplementedInterfaces() to accept an additional input parameter so that callers can opt-in to searching all inherited interface classes
- modified SMyBlueprint::CanRequestRenameOnActionNode() to prevent rename on implemented interface functions inherited from a native parent class
#jira UE-35050
Change 3253259 on 2017/01/10 by Dan.Oconnor
Quick cleanup, this stuff is in progress
Change 3253983 on 2017/01/11 by Phillip.Kavan
[UE-35629] Disable external curve asset creation when editing a local variable's default value in a Blueprint graph.
change summary:
- modified FCurveStructCustomization::CustomizeChildren() to set the "create" button visibility to "collapsed" when the Owner is NULL (as the default asset path is inferred from the Owner's package).
#jira UE-35629
Change 3254024 on 2017/01/11 by Phillip.Kavan
[UE-40131] Non-native child BPs can now properly override a nativized parent BP's components in a cooked build with exclusive Blueprint class nativiation.
change summary:
- added UBlueprintGeneratedClass::CheckAndApplyComponentTemplateOverrides()
- switched FComponentKey::OwnerClass type from UBlueprintGeneratedClass to UClass to allow the reference to be loaded when it's a nativized BP class.
- modified AActor::PostLoadSubobjects() to apply ICH template overrides to inherited component subobjects on load (only in a cooked build)
- modified AActor::PostSpawnInitialize() to also apply ICH template overrides to inherited component subobjects on new Actor spawns (only in a cooked build)
- modified FBlueprintEditorUtils::IsDataOnlyBlueprint() to additionally reject BPs that have a non-empty ICH (from Maciej)
- added UBlueprint::bHasNativizedParent to cache this as an indicator for cooked builds to allow Actor instances to avoid incurring additional overhead for this at load time in the general case
#jira UE-40131
Change 3254176 on 2017/01/11 by Mike.Beach
Mirroring CL 3245838 to unblock the Odin build. Downgrading new error to warning until we can address it in content (and fully understand why it is triggering).
#jira UE-40470
Change 3254391 on 2017/01/11 by Phillip.Kavan
[UE-40131] CIS fix (non-unity).
Change 3254442 on 2017/01/11 by Mike.Beach
Mirroring CL 3245069 (from RobM), which is described as a "temp fix".
#jira UE-40399
Change 3254599 on 2017/01/11 by Mike.Beach
Updating some of our GetRedirectPinNames() functions - making local copy of an array element instead of a reference. We're adding to the array right after, and the ref can become invalid (if the array is grown and reallocated). Came to us via UDN.
Change 3254624 on 2017/01/11 by Mike.Beach
Backing out CL 3247675, as it removed the "data-only" status from certain Blueprints that, IMO, are still considered "data-only". This would have reprecussions to editor (compile-on) load times, and affect how these Blueprints are presented to the user.
#fyi Maciej.Mroz, Phillip.Kavan
Change 3254671 on 2017/01/11 by Mike.Beach
Resolving CIS warning - USE_EVENT_DRIVEN_ASYNC_LOAD was replaced with GEventDrivenLoaderEnabled.
[CL 3255791 by Mike Beach in Main branch]
2017-01-12 14:36:04 -05:00
|
|
|
for (int32 VarIndex = 0; VarIndex < Blueprint->NewVariables.Num(); ++VarIndex)
|
|
|
|
|
{
|
2019-12-13 11:07:03 -05:00
|
|
|
FProperty* ExistingVariable = Blueprint->GeneratedClass->FindPropertyByName(Blueprint->NewVariables[VarIndex].VarName);
|
|
|
|
|
if( ExistingVariable == nullptr || ExistingVariable->GetOwner<UObject>() != Blueprint->GeneratedClass)
|
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3255454)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3228496 on 2016/12/09 by Ben.Cosh
This change adds extra information to component template arrays so that the component class can be determined in builds that strip out objects of certain class types such as the editor dedicated server build.
#Jira UE-38842 - "LogBlueprint:Error: [Compiler BP_Skybox_World_RandomTrees_01] Error Can't connect pins ReturnValue and Target" after entering a lobby in a synced server
#Proj KismetCompiler, BlueprintGraph, UnrealEd, Core, Engine, Kismet, BlueprintCompilerCppBackend
Change 3232435 on 2016/12/13 by Ben.Cosh
Fix for a bug introduced in CL 3228496 that caused component templates to fail to be identified by name and resulted in blueprint compilation issues for add component nodes.
#Jira UE-39623 - Unknown template referenced by Add Component Node
#Proj BlueprintGraph, Engine
Change 3234581 on 2016/12/14 by Mike.Beach
Backing out fix for UE-38842 (CL 3228496/3232435/3232564) - mapping UBlueprintGeneratedClass's ComponentTemplates array to a new format was causing issues with deferred dependency loading during serialization (trying to extract type information from a placeholder object). We're opting for a smaller/simpler solution to UE-38842, which will be to store the component information on the node itself (not with the templates).
#jira UE-39707
Change 3236615 on 2016/12/15 by Maciej.Mroz
Nativization: Fixed getter fuctions in FUnconvertedWrapper, the returned ref won;t be const.
Change 3236967 on 2016/12/15 by Dan.Oconnor
Test data showing an error for jira issue UE-39808
Change 3237021 on 2016/12/15 by Dan.Oconnor
UE31622 test data
Change 3237046 on 2016/12/15 by Dan.Oconnor
UE-14123 test data
Change 3239289 on 2016/12/17 by Phillip.Kavan
[UE-38999] Dump component tree node hierarchy to the output log on error state during widget generation.
change summary:
- added FOnTableViewBadState delegate parameter to SSCSEditorDragDropTree
- added SSCSEditor::DumpTree() as the FOnTableViewBadState delegate implementatioon for the STableView widget (to provide us with more info on future occurrences)
#jira UE-38999
Change 3239448 on 2016/12/19 by Maciej.Mroz
#jira UE-39794
New way of collecting dependencies assets. Only directly used assets are listed. It will be used in projects with EDL enabled, once the "EDL boot time" is enabled.
Nativized projects with EDL disabled use the new mechanism as well. They use new __StaticDependenciesAssets functions generator. __StaticDependenciesAssets calls recursively __StaticDependenciesAssets of all Blueprints, that the current BP depends on. It reduces the size of __StaticDependenciesAssets.
Notice, that at the moment, this change should no affect any projects with EDL enabled (because the EDL boot time doesn't work yet).
Change 3239778 on 2016/12/19 by Phillip.Kavan
[UE-39854] Fix nativized assets build error when there are no native code dependencies.
change summary:
- modified FDependenciesGlobalMapHelper::EmitBodyCode() to emit a NULL entry when there are no other entries to emit, in order to avoid a zero-length array initialization error at compile time.
#jira UE-39854
Change 3239965 on 2016/12/19 by Phillip.Kavan
[UE-39733] Fix incorrect graph pin value display names for user-defined enum types.
change summary:
- switched UEnum::GetDisplayNameText() to be a virtual API
- added a UUserDefinedEnum::GetDisplayNameText() override to call FEnumEditorUtils::GetEnumeratorDisplayName()
#jira UE-39733
Change 3240422 on 2016/12/19 by Dan.Oconnor
Remove useless counter. ensureMsgf only fires once
Change 3242313 on 2016/12/21 by Phillip.Kavan
[UE-35418] The Actor details view will now refresh property mappings for the current Actor instance selection after a bytecode-only recompile of its Blueprint class as a dependency during reinstancing.
change summary:
- Modified FBlueprintCompileReinstancer::ReinstanceObjects() to invoke SelectActor() on the current editor selection after a bytecode-only recompile of its class as a dependent BP (i.e. when reinstancing/finalization is not actually incurred). This is meant to be consistent with how the refresh for the current Actor selection is handled by the reinstancer in the other cases.
#jira UE-35418
Change 3242409 on 2016/12/21 by Dan.Oconnor
PR #2995: Arbitrary base logarithm blueprint node (Contributed by Valkrysa)
#jira UE-39169
Change 3243207 on 2016/12/22 by Phillip.Kavan
[UE-39816] Renaming interface input/output parameters will no longer cause broken pin links at interface function call sites in Blueprints that are currently loaded.
change summary:
- modified FBasePinChangeHelper::Broadcast() to consider pin changes sourced from an interface Blueprint
- also revised non-interface function call site check code a bit to try and avoid doing some unnecessary work when possible, since this code runs through every call site node
#jira UE-39816
Change 3243210 on 2016/12/22 by Phillip.Kavan
[UE-39944] Extend the GetClassDefaults node to include output pin exceptions for TSet/TMap properties (i.e. mirror safeguards already in place for TArray).
change summary:
- deprecated 'bExcludeObjectArrays' and replaced with 'bExcludeObjectContainers' (not using a redirect because I need the old property serialized on load for backwards-compatibility)
- modified FClassDefaultsOptionalPinManager's ctor to consider both flags
- modified FClassDefaultsOptionalPinManager::CanTreatPropertyAsOptional() to also test for TSet/TMap types, and exclude them if they contain a non-class UObject property as the inner type (same as we do for TArray)
- modified UK2Node_GetClassDefaults::ValidateNodeDuringCompilation() to also test for TSet/TMap types, and emit a warning for existing pin connections that would have otherwise failed for newly-placed nodes (same as TArray)
- modified UK2Node_GetClassDefaults::ExpandNode() to generate the necessary script needed to create a copy of TSet/TMap property value outputs (same as we do for TArray types)
#jira UE-39944
Change 3243373 on 2016/12/23 by Maciej.Mroz
#jira UE-39794
-Nativized build with EDL enabled use new dependency-gathering system. It shrinks size of the .exe file. This code will change once the boot time EDL is enabled.
-In nativized code, ZCOnstructors are not called. They are replaced by ::StaticClass(). Static class doesn't call noting recursively. We still need to fix interfaces (they have no StaticClass).
- Workaround for UE-40026
- Various minior improvements.
Change 3244038 on 2016/12/28 by Phillip.Kavan
[UE-34488] Child Blueprint assets are now marked as dirty if its parent Blueprint incurs a strucutural change.
change summary:
- modified FBlueprintEditorUtils::MarkBlueprintAsStructurallyModified() to call MarkPackageDirty() after a skeleton-only compile pass on a child Blueprint.
notes:
- this only fixes the issue for child Blueprints that are loaded when the change to the parent Blueprint occurs. unloaded child Blueprints would still need a redirector to fix this up on load.
#jira UE-34488
Change 3244087 on 2016/12/28 by Phillip.Kavan
CIS warning fix (C6236).
Change 3244388 on 2016/12/30 by Phillip.Kavan
[UE-39816] Fix broken pin links caused by renaming interface function input/output parameters prior to compiling the interface, but after renaming the function itself.
change summary:
- modified FBlueprintEditorUtils::FindFunctionInImplementedInterfaces() to prefer the skeleton class when searching, as that is always up-to-date.
- modified FBlueprintEditorUtils::RenameGraph() to update *all* function call site nodes, rather than just those within the current Blueprint class scope.
#jira UE-39816
Change 3245322 on 2017/01/03 by Maciej.Mroz
#jira UE-40125
Fixed a crash when implementing a native interface in a BP
Change 3245667 on 2017/01/03 by Mike.Beach
Mirroring CL 3245664 - Making it so level script bound nodes are fixed up on load (in case the level instances were saved out without the bindings).
#jira UE-39950
Change 3247675 on 2017/01/05 by Maciej.Mroz
BP is not DataOnly, when it overrides an inherited component
related to UE-40131
Change 3247985 on 2017/01/05 by Maciej.Mroz
NativizationSummary object is always present.
#jira UE-40035
Change 3249423 on 2017/01/06 by Mike.Beach
Mirroring CL 3248792 from Orion.
Fix to keep placeholder classes from being needlessly created (when the object they represent already exists) - instead, attempt to lookup and find the existing import objects (which used to be set, but could be cleared during async loading by FLinkerManager::DissociateImportsAndForcedExports()).
#jira OR-34038
Change 3249568 on 2017/01/06 by Mike.Beach
Updating the UBlueprintThumbnailRenderer API so it can be sub-classed by plugin/projects.
PR #2899: Expose UBlueprintThumbnailRenderer in the API (Contributed by e-agaubatz)
#jira UE-38004
Change 3251903 on 2017/01/10 by Phillip.Kavan
[UE-31640] Function inputs are now exposed as variable "Get" nodes via the right-click context menu in a Blueprint function graph context.
Note: Changes are based on shelved CL# 2452724, original proof-of-concept code (credit: Michael.Noland).
#jira UE-31640
#fyi Michael.Noland
Change 3252119 on 2017/01/10 by Phillip.Kavan
CIS fix (shadowed variable).
Change 3252744 on 2017/01/10 by Dan.Oconnor
Add GMinimalCompileOnLoad path for postponing compile on load until all data has been loaded - long term this will be used to improve bp compiler infrastructure (performance, correctness, succinctness)
Change 3252968 on 2017/01/10 by Phillip.Kavan
[UE-36798] Fix for an infinite loop case in the math expression parser.
#jira UE-36798
Change 3253153 on 2017/01/10 by Dan.Oconnor
Fixed construction scripts not being loaded before instancing occurs when using new lighter compile path
Change 3253171 on 2017/01/10 by Mike.Beach
Mirrored CL 3253147.
Properly fills out FPropertyChangedEvent's MemberProperty field, for the property editor's NotifyHook. As its comment implies, "MemberProperty" is meant to represent the outermost property (in scenarios, like with nested struct properties). It was not working this way, and was instead set to the same nested property.
Change 3253220 on 2017/01/10 by Dan.Oconnor
These pins should infer together
#jira UE-40427
Change 3253223 on 2017/01/10 by Phillip.Kavan
[UE-35050] Fix a crash that occurs on an attempt to rename the category of an implemented interface function inherited from a native parent class in the My Blueprint panel.
change summary:
- modified FBlueprintEditorUtils::FindFunctionInImplementedInterfaces() to accept an additional input parameter so that callers can opt-in to searching all inherited interface classes
- modified SMyBlueprint::CanRequestRenameOnActionNode() to prevent rename on implemented interface functions inherited from a native parent class
#jira UE-35050
Change 3253259 on 2017/01/10 by Dan.Oconnor
Quick cleanup, this stuff is in progress
Change 3253983 on 2017/01/11 by Phillip.Kavan
[UE-35629] Disable external curve asset creation when editing a local variable's default value in a Blueprint graph.
change summary:
- modified FCurveStructCustomization::CustomizeChildren() to set the "create" button visibility to "collapsed" when the Owner is NULL (as the default asset path is inferred from the Owner's package).
#jira UE-35629
Change 3254024 on 2017/01/11 by Phillip.Kavan
[UE-40131] Non-native child BPs can now properly override a nativized parent BP's components in a cooked build with exclusive Blueprint class nativiation.
change summary:
- added UBlueprintGeneratedClass::CheckAndApplyComponentTemplateOverrides()
- switched FComponentKey::OwnerClass type from UBlueprintGeneratedClass to UClass to allow the reference to be loaded when it's a nativized BP class.
- modified AActor::PostLoadSubobjects() to apply ICH template overrides to inherited component subobjects on load (only in a cooked build)
- modified AActor::PostSpawnInitialize() to also apply ICH template overrides to inherited component subobjects on new Actor spawns (only in a cooked build)
- modified FBlueprintEditorUtils::IsDataOnlyBlueprint() to additionally reject BPs that have a non-empty ICH (from Maciej)
- added UBlueprint::bHasNativizedParent to cache this as an indicator for cooked builds to allow Actor instances to avoid incurring additional overhead for this at load time in the general case
#jira UE-40131
Change 3254176 on 2017/01/11 by Mike.Beach
Mirroring CL 3245838 to unblock the Odin build. Downgrading new error to warning until we can address it in content (and fully understand why it is triggering).
#jira UE-40470
Change 3254391 on 2017/01/11 by Phillip.Kavan
[UE-40131] CIS fix (non-unity).
Change 3254442 on 2017/01/11 by Mike.Beach
Mirroring CL 3245069 (from RobM), which is described as a "temp fix".
#jira UE-40399
Change 3254599 on 2017/01/11 by Mike.Beach
Updating some of our GetRedirectPinNames() functions - making local copy of an array element instead of a reference. We're adding to the array right after, and the ref can become invalid (if the array is grown and reallocated). Came to us via UDN.
Change 3254624 on 2017/01/11 by Mike.Beach
Backing out CL 3247675, as it removed the "data-only" status from certain Blueprints that, IMO, are still considered "data-only". This would have reprecussions to editor (compile-on) load times, and affect how these Blueprints are presented to the user.
#fyi Maciej.Mroz, Phillip.Kavan
Change 3254671 on 2017/01/11 by Mike.Beach
Resolving CIS warning - USE_EVENT_DRIVEN_ASYNC_LOAD was replaced with GEventDrivenLoaderEnabled.
[CL 3255791 by Mike Beach in Main branch]
2017-01-12 14:36:04 -05:00
|
|
|
{
|
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3298107)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3256692 on 2017/01/13 by Ben.Cosh
This updates the blueprint variable config option tooltip to be more accurate when describing the config to override the value in.
#Jira UE-40334 - Blueprint variables report the wrong config file in the UI when using the set from config option
#Proj Kismet
Change 3258553 on 2017/01/16 by Phillip.Kavan
[UE-40131] Revised fix that will work for "inclusive" BP nativization with data-only BPs.
- Mirrored from //UE4/Release-4.15 (CL# 3258541).
#jira UE-40131
Change 3258958 on 2017/01/16 by Mike.Beach
Adopted fix from UDN - resolves problems with Blueprints which inherit from UDataAsset. Compiling/Reinstancing them was leaving the data asset packages empty.
Change 3259363 on 2017/01/16 by Mike.Beach
Revising fix in UBlueprint::BeginCacheForCookedPlatformData(), saving off nativization data if the -nativizeAssets param is present (not just if it was enabled in packaging settings).
#jira UE-40620
Change 3260722 on 2017/01/17 by Maciej.Mroz
Exclude client-only BPGC from Server.
#jira UE-39728
Change 3261420 on 2017/01/17 by Dan.Oconnor
Final prototype of the GMinimalCompileOnLoad pass
Change 3262208 on 2017/01/18 by Dan.Oconnor
SA fix
Change 3263168 on 2017/01/18 by Dan.Oconnor
Tweak to minimal compile on load pass, doing node refreshing early because node refresh can trigger CDO generation (which cannot happen while reinstancing, unless the new class is ready)
Change 3263844 on 2017/01/19 by Maciej.Mroz
Error when CDO is created for an incomplete dynamic class
Change 3264647 on 2017/01/19 by Mike.Beach
PR #3146: Only ensure if ptr != nullptr (Contributed by projectgheist )
#jira UE-40846
Change 3264818 on 2017/01/19 by Dan.Oconnor
Undo overzealous use of GMinimalCompileOnLoad
Change 3265075 on 2017/01/19 by Dan.Oconnor
Make sure we use the authoritative class for the component template, fixes reinst issue in GMinimalCompileOnLoad pass
Change 3265085 on 2017/01/19 by Mike.Beach
Mirroring CL 3260397
Making it so CreateEvent nodes are searchable using the function name they are bound to (as requested by Jeff Farris). To find this data across your content library, in unopened Blueprints, you'll have to resave those Blueprints (so the new data is available in the asset registry).
Change 3272401 on 2017/01/25 by Mike.Beach
Fixed a bug where modifying certain timeline settings would not dirty the Blueprint.
PR #3137: UE-40674: Mark TimeLine BP as modified (Contributed by projectgheist)
#jira UE-40680, UE-40674
Change 3273050 on 2017/01/26 by Maciej.Mroz
#jira ODIN-4913, UE-40974
merged cl3268193 from Odin branch
Nativization:
- added ConstructTInlineValue function
- TInlineValue structures will be initialized using UScriptStruct::InitializeStruct, instead of callind default constructor ( default constructor is unrealible)
Change 3273052 on 2017/01/26 by Maciej.Mroz
#jira UE-40917
merged cl#3270456 from Odin branch
Nativization:
Actor template from ChildActorComponent is a subobject of nativized class.
Change 3275646 on 2017/01/27 by Dan.Oconnor
Fix obscure issue when reinstancing interface types
Change 3275811 on 2017/01/27 by Dan.Oconnor
ImplementsGetWorld now properly inherited for blueprint types that derive from a blueprint type that derives from a native type that "ImplementsGetWorld"
Change 3275922 on 2017/01/27 by Dan.Oconnor
Preserve trashed properties' names, don't force regen nodes when using the new compile manager (it has already regen'd nodes)
Change 3276037 on 2017/01/27 by Dan.Oconnor
Uses Authoritative class for this type check, added const version of GetAuthoritativeClass
Change 3276109 on 2017/01/27 by Phillip.Kavan
[UE-40894] Fix data loss issues with non-native Blueprint classes that override inherited component default values from a nativized parent Blueprint class hierarchy.
change summary:
- modified FBlueprintEditorUtils::BuildComponentInstancingData() to accept an additional parameter indicating whether or not to use the CDO or the template's Archetype as the basis for building the delta property list.
- revised UBlueprint::BeginCacheForCookedPlatformData() to first generate "override" data for ICH records that override SCS nodes from parent classes that are targeted for nativization. this also makes the optimized component instancing feature compatible with nativization as well (should that ever become useful).
- revised UBlueprintGeneratedClass::CheckAndApplyComponentTemplateOverrides() to utilize the additional delta property list data that's now generated at cook time along with a delta serialization pass against the ICH template that's serializes changed properties to a cached data block at load time. this cached "override" data is then applied to instanced subobjects inherited from nativized parent Blueprint classes using a minimal binary serialization pass.
#jira UE-40894
Change 3277671 on 2017/01/30 by Mike.Beach
Mirroring CL 3276602.
Refactoring FBlueprintCompilerCppBackend::SortNodesInUberGraphExecutionGroup() a bit. Catching cases that weren't acounted for - detecting cyclical logic now when we've pulled a node/statement out of order, and other nodes need to fall through to that logic (not relying on a goto).
#jira UE-41188, UE-41189, UE-41186, UE-41037
Change 3278454 on 2017/01/30 by Mike.Beach
Mirroring CL 3278054
Upgrading USimpleConstructionScript::FixupSceneNodeHierarchy() so that the SCS detects orphaned components, and adds them to the hierarchy (notifying users of the issue with a warning).
#jira UE-41247
Change 3278814 on 2017/01/31 by Maciej.Mroz
fixed CIS warning
fixed FBlueprintNativeCodeGenModule::FindReplacedNameAndOuter
Change 3279398 on 2017/01/31 by Mike.Beach
Back out changelist 3278454 - causing unforseen issues, restructuring the component hierarchy.
Change 3282200 on 2017/02/01 by Dan.Oconnor
Moved ForceLoad helpers into UBlueprint so that new compile on load path can prod the linker into loading stuff before flushing the compilation queue
Change 3282269 on 2017/02/01 by Mike.Beach
ClassGeneratedBy not dependable in cooked builds, must rely on class flags to determine if this is a Blueprint class.
Change 3284455 on 2017/02/02 by Dan.Oconnor
Reinstancer optimizations and skipping loader reset when using the new compile manager
Change 3284463 on 2017/02/02 by Dan.Oconnor
Handling missing GeneratedClass
Change 3284476 on 2017/02/02 by Dan.Oconnor
Flush compilation manager when we would normally do a bytecode pass, this guarantees clients of LoadObject that we won't reinstance a pointer on load (giving them back a stale object)
Change 3284523 on 2017/02/02 by Dan.Oconnor
Optimize FBlueprintUnloader::ReplaceStaleRefs, add option to skip reinstancing when recompiling bytecode, refactored bytecode recompilation options into a flag parameter
Change 3285731 on 2017/02/03 by Dan.Oconnor
Merging //UE4/Dev-Main to Dev-Blueprints (//UE4/Dev-Blueprints)
Auto resolved, with merging:
K2Node_CreateDelegate.h/cpp, KismetCompiler.cpp, WidgetBlueprintCompiler.cpp, Kismet2.cpp, KismetReinstanceUtilities.cpp/h, KismetEditorUtils.h, BlueprintSupport.cpp, Class.cpp, LinkerLoad.cpp, Obj.cpp, Class.h, Object.h, BlueprintGeneratedClass.cpp, DefaultEngine.ini,
Manually resolved:
BlueprintEditorUtils.cpp, TestRunner.Automation.Tests.cs, OrionAutobuyCardStatEntry.cpp/h, OrionStateWidget_DraftLobby.cpp
All else resolved safely (no merging)
Change 3286019 on 2017/02/03 by Dan.Oconnor
Add assertion that was added in main
Change 3286031 on 2017/02/03 by Dan.Oconnor
Build fix, missing include
Change 3286056 on 2017/02/03 by Mike.Beach
Corrected fix (from CL 3278454, which had to be backed out) - USimpleConstructionScript::FixupSceneNodeHierarchy() so that the SCS detects orphaned components, and adds them to the hierarchy (notifying users of the issue with a warning).
#jira UE-41247
Change 3286302 on 2017/02/03 by Dan.Oconnor
Allow reinstancing to run very early or in other situation where GEditor is not yet set up
Change 3286386 on 2017/02/03 by Dan.Oconnor
GMinimalCompileOnLoad checks no longer needed with my local changes to BlueprintCompilationManager
Change 3286391 on 2017/02/03 by Dan.Oconnor
Missed old comment
Change 3286614 on 2017/02/03 by Dan.Oconnor
GMinimalCompileOnLoad logic no longer needed
Change 3286655 on 2017/02/03 by Dan.Oconnor
Refactor FKismetEditorUtilities::CompileBlueprint flags into EBlueprintCompileOptions
Change 3286662 on 2017/02/03 by Dan.Oconnor
Build fix, missed file
Change 3288770 on 2017/02/06 by Mike.Beach
Attempt to fix up CIS warnings from CL 3286056.
Change 3289236 on 2017/02/06 by Mike.Beach
Missed fix for CIS warning.
Change 3289276 on 2017/02/06 by Dan.Oconnor
Duplication of CDO is unnecessary
#fyi Maciej.Mroz
Change 3289334 on 2017/02/06 by Dan.Oconnor
Add option to skip all reinstancing logic when running CompileBlueprint - used locally by the blueprint compilation manager. Fixed Typo.
Change 3289443 on 2017/02/06 by Dan.Oconnor
Further cleanup of GMinimalCompileOnLoad abuse. added flag to skip reinstancing and "stub on failure" compile pass
Change 3290509 on 2017/02/07 by Dan.Oconnor
Addressed this with a change to the blueprint compiler manager - no modification needed
Change 3290534 on 2017/02/07 by Dan.Oconnor
Remove old forward declare and outdated comment
Change 3291446 on 2017/02/07 by Dan.Oconnor
This CPFUO call is unused with my latest iteration on the compiler manager
Change 3291516 on 2017/02/07 by Dan.Oconnor
Running compile manager earlier means we don't need to worry about this weird (and costly) call
Change 3291534 on 2017/02/07 by Dan.Oconnor
This compile children call is no longer running with latest improvents to the compile manager
Change 3292587 on 2017/02/08 by Maciej.Mroz
#jira UE-41694
Mirroring cl#3292273 from Odin branch
Change 3293344 on 2017/02/08 by Dan.Oconnor
Iteration on blueprint compile manager - fortnite loads without issue. For now I do the three compile passes that are done by the existing load paths. Timing is actually quite reasonable. Centralizing reinstancing has sped things up.
#fyi Maciej.Mroz
Change 3293565 on 2017/02/08 by Dan.Oconnor
Back out changelist 3293344 - wrong CL
Change 3293567 on 2017/02/08 by Dan.Oconnor
Iteration on blueprint compile manager - fortnite loads without issue. For now I do the three compile passes that are done by the existing load paths. Timing is actually quite reasonable. Centralizing reinstancing has sped things up.
#fyi Maciej.Mroz
Change 3294334 on 2017/02/09 by Phillip.Kavan
[UE-41246] Fix misaligned memory access of noexport struct properties leading to incorrectly initialized values.
- Mirrored from //Odin/Main/... (CL# 3284308).
#jira UE-41246
Change 3294343 on 2017/02/09 by Phillip.Kavan
[UE-41246] Add a whitelist mechanism to handle native noexport types that can support direct field access in nativized Blueprint code.
- Mirrored from //Odin/Main/... (CL# 3285789).
#jira UE-41246
Change 3295913 on 2017/02/09 by Dan.Oconnor
Back out reinstancer optimization, failing to find a reference and it's causing a crash when a component is renamed
#jira UE-41843
Change 3297279 on 2017/02/10 by Dan.Oconnor
SA fix
Change 3297587 on 2017/02/10 by Mike.Beach
Temporarily disabling a spurious warning that gets triggered in Fortnite, when correctly excluding client-only Blueprints.
#jira UE-41880
Change 3298078 on 2017/02/10 by Dan.Oconnor
Try to suppress confused SA warning
[CL 3298251 by Mike Beach in Main branch]
2017-02-10 19:50:34 -05:00
|
|
|
MissingVariables.Add(VarIndex);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(MissingVariables.Num() != 0)
|
|
|
|
|
{
|
|
|
|
|
UObject* OldCDO = Blueprint->GeneratedClass->ClassDefaultObject;
|
|
|
|
|
auto Reinstancer = FBlueprintCompileReinstancer::Create(*Blueprint->GeneratedClass);
|
|
|
|
|
ensure(OldCDO->GetClass() != *Blueprint->GeneratedClass);
|
|
|
|
|
// move old cdo aside:
|
|
|
|
|
if(OldCDO)
|
|
|
|
|
{
|
|
|
|
|
OldCDO->Rename(NULL, GetTransientPackage(), REN_DontCreateRedirectors | REN_NonTransactional | REN_ForceNoResetLoaders);
|
|
|
|
|
}
|
|
|
|
|
Blueprint->GeneratedClass->ClassDefaultObject = nullptr;
|
|
|
|
|
|
|
|
|
|
// add missing properties:
|
|
|
|
|
for( int32 MissingVarIndex : MissingVariables)
|
|
|
|
|
{
|
2019-12-13 11:07:03 -05:00
|
|
|
FProperty* NewProperty = FKismetCompilerUtilities::CreatePropertyOnScope(
|
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3255454)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3228496 on 2016/12/09 by Ben.Cosh
This change adds extra information to component template arrays so that the component class can be determined in builds that strip out objects of certain class types such as the editor dedicated server build.
#Jira UE-38842 - "LogBlueprint:Error: [Compiler BP_Skybox_World_RandomTrees_01] Error Can't connect pins ReturnValue and Target" after entering a lobby in a synced server
#Proj KismetCompiler, BlueprintGraph, UnrealEd, Core, Engine, Kismet, BlueprintCompilerCppBackend
Change 3232435 on 2016/12/13 by Ben.Cosh
Fix for a bug introduced in CL 3228496 that caused component templates to fail to be identified by name and resulted in blueprint compilation issues for add component nodes.
#Jira UE-39623 - Unknown template referenced by Add Component Node
#Proj BlueprintGraph, Engine
Change 3234581 on 2016/12/14 by Mike.Beach
Backing out fix for UE-38842 (CL 3228496/3232435/3232564) - mapping UBlueprintGeneratedClass's ComponentTemplates array to a new format was causing issues with deferred dependency loading during serialization (trying to extract type information from a placeholder object). We're opting for a smaller/simpler solution to UE-38842, which will be to store the component information on the node itself (not with the templates).
#jira UE-39707
Change 3236615 on 2016/12/15 by Maciej.Mroz
Nativization: Fixed getter fuctions in FUnconvertedWrapper, the returned ref won;t be const.
Change 3236967 on 2016/12/15 by Dan.Oconnor
Test data showing an error for jira issue UE-39808
Change 3237021 on 2016/12/15 by Dan.Oconnor
UE31622 test data
Change 3237046 on 2016/12/15 by Dan.Oconnor
UE-14123 test data
Change 3239289 on 2016/12/17 by Phillip.Kavan
[UE-38999] Dump component tree node hierarchy to the output log on error state during widget generation.
change summary:
- added FOnTableViewBadState delegate parameter to SSCSEditorDragDropTree
- added SSCSEditor::DumpTree() as the FOnTableViewBadState delegate implementatioon for the STableView widget (to provide us with more info on future occurrences)
#jira UE-38999
Change 3239448 on 2016/12/19 by Maciej.Mroz
#jira UE-39794
New way of collecting dependencies assets. Only directly used assets are listed. It will be used in projects with EDL enabled, once the "EDL boot time" is enabled.
Nativized projects with EDL disabled use the new mechanism as well. They use new __StaticDependenciesAssets functions generator. __StaticDependenciesAssets calls recursively __StaticDependenciesAssets of all Blueprints, that the current BP depends on. It reduces the size of __StaticDependenciesAssets.
Notice, that at the moment, this change should no affect any projects with EDL enabled (because the EDL boot time doesn't work yet).
Change 3239778 on 2016/12/19 by Phillip.Kavan
[UE-39854] Fix nativized assets build error when there are no native code dependencies.
change summary:
- modified FDependenciesGlobalMapHelper::EmitBodyCode() to emit a NULL entry when there are no other entries to emit, in order to avoid a zero-length array initialization error at compile time.
#jira UE-39854
Change 3239965 on 2016/12/19 by Phillip.Kavan
[UE-39733] Fix incorrect graph pin value display names for user-defined enum types.
change summary:
- switched UEnum::GetDisplayNameText() to be a virtual API
- added a UUserDefinedEnum::GetDisplayNameText() override to call FEnumEditorUtils::GetEnumeratorDisplayName()
#jira UE-39733
Change 3240422 on 2016/12/19 by Dan.Oconnor
Remove useless counter. ensureMsgf only fires once
Change 3242313 on 2016/12/21 by Phillip.Kavan
[UE-35418] The Actor details view will now refresh property mappings for the current Actor instance selection after a bytecode-only recompile of its Blueprint class as a dependency during reinstancing.
change summary:
- Modified FBlueprintCompileReinstancer::ReinstanceObjects() to invoke SelectActor() on the current editor selection after a bytecode-only recompile of its class as a dependent BP (i.e. when reinstancing/finalization is not actually incurred). This is meant to be consistent with how the refresh for the current Actor selection is handled by the reinstancer in the other cases.
#jira UE-35418
Change 3242409 on 2016/12/21 by Dan.Oconnor
PR #2995: Arbitrary base logarithm blueprint node (Contributed by Valkrysa)
#jira UE-39169
Change 3243207 on 2016/12/22 by Phillip.Kavan
[UE-39816] Renaming interface input/output parameters will no longer cause broken pin links at interface function call sites in Blueprints that are currently loaded.
change summary:
- modified FBasePinChangeHelper::Broadcast() to consider pin changes sourced from an interface Blueprint
- also revised non-interface function call site check code a bit to try and avoid doing some unnecessary work when possible, since this code runs through every call site node
#jira UE-39816
Change 3243210 on 2016/12/22 by Phillip.Kavan
[UE-39944] Extend the GetClassDefaults node to include output pin exceptions for TSet/TMap properties (i.e. mirror safeguards already in place for TArray).
change summary:
- deprecated 'bExcludeObjectArrays' and replaced with 'bExcludeObjectContainers' (not using a redirect because I need the old property serialized on load for backwards-compatibility)
- modified FClassDefaultsOptionalPinManager's ctor to consider both flags
- modified FClassDefaultsOptionalPinManager::CanTreatPropertyAsOptional() to also test for TSet/TMap types, and exclude them if they contain a non-class UObject property as the inner type (same as we do for TArray)
- modified UK2Node_GetClassDefaults::ValidateNodeDuringCompilation() to also test for TSet/TMap types, and emit a warning for existing pin connections that would have otherwise failed for newly-placed nodes (same as TArray)
- modified UK2Node_GetClassDefaults::ExpandNode() to generate the necessary script needed to create a copy of TSet/TMap property value outputs (same as we do for TArray types)
#jira UE-39944
Change 3243373 on 2016/12/23 by Maciej.Mroz
#jira UE-39794
-Nativized build with EDL enabled use new dependency-gathering system. It shrinks size of the .exe file. This code will change once the boot time EDL is enabled.
-In nativized code, ZCOnstructors are not called. They are replaced by ::StaticClass(). Static class doesn't call noting recursively. We still need to fix interfaces (they have no StaticClass).
- Workaround for UE-40026
- Various minior improvements.
Change 3244038 on 2016/12/28 by Phillip.Kavan
[UE-34488] Child Blueprint assets are now marked as dirty if its parent Blueprint incurs a strucutural change.
change summary:
- modified FBlueprintEditorUtils::MarkBlueprintAsStructurallyModified() to call MarkPackageDirty() after a skeleton-only compile pass on a child Blueprint.
notes:
- this only fixes the issue for child Blueprints that are loaded when the change to the parent Blueprint occurs. unloaded child Blueprints would still need a redirector to fix this up on load.
#jira UE-34488
Change 3244087 on 2016/12/28 by Phillip.Kavan
CIS warning fix (C6236).
Change 3244388 on 2016/12/30 by Phillip.Kavan
[UE-39816] Fix broken pin links caused by renaming interface function input/output parameters prior to compiling the interface, but after renaming the function itself.
change summary:
- modified FBlueprintEditorUtils::FindFunctionInImplementedInterfaces() to prefer the skeleton class when searching, as that is always up-to-date.
- modified FBlueprintEditorUtils::RenameGraph() to update *all* function call site nodes, rather than just those within the current Blueprint class scope.
#jira UE-39816
Change 3245322 on 2017/01/03 by Maciej.Mroz
#jira UE-40125
Fixed a crash when implementing a native interface in a BP
Change 3245667 on 2017/01/03 by Mike.Beach
Mirroring CL 3245664 - Making it so level script bound nodes are fixed up on load (in case the level instances were saved out without the bindings).
#jira UE-39950
Change 3247675 on 2017/01/05 by Maciej.Mroz
BP is not DataOnly, when it overrides an inherited component
related to UE-40131
Change 3247985 on 2017/01/05 by Maciej.Mroz
NativizationSummary object is always present.
#jira UE-40035
Change 3249423 on 2017/01/06 by Mike.Beach
Mirroring CL 3248792 from Orion.
Fix to keep placeholder classes from being needlessly created (when the object they represent already exists) - instead, attempt to lookup and find the existing import objects (which used to be set, but could be cleared during async loading by FLinkerManager::DissociateImportsAndForcedExports()).
#jira OR-34038
Change 3249568 on 2017/01/06 by Mike.Beach
Updating the UBlueprintThumbnailRenderer API so it can be sub-classed by plugin/projects.
PR #2899: Expose UBlueprintThumbnailRenderer in the API (Contributed by e-agaubatz)
#jira UE-38004
Change 3251903 on 2017/01/10 by Phillip.Kavan
[UE-31640] Function inputs are now exposed as variable "Get" nodes via the right-click context menu in a Blueprint function graph context.
Note: Changes are based on shelved CL# 2452724, original proof-of-concept code (credit: Michael.Noland).
#jira UE-31640
#fyi Michael.Noland
Change 3252119 on 2017/01/10 by Phillip.Kavan
CIS fix (shadowed variable).
Change 3252744 on 2017/01/10 by Dan.Oconnor
Add GMinimalCompileOnLoad path for postponing compile on load until all data has been loaded - long term this will be used to improve bp compiler infrastructure (performance, correctness, succinctness)
Change 3252968 on 2017/01/10 by Phillip.Kavan
[UE-36798] Fix for an infinite loop case in the math expression parser.
#jira UE-36798
Change 3253153 on 2017/01/10 by Dan.Oconnor
Fixed construction scripts not being loaded before instancing occurs when using new lighter compile path
Change 3253171 on 2017/01/10 by Mike.Beach
Mirrored CL 3253147.
Properly fills out FPropertyChangedEvent's MemberProperty field, for the property editor's NotifyHook. As its comment implies, "MemberProperty" is meant to represent the outermost property (in scenarios, like with nested struct properties). It was not working this way, and was instead set to the same nested property.
Change 3253220 on 2017/01/10 by Dan.Oconnor
These pins should infer together
#jira UE-40427
Change 3253223 on 2017/01/10 by Phillip.Kavan
[UE-35050] Fix a crash that occurs on an attempt to rename the category of an implemented interface function inherited from a native parent class in the My Blueprint panel.
change summary:
- modified FBlueprintEditorUtils::FindFunctionInImplementedInterfaces() to accept an additional input parameter so that callers can opt-in to searching all inherited interface classes
- modified SMyBlueprint::CanRequestRenameOnActionNode() to prevent rename on implemented interface functions inherited from a native parent class
#jira UE-35050
Change 3253259 on 2017/01/10 by Dan.Oconnor
Quick cleanup, this stuff is in progress
Change 3253983 on 2017/01/11 by Phillip.Kavan
[UE-35629] Disable external curve asset creation when editing a local variable's default value in a Blueprint graph.
change summary:
- modified FCurveStructCustomization::CustomizeChildren() to set the "create" button visibility to "collapsed" when the Owner is NULL (as the default asset path is inferred from the Owner's package).
#jira UE-35629
Change 3254024 on 2017/01/11 by Phillip.Kavan
[UE-40131] Non-native child BPs can now properly override a nativized parent BP's components in a cooked build with exclusive Blueprint class nativiation.
change summary:
- added UBlueprintGeneratedClass::CheckAndApplyComponentTemplateOverrides()
- switched FComponentKey::OwnerClass type from UBlueprintGeneratedClass to UClass to allow the reference to be loaded when it's a nativized BP class.
- modified AActor::PostLoadSubobjects() to apply ICH template overrides to inherited component subobjects on load (only in a cooked build)
- modified AActor::PostSpawnInitialize() to also apply ICH template overrides to inherited component subobjects on new Actor spawns (only in a cooked build)
- modified FBlueprintEditorUtils::IsDataOnlyBlueprint() to additionally reject BPs that have a non-empty ICH (from Maciej)
- added UBlueprint::bHasNativizedParent to cache this as an indicator for cooked builds to allow Actor instances to avoid incurring additional overhead for this at load time in the general case
#jira UE-40131
Change 3254176 on 2017/01/11 by Mike.Beach
Mirroring CL 3245838 to unblock the Odin build. Downgrading new error to warning until we can address it in content (and fully understand why it is triggering).
#jira UE-40470
Change 3254391 on 2017/01/11 by Phillip.Kavan
[UE-40131] CIS fix (non-unity).
Change 3254442 on 2017/01/11 by Mike.Beach
Mirroring CL 3245069 (from RobM), which is described as a "temp fix".
#jira UE-40399
Change 3254599 on 2017/01/11 by Mike.Beach
Updating some of our GetRedirectPinNames() functions - making local copy of an array element instead of a reference. We're adding to the array right after, and the ref can become invalid (if the array is grown and reallocated). Came to us via UDN.
Change 3254624 on 2017/01/11 by Mike.Beach
Backing out CL 3247675, as it removed the "data-only" status from certain Blueprints that, IMO, are still considered "data-only". This would have reprecussions to editor (compile-on) load times, and affect how these Blueprints are presented to the user.
#fyi Maciej.Mroz, Phillip.Kavan
Change 3254671 on 2017/01/11 by Mike.Beach
Resolving CIS warning - USE_EVENT_DRIVEN_ASYNC_LOAD was replaced with GEventDrivenLoaderEnabled.
[CL 3255791 by Mike Beach in Main branch]
2017-01-12 14:36:04 -05:00
|
|
|
Blueprint->GeneratedClass,
|
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3298107)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3256692 on 2017/01/13 by Ben.Cosh
This updates the blueprint variable config option tooltip to be more accurate when describing the config to override the value in.
#Jira UE-40334 - Blueprint variables report the wrong config file in the UI when using the set from config option
#Proj Kismet
Change 3258553 on 2017/01/16 by Phillip.Kavan
[UE-40131] Revised fix that will work for "inclusive" BP nativization with data-only BPs.
- Mirrored from //UE4/Release-4.15 (CL# 3258541).
#jira UE-40131
Change 3258958 on 2017/01/16 by Mike.Beach
Adopted fix from UDN - resolves problems with Blueprints which inherit from UDataAsset. Compiling/Reinstancing them was leaving the data asset packages empty.
Change 3259363 on 2017/01/16 by Mike.Beach
Revising fix in UBlueprint::BeginCacheForCookedPlatformData(), saving off nativization data if the -nativizeAssets param is present (not just if it was enabled in packaging settings).
#jira UE-40620
Change 3260722 on 2017/01/17 by Maciej.Mroz
Exclude client-only BPGC from Server.
#jira UE-39728
Change 3261420 on 2017/01/17 by Dan.Oconnor
Final prototype of the GMinimalCompileOnLoad pass
Change 3262208 on 2017/01/18 by Dan.Oconnor
SA fix
Change 3263168 on 2017/01/18 by Dan.Oconnor
Tweak to minimal compile on load pass, doing node refreshing early because node refresh can trigger CDO generation (which cannot happen while reinstancing, unless the new class is ready)
Change 3263844 on 2017/01/19 by Maciej.Mroz
Error when CDO is created for an incomplete dynamic class
Change 3264647 on 2017/01/19 by Mike.Beach
PR #3146: Only ensure if ptr != nullptr (Contributed by projectgheist )
#jira UE-40846
Change 3264818 on 2017/01/19 by Dan.Oconnor
Undo overzealous use of GMinimalCompileOnLoad
Change 3265075 on 2017/01/19 by Dan.Oconnor
Make sure we use the authoritative class for the component template, fixes reinst issue in GMinimalCompileOnLoad pass
Change 3265085 on 2017/01/19 by Mike.Beach
Mirroring CL 3260397
Making it so CreateEvent nodes are searchable using the function name they are bound to (as requested by Jeff Farris). To find this data across your content library, in unopened Blueprints, you'll have to resave those Blueprints (so the new data is available in the asset registry).
Change 3272401 on 2017/01/25 by Mike.Beach
Fixed a bug where modifying certain timeline settings would not dirty the Blueprint.
PR #3137: UE-40674: Mark TimeLine BP as modified (Contributed by projectgheist)
#jira UE-40680, UE-40674
Change 3273050 on 2017/01/26 by Maciej.Mroz
#jira ODIN-4913, UE-40974
merged cl3268193 from Odin branch
Nativization:
- added ConstructTInlineValue function
- TInlineValue structures will be initialized using UScriptStruct::InitializeStruct, instead of callind default constructor ( default constructor is unrealible)
Change 3273052 on 2017/01/26 by Maciej.Mroz
#jira UE-40917
merged cl#3270456 from Odin branch
Nativization:
Actor template from ChildActorComponent is a subobject of nativized class.
Change 3275646 on 2017/01/27 by Dan.Oconnor
Fix obscure issue when reinstancing interface types
Change 3275811 on 2017/01/27 by Dan.Oconnor
ImplementsGetWorld now properly inherited for blueprint types that derive from a blueprint type that derives from a native type that "ImplementsGetWorld"
Change 3275922 on 2017/01/27 by Dan.Oconnor
Preserve trashed properties' names, don't force regen nodes when using the new compile manager (it has already regen'd nodes)
Change 3276037 on 2017/01/27 by Dan.Oconnor
Uses Authoritative class for this type check, added const version of GetAuthoritativeClass
Change 3276109 on 2017/01/27 by Phillip.Kavan
[UE-40894] Fix data loss issues with non-native Blueprint classes that override inherited component default values from a nativized parent Blueprint class hierarchy.
change summary:
- modified FBlueprintEditorUtils::BuildComponentInstancingData() to accept an additional parameter indicating whether or not to use the CDO or the template's Archetype as the basis for building the delta property list.
- revised UBlueprint::BeginCacheForCookedPlatformData() to first generate "override" data for ICH records that override SCS nodes from parent classes that are targeted for nativization. this also makes the optimized component instancing feature compatible with nativization as well (should that ever become useful).
- revised UBlueprintGeneratedClass::CheckAndApplyComponentTemplateOverrides() to utilize the additional delta property list data that's now generated at cook time along with a delta serialization pass against the ICH template that's serializes changed properties to a cached data block at load time. this cached "override" data is then applied to instanced subobjects inherited from nativized parent Blueprint classes using a minimal binary serialization pass.
#jira UE-40894
Change 3277671 on 2017/01/30 by Mike.Beach
Mirroring CL 3276602.
Refactoring FBlueprintCompilerCppBackend::SortNodesInUberGraphExecutionGroup() a bit. Catching cases that weren't acounted for - detecting cyclical logic now when we've pulled a node/statement out of order, and other nodes need to fall through to that logic (not relying on a goto).
#jira UE-41188, UE-41189, UE-41186, UE-41037
Change 3278454 on 2017/01/30 by Mike.Beach
Mirroring CL 3278054
Upgrading USimpleConstructionScript::FixupSceneNodeHierarchy() so that the SCS detects orphaned components, and adds them to the hierarchy (notifying users of the issue with a warning).
#jira UE-41247
Change 3278814 on 2017/01/31 by Maciej.Mroz
fixed CIS warning
fixed FBlueprintNativeCodeGenModule::FindReplacedNameAndOuter
Change 3279398 on 2017/01/31 by Mike.Beach
Back out changelist 3278454 - causing unforseen issues, restructuring the component hierarchy.
Change 3282200 on 2017/02/01 by Dan.Oconnor
Moved ForceLoad helpers into UBlueprint so that new compile on load path can prod the linker into loading stuff before flushing the compilation queue
Change 3282269 on 2017/02/01 by Mike.Beach
ClassGeneratedBy not dependable in cooked builds, must rely on class flags to determine if this is a Blueprint class.
Change 3284455 on 2017/02/02 by Dan.Oconnor
Reinstancer optimizations and skipping loader reset when using the new compile manager
Change 3284463 on 2017/02/02 by Dan.Oconnor
Handling missing GeneratedClass
Change 3284476 on 2017/02/02 by Dan.Oconnor
Flush compilation manager when we would normally do a bytecode pass, this guarantees clients of LoadObject that we won't reinstance a pointer on load (giving them back a stale object)
Change 3284523 on 2017/02/02 by Dan.Oconnor
Optimize FBlueprintUnloader::ReplaceStaleRefs, add option to skip reinstancing when recompiling bytecode, refactored bytecode recompilation options into a flag parameter
Change 3285731 on 2017/02/03 by Dan.Oconnor
Merging //UE4/Dev-Main to Dev-Blueprints (//UE4/Dev-Blueprints)
Auto resolved, with merging:
K2Node_CreateDelegate.h/cpp, KismetCompiler.cpp, WidgetBlueprintCompiler.cpp, Kismet2.cpp, KismetReinstanceUtilities.cpp/h, KismetEditorUtils.h, BlueprintSupport.cpp, Class.cpp, LinkerLoad.cpp, Obj.cpp, Class.h, Object.h, BlueprintGeneratedClass.cpp, DefaultEngine.ini,
Manually resolved:
BlueprintEditorUtils.cpp, TestRunner.Automation.Tests.cs, OrionAutobuyCardStatEntry.cpp/h, OrionStateWidget_DraftLobby.cpp
All else resolved safely (no merging)
Change 3286019 on 2017/02/03 by Dan.Oconnor
Add assertion that was added in main
Change 3286031 on 2017/02/03 by Dan.Oconnor
Build fix, missing include
Change 3286056 on 2017/02/03 by Mike.Beach
Corrected fix (from CL 3278454, which had to be backed out) - USimpleConstructionScript::FixupSceneNodeHierarchy() so that the SCS detects orphaned components, and adds them to the hierarchy (notifying users of the issue with a warning).
#jira UE-41247
Change 3286302 on 2017/02/03 by Dan.Oconnor
Allow reinstancing to run very early or in other situation where GEditor is not yet set up
Change 3286386 on 2017/02/03 by Dan.Oconnor
GMinimalCompileOnLoad checks no longer needed with my local changes to BlueprintCompilationManager
Change 3286391 on 2017/02/03 by Dan.Oconnor
Missed old comment
Change 3286614 on 2017/02/03 by Dan.Oconnor
GMinimalCompileOnLoad logic no longer needed
Change 3286655 on 2017/02/03 by Dan.Oconnor
Refactor FKismetEditorUtilities::CompileBlueprint flags into EBlueprintCompileOptions
Change 3286662 on 2017/02/03 by Dan.Oconnor
Build fix, missed file
Change 3288770 on 2017/02/06 by Mike.Beach
Attempt to fix up CIS warnings from CL 3286056.
Change 3289236 on 2017/02/06 by Mike.Beach
Missed fix for CIS warning.
Change 3289276 on 2017/02/06 by Dan.Oconnor
Duplication of CDO is unnecessary
#fyi Maciej.Mroz
Change 3289334 on 2017/02/06 by Dan.Oconnor
Add option to skip all reinstancing logic when running CompileBlueprint - used locally by the blueprint compilation manager. Fixed Typo.
Change 3289443 on 2017/02/06 by Dan.Oconnor
Further cleanup of GMinimalCompileOnLoad abuse. added flag to skip reinstancing and "stub on failure" compile pass
Change 3290509 on 2017/02/07 by Dan.Oconnor
Addressed this with a change to the blueprint compiler manager - no modification needed
Change 3290534 on 2017/02/07 by Dan.Oconnor
Remove old forward declare and outdated comment
Change 3291446 on 2017/02/07 by Dan.Oconnor
This CPFUO call is unused with my latest iteration on the compiler manager
Change 3291516 on 2017/02/07 by Dan.Oconnor
Running compile manager earlier means we don't need to worry about this weird (and costly) call
Change 3291534 on 2017/02/07 by Dan.Oconnor
This compile children call is no longer running with latest improvents to the compile manager
Change 3292587 on 2017/02/08 by Maciej.Mroz
#jira UE-41694
Mirroring cl#3292273 from Odin branch
Change 3293344 on 2017/02/08 by Dan.Oconnor
Iteration on blueprint compile manager - fortnite loads without issue. For now I do the three compile passes that are done by the existing load paths. Timing is actually quite reasonable. Centralizing reinstancing has sped things up.
#fyi Maciej.Mroz
Change 3293565 on 2017/02/08 by Dan.Oconnor
Back out changelist 3293344 - wrong CL
Change 3293567 on 2017/02/08 by Dan.Oconnor
Iteration on blueprint compile manager - fortnite loads without issue. For now I do the three compile passes that are done by the existing load paths. Timing is actually quite reasonable. Centralizing reinstancing has sped things up.
#fyi Maciej.Mroz
Change 3294334 on 2017/02/09 by Phillip.Kavan
[UE-41246] Fix misaligned memory access of noexport struct properties leading to incorrectly initialized values.
- Mirrored from //Odin/Main/... (CL# 3284308).
#jira UE-41246
Change 3294343 on 2017/02/09 by Phillip.Kavan
[UE-41246] Add a whitelist mechanism to handle native noexport types that can support direct field access in nativized Blueprint code.
- Mirrored from //Odin/Main/... (CL# 3285789).
#jira UE-41246
Change 3295913 on 2017/02/09 by Dan.Oconnor
Back out reinstancer optimization, failing to find a reference and it's causing a crash when a component is renamed
#jira UE-41843
Change 3297279 on 2017/02/10 by Dan.Oconnor
SA fix
Change 3297587 on 2017/02/10 by Mike.Beach
Temporarily disabling a spurious warning that gets triggered in Fortnite, when correctly excluding client-only Blueprints.
#jira UE-41880
Change 3298078 on 2017/02/10 by Dan.Oconnor
Try to suppress confused SA warning
[CL 3298251 by Mike Beach in Main branch]
2017-02-10 19:50:34 -05:00
|
|
|
Blueprint->NewVariables[MissingVarIndex].VarName,
|
|
|
|
|
Blueprint->NewVariables[MissingVarIndex].VarType,
|
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3255454)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3228496 on 2016/12/09 by Ben.Cosh
This change adds extra information to component template arrays so that the component class can be determined in builds that strip out objects of certain class types such as the editor dedicated server build.
#Jira UE-38842 - "LogBlueprint:Error: [Compiler BP_Skybox_World_RandomTrees_01] Error Can't connect pins ReturnValue and Target" after entering a lobby in a synced server
#Proj KismetCompiler, BlueprintGraph, UnrealEd, Core, Engine, Kismet, BlueprintCompilerCppBackend
Change 3232435 on 2016/12/13 by Ben.Cosh
Fix for a bug introduced in CL 3228496 that caused component templates to fail to be identified by name and resulted in blueprint compilation issues for add component nodes.
#Jira UE-39623 - Unknown template referenced by Add Component Node
#Proj BlueprintGraph, Engine
Change 3234581 on 2016/12/14 by Mike.Beach
Backing out fix for UE-38842 (CL 3228496/3232435/3232564) - mapping UBlueprintGeneratedClass's ComponentTemplates array to a new format was causing issues with deferred dependency loading during serialization (trying to extract type information from a placeholder object). We're opting for a smaller/simpler solution to UE-38842, which will be to store the component information on the node itself (not with the templates).
#jira UE-39707
Change 3236615 on 2016/12/15 by Maciej.Mroz
Nativization: Fixed getter fuctions in FUnconvertedWrapper, the returned ref won;t be const.
Change 3236967 on 2016/12/15 by Dan.Oconnor
Test data showing an error for jira issue UE-39808
Change 3237021 on 2016/12/15 by Dan.Oconnor
UE31622 test data
Change 3237046 on 2016/12/15 by Dan.Oconnor
UE-14123 test data
Change 3239289 on 2016/12/17 by Phillip.Kavan
[UE-38999] Dump component tree node hierarchy to the output log on error state during widget generation.
change summary:
- added FOnTableViewBadState delegate parameter to SSCSEditorDragDropTree
- added SSCSEditor::DumpTree() as the FOnTableViewBadState delegate implementatioon for the STableView widget (to provide us with more info on future occurrences)
#jira UE-38999
Change 3239448 on 2016/12/19 by Maciej.Mroz
#jira UE-39794
New way of collecting dependencies assets. Only directly used assets are listed. It will be used in projects with EDL enabled, once the "EDL boot time" is enabled.
Nativized projects with EDL disabled use the new mechanism as well. They use new __StaticDependenciesAssets functions generator. __StaticDependenciesAssets calls recursively __StaticDependenciesAssets of all Blueprints, that the current BP depends on. It reduces the size of __StaticDependenciesAssets.
Notice, that at the moment, this change should no affect any projects with EDL enabled (because the EDL boot time doesn't work yet).
Change 3239778 on 2016/12/19 by Phillip.Kavan
[UE-39854] Fix nativized assets build error when there are no native code dependencies.
change summary:
- modified FDependenciesGlobalMapHelper::EmitBodyCode() to emit a NULL entry when there are no other entries to emit, in order to avoid a zero-length array initialization error at compile time.
#jira UE-39854
Change 3239965 on 2016/12/19 by Phillip.Kavan
[UE-39733] Fix incorrect graph pin value display names for user-defined enum types.
change summary:
- switched UEnum::GetDisplayNameText() to be a virtual API
- added a UUserDefinedEnum::GetDisplayNameText() override to call FEnumEditorUtils::GetEnumeratorDisplayName()
#jira UE-39733
Change 3240422 on 2016/12/19 by Dan.Oconnor
Remove useless counter. ensureMsgf only fires once
Change 3242313 on 2016/12/21 by Phillip.Kavan
[UE-35418] The Actor details view will now refresh property mappings for the current Actor instance selection after a bytecode-only recompile of its Blueprint class as a dependency during reinstancing.
change summary:
- Modified FBlueprintCompileReinstancer::ReinstanceObjects() to invoke SelectActor() on the current editor selection after a bytecode-only recompile of its class as a dependent BP (i.e. when reinstancing/finalization is not actually incurred). This is meant to be consistent with how the refresh for the current Actor selection is handled by the reinstancer in the other cases.
#jira UE-35418
Change 3242409 on 2016/12/21 by Dan.Oconnor
PR #2995: Arbitrary base logarithm blueprint node (Contributed by Valkrysa)
#jira UE-39169
Change 3243207 on 2016/12/22 by Phillip.Kavan
[UE-39816] Renaming interface input/output parameters will no longer cause broken pin links at interface function call sites in Blueprints that are currently loaded.
change summary:
- modified FBasePinChangeHelper::Broadcast() to consider pin changes sourced from an interface Blueprint
- also revised non-interface function call site check code a bit to try and avoid doing some unnecessary work when possible, since this code runs through every call site node
#jira UE-39816
Change 3243210 on 2016/12/22 by Phillip.Kavan
[UE-39944] Extend the GetClassDefaults node to include output pin exceptions for TSet/TMap properties (i.e. mirror safeguards already in place for TArray).
change summary:
- deprecated 'bExcludeObjectArrays' and replaced with 'bExcludeObjectContainers' (not using a redirect because I need the old property serialized on load for backwards-compatibility)
- modified FClassDefaultsOptionalPinManager's ctor to consider both flags
- modified FClassDefaultsOptionalPinManager::CanTreatPropertyAsOptional() to also test for TSet/TMap types, and exclude them if they contain a non-class UObject property as the inner type (same as we do for TArray)
- modified UK2Node_GetClassDefaults::ValidateNodeDuringCompilation() to also test for TSet/TMap types, and emit a warning for existing pin connections that would have otherwise failed for newly-placed nodes (same as TArray)
- modified UK2Node_GetClassDefaults::ExpandNode() to generate the necessary script needed to create a copy of TSet/TMap property value outputs (same as we do for TArray types)
#jira UE-39944
Change 3243373 on 2016/12/23 by Maciej.Mroz
#jira UE-39794
-Nativized build with EDL enabled use new dependency-gathering system. It shrinks size of the .exe file. This code will change once the boot time EDL is enabled.
-In nativized code, ZCOnstructors are not called. They are replaced by ::StaticClass(). Static class doesn't call noting recursively. We still need to fix interfaces (they have no StaticClass).
- Workaround for UE-40026
- Various minior improvements.
Change 3244038 on 2016/12/28 by Phillip.Kavan
[UE-34488] Child Blueprint assets are now marked as dirty if its parent Blueprint incurs a strucutural change.
change summary:
- modified FBlueprintEditorUtils::MarkBlueprintAsStructurallyModified() to call MarkPackageDirty() after a skeleton-only compile pass on a child Blueprint.
notes:
- this only fixes the issue for child Blueprints that are loaded when the change to the parent Blueprint occurs. unloaded child Blueprints would still need a redirector to fix this up on load.
#jira UE-34488
Change 3244087 on 2016/12/28 by Phillip.Kavan
CIS warning fix (C6236).
Change 3244388 on 2016/12/30 by Phillip.Kavan
[UE-39816] Fix broken pin links caused by renaming interface function input/output parameters prior to compiling the interface, but after renaming the function itself.
change summary:
- modified FBlueprintEditorUtils::FindFunctionInImplementedInterfaces() to prefer the skeleton class when searching, as that is always up-to-date.
- modified FBlueprintEditorUtils::RenameGraph() to update *all* function call site nodes, rather than just those within the current Blueprint class scope.
#jira UE-39816
Change 3245322 on 2017/01/03 by Maciej.Mroz
#jira UE-40125
Fixed a crash when implementing a native interface in a BP
Change 3245667 on 2017/01/03 by Mike.Beach
Mirroring CL 3245664 - Making it so level script bound nodes are fixed up on load (in case the level instances were saved out without the bindings).
#jira UE-39950
Change 3247675 on 2017/01/05 by Maciej.Mroz
BP is not DataOnly, when it overrides an inherited component
related to UE-40131
Change 3247985 on 2017/01/05 by Maciej.Mroz
NativizationSummary object is always present.
#jira UE-40035
Change 3249423 on 2017/01/06 by Mike.Beach
Mirroring CL 3248792 from Orion.
Fix to keep placeholder classes from being needlessly created (when the object they represent already exists) - instead, attempt to lookup and find the existing import objects (which used to be set, but could be cleared during async loading by FLinkerManager::DissociateImportsAndForcedExports()).
#jira OR-34038
Change 3249568 on 2017/01/06 by Mike.Beach
Updating the UBlueprintThumbnailRenderer API so it can be sub-classed by plugin/projects.
PR #2899: Expose UBlueprintThumbnailRenderer in the API (Contributed by e-agaubatz)
#jira UE-38004
Change 3251903 on 2017/01/10 by Phillip.Kavan
[UE-31640] Function inputs are now exposed as variable "Get" nodes via the right-click context menu in a Blueprint function graph context.
Note: Changes are based on shelved CL# 2452724, original proof-of-concept code (credit: Michael.Noland).
#jira UE-31640
#fyi Michael.Noland
Change 3252119 on 2017/01/10 by Phillip.Kavan
CIS fix (shadowed variable).
Change 3252744 on 2017/01/10 by Dan.Oconnor
Add GMinimalCompileOnLoad path for postponing compile on load until all data has been loaded - long term this will be used to improve bp compiler infrastructure (performance, correctness, succinctness)
Change 3252968 on 2017/01/10 by Phillip.Kavan
[UE-36798] Fix for an infinite loop case in the math expression parser.
#jira UE-36798
Change 3253153 on 2017/01/10 by Dan.Oconnor
Fixed construction scripts not being loaded before instancing occurs when using new lighter compile path
Change 3253171 on 2017/01/10 by Mike.Beach
Mirrored CL 3253147.
Properly fills out FPropertyChangedEvent's MemberProperty field, for the property editor's NotifyHook. As its comment implies, "MemberProperty" is meant to represent the outermost property (in scenarios, like with nested struct properties). It was not working this way, and was instead set to the same nested property.
Change 3253220 on 2017/01/10 by Dan.Oconnor
These pins should infer together
#jira UE-40427
Change 3253223 on 2017/01/10 by Phillip.Kavan
[UE-35050] Fix a crash that occurs on an attempt to rename the category of an implemented interface function inherited from a native parent class in the My Blueprint panel.
change summary:
- modified FBlueprintEditorUtils::FindFunctionInImplementedInterfaces() to accept an additional input parameter so that callers can opt-in to searching all inherited interface classes
- modified SMyBlueprint::CanRequestRenameOnActionNode() to prevent rename on implemented interface functions inherited from a native parent class
#jira UE-35050
Change 3253259 on 2017/01/10 by Dan.Oconnor
Quick cleanup, this stuff is in progress
Change 3253983 on 2017/01/11 by Phillip.Kavan
[UE-35629] Disable external curve asset creation when editing a local variable's default value in a Blueprint graph.
change summary:
- modified FCurveStructCustomization::CustomizeChildren() to set the "create" button visibility to "collapsed" when the Owner is NULL (as the default asset path is inferred from the Owner's package).
#jira UE-35629
Change 3254024 on 2017/01/11 by Phillip.Kavan
[UE-40131] Non-native child BPs can now properly override a nativized parent BP's components in a cooked build with exclusive Blueprint class nativiation.
change summary:
- added UBlueprintGeneratedClass::CheckAndApplyComponentTemplateOverrides()
- switched FComponentKey::OwnerClass type from UBlueprintGeneratedClass to UClass to allow the reference to be loaded when it's a nativized BP class.
- modified AActor::PostLoadSubobjects() to apply ICH template overrides to inherited component subobjects on load (only in a cooked build)
- modified AActor::PostSpawnInitialize() to also apply ICH template overrides to inherited component subobjects on new Actor spawns (only in a cooked build)
- modified FBlueprintEditorUtils::IsDataOnlyBlueprint() to additionally reject BPs that have a non-empty ICH (from Maciej)
- added UBlueprint::bHasNativizedParent to cache this as an indicator for cooked builds to allow Actor instances to avoid incurring additional overhead for this at load time in the general case
#jira UE-40131
Change 3254176 on 2017/01/11 by Mike.Beach
Mirroring CL 3245838 to unblock the Odin build. Downgrading new error to warning until we can address it in content (and fully understand why it is triggering).
#jira UE-40470
Change 3254391 on 2017/01/11 by Phillip.Kavan
[UE-40131] CIS fix (non-unity).
Change 3254442 on 2017/01/11 by Mike.Beach
Mirroring CL 3245069 (from RobM), which is described as a "temp fix".
#jira UE-40399
Change 3254599 on 2017/01/11 by Mike.Beach
Updating some of our GetRedirectPinNames() functions - making local copy of an array element instead of a reference. We're adding to the array right after, and the ref can become invalid (if the array is grown and reallocated). Came to us via UDN.
Change 3254624 on 2017/01/11 by Mike.Beach
Backing out CL 3247675, as it removed the "data-only" status from certain Blueprints that, IMO, are still considered "data-only". This would have reprecussions to editor (compile-on) load times, and affect how these Blueprints are presented to the user.
#fyi Maciej.Mroz, Phillip.Kavan
Change 3254671 on 2017/01/11 by Mike.Beach
Resolving CIS warning - USE_EVENT_DRIVEN_ASYNC_LOAD was replaced with GEventDrivenLoaderEnabled.
[CL 3255791 by Mike Beach in Main branch]
2017-01-12 14:36:04 -05:00
|
|
|
Blueprint->GeneratedClass,
|
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 4034418)
#lockdown Nick.Penwarden
#rb none
============================
MAJOR FEATURES & CHANGES
============================
Change 3851142 by Robert.Manuszewski
When BP clustering is enabled, make sure to add the template to the BP cluster when replacing it.
Change 3853797 by Ben.Marsh
BuildGraph: Add a <Trace> element, which allows logging messages after the string is parsed (as opposed to the Log task, which logs them at runtime). Useful for debugging macro expansion, etc...
Also add a -showdiagnostics parameter, to have diagnostic messages output even when running with the -listonly option.
Change 3857540 by Graeme.Thornton
Properly process the uexp file for a umap asset when generating a pak patch. Stop those uexp files being included in the patch even when they haven't changed
Change 3860062 by Steve.Robb
Fix for FString::Reset()'s buffer not being an empty null-terminated string (affects FString::ParseIntoArray, for example).
Change 3860138 by Steve.Robb
Fix for FString::ParseIntoArray() for when string memory has been allocated but has no characters.
Change 3860273 by Steve.Robb
Tidy up of FHotReloadClassReinstancer::FCDOWriter to not do stuff in constructors.
Change 3863203 by Steve.Robb
Crash fix for UObjects whose constructors are defined as = default;, which would re-null the UObject state (ClassPrivate, OuterPrivate etc.).
See: https://udn.unrealengine.com/questions/412930/crash-due-to-default-constructor.html
Change 3864588 by Graeme.Thornton
Crypto Keys Improvements
- Removed UAT command line params for encryption. Centrally configured by the editor settings now.
- UAT staging now creates a small json file containing the keys and settings used for encryption and signing and stores it in the build metadata
- Minor refactoring of UAT encryption processing to use the new cryptokeys json file
- UnrealPak can be told to get its encryption settings from a json crypto file with the "-CryptoKeys=<filename>"
- UnrealPak can now accept a "PatchCryptoKeys=<filename" parameter which gives it a filename to a cryptokeys json file that it can use to unpack the patch reference paks
Change 3864691 by Robert.Manuszewski
Don't add objects that are in root set to GC clusters to prevent them from keeping the clusters alive forever.
Change 3864744 by Robert.Manuszewski
Added the ability to get the actual filename of the log file FOutputDeviceFile writes to.
Change 3864816 by Graeme.Thornton
TBA: Minor formatting improvements to textasset commandlet
Change 3868939 by Graeme.Thornton
TBA: If -outputPath isn't supplied to TextAsset commandlet, output converted files to the {ProjectSaved}/TextAssets directory
Change 3869031 by Graeme.Thornton
TBA: Changed timing logs in TextAsset commandlet to be Display so we can see them in the EC log
Change 3871802 by Steve.Robb
Class cast flags and property flags are now visible in the debugger.
Change 3871863 by Robert.Manuszewski
Serializing object will now be passed to GC so that it can be logged in case the referenced objects is garbage.
Change 3874413 by Steve.Robb
Algo::MinElement and Algo::MaxElement, for finding the minimum and maximum element in a range, and *By versions which take projections.
TRangePointerType moved to its own file and used in Algo::MinElement and Algo::MaxElement.
Change 3874457 by Ben.Marsh
When spawning child processes, only allow them to inherit the writable ends of the stderr and stdout pipe. Fixes an issue related to AutomationTool hanging when the editor closes after running automation tests.
The editor launches ADB.EXE (Android Debug Bridge) on editor startup, which forks itself to initialize a server. Even though the child process has its own stdout and stderr pipes, it also inherits the pipes for the editor. When run from C#, as we do for automation tests, Process.WaitForExit() waits for all pipes to be closed before returning. This can't happen if the forked ADB instance still has a reference to the editor's pipes.
Change 3876435 by Robert.Manuszewski
Don't add root set objects to level actor container to prevent situations where clusters are kept alive forever
Change 3878762 by Robert.Manuszewski
Fixing potential LinkerLoad leak when a package that still has a linker associated with it is being destroyed.
Change 3878850 by Robert.Manuszewski
SerializePreloadDependencies will now serialize raw data into the array instead of serializing one element at a time to speed up serialization performance.
Change 3881331 by Graeme.Thornton
TBA: SavePackage rejigged to write all header information in terms of FStructuredArchive, with all exports written through an FArchive adapter
Change 3886983 by Ben.Marsh
UGS: Fix notification window not expanding to fit long captions.
Change 3887006 by Ben.Marsh
UGS: Change modal dialog to regular window style to avoid weird alignment issues under Windows 10.
Change 3887500 by Ben.Marsh
UGS: Add support for grouping build badges by a prefix. Badges such as "Foo:Bar1", "Foo:Bar2" will be grouped together (with "Foo:" stripped from the displayed badge names).
Also add a separate column showing the type of each change, rather than including it in the CIS column, and change badges to a more angular Windows 10 style.
Change 3887513 by Ben.Marsh
UGS: Fix badge text drawing outside the clipping bounds.
Change 3888010 by Josh.Engebretson
Fix UVS logging to UnrealVersionSelector/Saved/Logs and instead use project's log path
#jira none
Change 3888418 by Ben.Marsh
UGS: Add a cache for computed badge layout information. Improves responsiveness when redrawing.
Change 3889457 by Steve.Robb
GitHub #4457 : Display abbreviations properly when converting FNames to display string
#jira UE-54611
Change 3889547 by Ben.Marsh
UGS: Add an extensible method for adding arbitrary badges to the right of the "description" column, by running a regular expression over the changelist description.
Epic uses a "#tag" style annotations in changelist descriptions and Perforce triggers to verify them. "#jira" is used to link a changelist to an issue tracked in Jira, for example. A matcher to add a badge next to every changelist with a #jira tag, and link to the corresponding issue in Jira, could be set up with an addition to the project's Build/UnrealGameSync.ini file like this:
[Badges]
+DescriptionBadges=(Pattern="(?i)#\\s*jira\\s*:?\\s+([A-Za-z]+-[0-9]+)", Name="$1", Group="Jira", Color="#c0c0c0", HoverColor="#e0e0e0", Url="https://jira.it.epicgames.net/browse/$1")
The "Pattern" attribute specifies the regex to match, and may capture portions of the matched text to be substituted later. "Label" specifies the label to appear on the badge. "Group" specifies an arbitrary identifier used to group related badges together rather than separating them with whitespace. "Color" and "HoverColor" specify hex RGB colors for the badges. "Url" specifies the path to open with a C# Process.Open call if the badge is clicked.
Change 3889726 by Ben.Marsh
UGS: Fix description badges that don't have any associated URL.
Change 3889995 by Ben.Marsh
UGS: Fix issue where popup menus can create top level windows in the taskbar. Seemlingly caused by capturing mouse before the window has been activated - removed capture code, and replaced with handling of OnMouseLeave() event instead.
Change 3890007 by Ben.Marsh
UGS: Add a caption underneath the project logo which shows the current stream, to make it more obvious.
Change 3890057 by Ben.Marsh
UGS: Fix repainting glitch when resizing window; bounds for status panel lines was not being reset correctly.
Change 3891069 by Robert.Manuszewski
Fixing a crash in MallocBinned2 when running with malloc profiler enabled.
Change 3891084 by Steve.Robb
Back out changelist 3881331 because it's causing cook errors.
Change 3891100 by Ben.Marsh
UGS: Add support for a per-branch "message of the day"-style feature. Messages can be specified in a project's config file in Perforce (eg. <ProjectDir>/Build/UnrealGameSync.ini) as follows:
[//UE4/Main/Samples/Games/ShooterGame.uproject]
Message=:alert: Lockdown for fixes is **5pm on Friday**. Only fixes for the 2.0 release should be submitted to this branch. [34 issues](https://jira.it.epicgames.net) are remaining as of 2/15.
A limited subset of Markdown is supported: [web links](http://www.google.com), *italic*, _italic_, **bold**, __bold__. Icons will be supported through :icon: syntax; the only icon currently available is :alert:
Change 3891346 by Steve.Robb
TSharedPtr::operator bool, and some usage of it.
Change 3891787 by Steve.Robb
Fix for buffer overflow in FDebug::LogFormattedMessageWithCallstack().
Change 3892379 by Ben.Marsh
UGS: Fix notification window containing the group fix for each build type.
Change 3892400 by Ben.Marsh
UGS: Shrink the size of the alert panel.
Change 3892496 by Ben.Marsh
UGS: Dim badges for changes which aren't eligable for syncing.
Change 3893932 by Steve.Robb
Re-removal of SetShouldHandleAsWeakRef, which was originally removed in CL# 3437205.
Change 3895872 by Ben.Marsh
UGS: Show the stream name in tab labels by default.
Change 3896366 by Ben.Marsh
UGS: Automatically resize columns when the main window is resized, and allow specifying desired column widths for projects that have a large number of CIS badges.
Columns are now resized proportionally, clamped to a minimum size. Columns will automatically expand up to a desired maximum size, though can be explicitly resized larger if necessary. Columns will not be resized if they are already larger than the window can show, or smaller than the window has space to show.
Change 3896367 by Ben.Marsh
UGS: UI tweaks - change and time columns are now centered, "Unknown" badge is displayed until a change's type has been determined, increase height of status panel.
Change 3896425 by Ben.Marsh
UGS: Speculative fix for race condition on clients displaying "under investigation" state. If the DB event is received before a change where an investigation is cancelled is polled from Perforce, we will exclude the resolve event from the list of active investigations.
Change 3896461 by Ben.Marsh
UGS: Add an option to allow setting a tint color to be applied to the status panel, to allow identifying streams more easily. To use, add a setting similar to the following to a project's Build/UnrealGameSync.ini file:
[//UE4/Main/Samples/Games/ShooterGame/ShooterGame.uproject]
StatusPanelColor=#dcdcf0
Change 3899530 by Ben.Marsh
Add unified syntax for overriding branch specific settings. Checks branch settings first, then [Default] section.
Change 3901164 by Ben.Marsh
UGS: Add a class to store all the resources for the status panel.
Change 3901165 by Graeme.Thornton
TBA: Attempt #2 at submitting the text asset saving code. SavePackage rejigged to write all header information in terms of FStructuredArchive, with all exports written through an FArchive adapter. Minimal amount of structured archive serialization functions added to allow this data to be written
Change 3901301 by Ben.Marsh
UGS: Add support for reading the latest version of the project config file from Perforce. Some settings should be read depending on the CL you are synced to (eg. build steps), whereas others (MOTD, branch status) should always use the latest version. Will read the local version if checked out, to allow testing local changes.
Change 3902454 by Ben.Marsh
UGS: Fix logo not being redrawn in the correct position when starting to sync.
Change 3903416 by Ben.Marsh
UGS: Group badges explicitly through INI file rather than by expecting name to contain ':'.
Change 3904154 by Josh.Engebretson
Adding Breakpad to ThirdParty sources (Git Commit: 49907e1c3457570f56d959ae26dec6c3a5edd417 https://chromium.googlesource.com/breakpad/breakpad)
#jira UE-55442
Change 3904648 by Ben.Marsh
UGS: Remove files from the workspace that are excluded by the sync filter.
The user's config file stores a hash of the last sync filter. During syncing, if this hash doesn not match the previous value, we enumerate all the files in the #have list and remove anything masked out by the filter.
#jira UE-47335
Change 3905442 by Steve.Robb
Change of the ConvertFromType() multi-bool return value to a more descriptive enum.
Some return values here do not make sense - this is because the existing logic is being preserved and will be fixed in a separate change.
Change 3905629 by Ben.Marsh
UGS: Fix race condition between two child processes starting on different threads, and inheriting the other's intended stdout/stderr pipes. This prevents pipes being closed when one of the child processes shuts down, and causes waits on the read ends of those pipes to continue indefinitely.
Change 3906447 by Steve.Robb
Rename EConvertFromTypeResult enumerators.
Change 3906574 by Steve.Robb
Crash fix for container conversion failure during tagged property import.
Change 3909255 by Daniel.Lamb
Fixed issue with DLCpackaging crashing on windows
#jira UE-42880
#test EngineTest windows
Change 3909270 by Steve.Robb
Seek instead of skipping bad properties byte-by-byte.
Change 3909324 by Steve.Robb
Use switch statement instead of repeated if/else.
Change 3909525 by Ben.Marsh
UGS: Use the StudioEditor target when syncing content-only Enterprise projects.
Change 3911754 by Daniel.Lamb
Fix for building pak patches.
#jira UE-55340
Change 3911942 by Robert.Manuszewski
Fixing an ensure when MediaPlayer is being constructed from any thread other than the main one.
Change 3913067 by Ben.Marsh
UGS: Allow workspace sync filter categories to re-enable categories that are disabled by the global filter.
Change 3913209 by Ben.Marsh
UGS: Fix incorrect target name when compiling Enterprise projects.
Change 3917358 by Steve.Robb
Fix for GetLen(FString).
Change 3919610 by Ben.Marsh
Put data for CrashReportClient in a PAK file of its own (under Engine/Programs/CrashReportClient/Content/Paks/CrashReportClient.pak). There are a large number of small files required for it to run with loose files, which takes a lot of space on disk (due to cluster sizes), and is unweildy to move around.
CrashReporter UFS files are tracked in a separate dictionary to regular UFS files to allow construction of the additional PAK file.
Change 3921002 by Ben.Marsh
UGS: Add option for syncing all projects in a branch. Off by default. Also add support for masking in additional paths to be synced (eg. one or two extra projects).
Change 3921008 by Ben.Marsh
UGS: Prevent pause waiting for mutual exclusivity when syncing precompiled binaries. We don't need to generate project files or build, so there's no need to wait in line.
Change 3921906 by Steve.Robb
New interpolation functions for quaternions.
https://udn.unrealengine.com/questions/419028/quaternion-interp-to-functions.html
Change 3921978 by Graeme.Thornton
TBA: Make "Loader" member of FLinkerLoad private to prevent use outside of FLinkerLoad. This archive could be something unexpected if the linker is for a text asset package, so we need to stop people accessing it.
Change 3924520 by Graeme.Thornton
UnrealPak: Improve encryption summary log messages
Change 3924522 by Graeme.Thornton
UAT: Add *Encryption.ini to the list of auto-blacklisted config filenames
Change 3924604 by Graeme.Thornton
UnrealPak: If encryption keys are parsed and fail the encrypt/decrypt test, throw a fatal error. The exectutable will have those same keys embedded so there is no point allowing the paks to be created with broken keys.
Change 3924638 by Graeme.Thornton
Crypto: Improvements to parsing of old fashioned encryption.ini settings:
- AES keys that are too long or short (need to be 32 bytes) will now emit a warning when being parsed, and be truncated or expanded before adding to the crypto settings.
- Signing keys will emit an error when they are too long (>64bytes)
- Unrealpak will still assert when invalid settings are passed via the other mechanisms (command line or -encryptionini mode). Settings via the crypto json file should now be sanitized and not cause issues
#jira UE-55080
Change 3924747 by Steve.Robb
Fix for degrees.
Change 3925459 by Chad.Garyet
Adding check to not to attempt to delete autosdk workspace if it doesn't already exist.
Change 3926703 by Ben.Marsh
BuildGraph: Include the path to the XML file when displaying an XML parse error.
Change 3926917 by Ben.Marsh
UBT: Allow overriding the name of the UE4 solution on a branch-specific basis. Useful for switching between multiple UE4 workspaces. Also add support to the editor and UGS for opening the correct solution (determined via a text file saved to Engine/Intermediate/ProjectFiles).
Set the solution name using an entry in BuildConfiguration.xml as follows:
<ProjectFileGenerator>
<MasterProjectName>UE4_Main</MasterProjectName>
</ProjectFileGenerator>
Change 3927683 by Graeme.Thornton
UAT: When building with chunk installs enabled, don't generate the master manifest from each pak creation thread. Just do it once after all pak files have been created. Avoids intermittent crash with multiple threads trying to write the same json file.
Change 3928111 by Ben.Marsh
UBT: Add an option <bMasterProjectNameFromFolder> which allows setting the solution name based on the folder that it's in.
Change 3928926 by Ben.Marsh
BuildGraph: Add support for enumerating content copied by the <CsCompile> task. Also add support for invoking methods on string properties.
Change 3931041 by Graeme.Thornton
TBA: Add option to textasset commandlet to also include engine content in a resave
Change 3931043 by Graeme.Thornton
TBA: Redirect some more FArchive members in FArchiveProxy
Change 3931913 by Ben.Marsh
UGS: Do not create a modal dialog if a scheduled sync is unable to run because the editor is open, and do not run the editor after a scheduled sync.
#jira UE-47368
Change 3932419 by Ben.Marsh
UGS: Allow selecting which projects to sync on schedule. Any projects not already opened at the time the schedule is triggered will be opened first.
#jira UE-33541
Change 3932483 by Ben.Marsh
PR #3949: UnrealGameSync: Add environment path field to custom BuildStep (Contributed by frankie-dipietro-epic)
Change 3932624 by Ben.Marsh
UGS: Add an error dialog when trying to clean the workspace before closing the editor.
#jira UE-42308
Change 3932679 by Ben.Marsh
UGS: Add the date/time to the end of the sync log.
#jira UE-33540
Change 3932705 by Ben.Marsh
UGS: Prompt to close the editor before allowing the user to enter a changelist to sync to, when syncing to a specific changelist.
#jira UE-53182
Change 3933318 by Ben.Marsh
UGS: Detect more programs running before allowing a sync to start, show a dialog listing them, and add an option to ignore if necessary.
#jira UE-33535, UE-53914
Change 3933840 by Graeme.Thornton
TBA: When loading assets, only use structured archive adapters for exports when loading text files.
Change 3936040 by Ben.Marsh
UGS: Rewrite application lifecycle to fix issues with scheduled syncs on background windows not activating, and window jumping to the front after auto-update.
Now uses a custom application context to allow creating separate 'main' windows (first the "opening projects" form, then the regular form), and does not require any forms to be shown in order to be updating in the background.
#jira UE-52870
Change 3940230 by Robert.Manuszewski
Fixes for FilenameToLongPackageName crashes when runnign commandlets
Change 3940240 by Graeme.Thornton
Automated cycling of encryption and signing keys
Change 3940243 by Graeme.Thornton
UAT: CryptoKeys automation script
Change 3940321 by Ben.Marsh
UGS: Add a "Bisect" mode for regressing bugs between a certain range of changes. To use, select a range of changes by holding down the shift key or individual changes by holidng the control key, then right click and select "Bisect these changes". Individual changes in the list can be marked as "Bisect: Pass" or "Bisect: Fail" from the context menu, and syncing will find the next change in the center of the range.
Change 3940538 by Ben.Marsh
UBT: Always determine whether a project is a foreign project or not from the valid .uprojectdirs entries, rather than relying on the user passing -game on the command line.
Change 3941285 by Gil.Gribb
UE4 - Removed PRAGMA_DISABLE_OPTIMIZATION from PlatformFileCommon.h. It was an oversight.
#jira none
Change 3942404 by Graeme.Thornton
Pak Signing:
- Unify naming of pak precacher and signedarchivereader signature check functions to make it easier to search for them in crash reporter
- Format the signedarchivereader output to match the pak precacher
- When signedarchivereader detects a signature check, do the same master signature hash check that the pak precacher does to confirm that the .sig file contents haven't been corrupted since load.
- Add PAK_SIGNATURE_CHECK_FAILS_ARE_FATAL guarded exit to signedarchivereader signature failure
- Optimization for pakprecacher signature checks. Instead of locking the cached files mutex for every decoded signature, take a local copy in blocks of 16. Only re-lock if we need more. Grab the initial batch when setting up. In most cases, reduces the number of locks to 1 per signature check call.
Change 3942825 by Ben.Marsh
UAT: Allow passing -Project<N>=Foo.uproject arguments to the MegaXGE commandlet (eg. -Target1="ShooterGame Win64 Development" -Project1="D:\ShooterGame\ShooterGame.uproject") so it can be used from an installed engine build.
Change 3942839 by Ben.Marsh
UBT: Explicitly query the number of logical processors in the system, to fix Environment.ProcessorCount just returning the number available to the .NET framework. For machines with > 64 cores, processors in a different processor group will not be included in this number.
Change 3943153 by Ben.Marsh
Use the correct logical processor count in ParallelExecutor.
Change 3943210 by Ben.Marsh
UGS: Add an option to the editor arguments window that allows prompting before launching the editor.
Change 3943329 by Ben.Marsh
UGS: Tweak appearance of bisect mode; now shows slightly transparent version of pass/fail icons, and includes remaining CL range in status panel.
Change 3944294 by Ben.Marsh
UGS: Prompt for confirmation before removing any files from the workspace.
Change 3945283 by Ben.Marsh
UGS: Add support for project-specific connection settings, and detection of Perforce login tickets expiring.
Change 3945325 by Ben.Marsh
PR #4558: Changed incorrect obsolete message for ReceiptPropertyList in Modules.cs (Contributed by ryanjon2040)
Change 3947359 by Graeme.Thornton
TBA: Fixes to loading code to allow bulk data to get a pointer from its loader archive to an archive that it can load from at a later date. For binary archives, this is just a pointer back to the same archive, but for text assets it is a pointer to a "child reader" which maintains its own structured archive that is scoped to the current location in the file.
Change 3947360 by Graeme.Thornton
TBA: Added RoundTrip mode to text asset commandlet. Performs determinism tests in project assets to see whether they save deterministically to binary and text files, and also when they are ping-ponged between the two formats.
Change 3949431 by Graeme.Thornton
TBA: Refactored string escaping code in json output formatter FString serializer into a common function which is now used by FName and UObject path serialization too. Fixes some odd cases where an FName contained quotation marks
Change 3950843 by Ben.Marsh
UBT: Add a better error if an XML config file is corrupt.
Change 3952504 by Steve.Robb
GitHub #4545 : UE-55924: CaseSensitive token recognition
#jira UE-55961
#jira UE-55924
Change 3952707 by Graeme.Thornton
Make RandInit(...) log message verbose
Change 3954694 by Ben.Marsh
BuildGraph: Add support for user-defined macros, which can contain a list of buildgraph commands and be expanded within a node. Example script in Engine/Build/Graph/Examples/Macros.xml.
To define a Macro, use the syntax:
<Macro Name="MyTestMacro" Arguments="PrintFirstMessage;PrintSecondMessage" OptionalArguments="PrintThirdMessage">
<Log Message="First message" If="$(PrintFirstMessage)"/>
<Log Message="Second message" If="$(PrintSecondMessage)"/>
<Log Message="Third message" If="'$(PrintThirdMessage)' == 'true'"/>
</Macro>
To expand a macro, use the syntax:
<Expand Name="MyTestMacro" PrintFirstMessage="true" PrintSecondMessage="true"/>
An error will be thrown if any required arguments are missing. Optional arguments default to empty if not specified.
Tasks within a macro are validated by the schema at the point of definition using the same rules as apply to a <Node> element, but properties are not evaluated until the macro is expanded. This allows macros to get and set properties in scope at the point that it is expanded. Local properties that are introduced within a macro do not otherwise leak to the scope that they are expanded.
Change 3954695 by Ben.Marsh
PR #4582: Fixed incorrect condition in StagedFileSystemReference.cs (Contributed by moadib)
#jira UE-56283
Change 3954961 by Ben.Marsh
UBT: Fix issues caused by toolchain assuming that the editor target will be the name of the project with an "Editor" suffix. This is not necessarily the case; the launcher will allow you to instantiate a project with any name, and it will not rename the target files.
#jira UE-56040
Change 3955785 by Steve.Robb
GitHub #4546 : Don't discard errors from zlib inflate
#jira UE-55969
Change 3955940 by Steve.Robb
Redundant and confusing macro check removed.
Change 3956809 by Ben.Marsh
Guard against project paths passed on the command line to UBT being treated as project names. Previous code used to just take the first, which would mask this problem.
Change 3959590 by Steve.Robb
Useless IsIntrinsic constant and COMPILED_IN_INTRINSIC macro removed.
Change 3959864 by Robert.Manuszewski
Increasing the size of permanent object pool to fix warnings in cooked ShooterGame
#jira UE-56001
Change 3960956 by Steve.Robb
New ToCStr function which generically gets a TCHAR* from a 'string-like' argument.
Change 3963628 by Ben.Marsh
UBT: Fix intellisense issues caused by _API macros being defined as DLLIMPORT (imported symbols cause an error if they are defined). Generate intellisense macros with the -Monolithic argument to work around it.
Change 3964349 by Ben.Marsh
Move support for reading .modules files into FModuleManager, and always use it in modular builds. Pathway which discovers modules by filename only is no longer supported for simplicity, and due to platform-specific version checks being unreliable on any platforms other than Windows.
Change 3964821 by Ben.Marsh
Use a custom tool for deleting directories on Windows, to handle paths longer than MAX_PATH correctly.
Change 3965269 by Ben.Marsh
Add more [RequiresUniqueBuildEnvironment] attributes to target settings that modify the global environment.
Change 3966554 by James.Hopkin
#core Removed redundant cast
Change 3966558 by James.Hopkin
#core Removed redundant casts and changed some MakeShareables to MakeShared
#robomerge #fortnite
Change 3966754 by Ben.Marsh
Always use the compiled-in app name when looking for a module manifest. Fixes issues with XGEControlWorker.exe being a renamed copy of ShaderCompileWorker.exe.
Change 3967397 by Ben.Marsh
Fix "copy local" files not being included in build products enumerated from C# projects. Remove files with "Embed Interop Types" from the output list.
Change 3967664 by Ben.Marsh
Update UGS solution to use Visual Studio 2017.
Change 3967838 by Ben.Marsh
Couple of fixes to conform scripts.
Change 3968767 by Ben.Marsh
Compile the name of the module manifest into the executable via a define explicitly set by UBT, rather than guessing at runtime.
Change 3968771 by Ben.Marsh
Fix compiled-in engine path being subject to macro expansion.
#jira UE-56504
Change 3968886 by Robert.Manuszewski
Merging 3914301:
Remove any references we had added to the GGCObjectReferencer during Init
Change 3968978 by Steve.Robb
FString->FName fixes for module names in HotReload.
Change 3969019 by Steve.Robb
Minor refactor of property skipping logic in SerializeTaggedProperties().
Change 3969041 by Steve.Robb
Simplification of Build.version filename construction.
Change 3969049 by Steve.Robb
Always do rolling names when recompiling in editor, because an unloaded module may still actually by loaded-but-abandoned by the executable.
This also removes HotReload's dependence on FModuleManager::GetCleanModuleFilename().
#jira UE-52405
Change 3969120 by Ben.Marsh
Enable errors for using undefined identifiers in conditional expressions by default.
Change 3969161 by Ben.Marsh
Remove log line that should only be included in the log.
Change 3969216 by Steve.Robb
Dump a list of module names - rather than DLL filenames - when the editor detects modules which need recompiling.
This removes the only remaining use of FModuleManager::GetCleanModuleFilename(), which is also now removed.
#jira UE-52405
Change 3969346 by Steve.Robb
Missed some bad FScript(Map/Set)Helper usage from CL# 3698969.
Change 3969598 by Ben.Marsh
Fix warning from VS2017.
Change 3971101 by Graeme.Thornton
TBA: Added RoundTrip mode to TextAsset commandlet which does a sequence of saves and checks for determinism. It will do 3 binary saves, 3 text saves, then 3 alternate binary->text saves.
Change 3971407 by Ben.Marsh
UBT: Fix exception when enumerating toolchains if the directory does not exist yet.
Change 3971523 by Graeme.Thornton
Make compressed block offsets in a pak file store offsets relative to the file header, rather than absolute. Reduces the amount of entropy when data changes in the pak file, making it play nicely with patching
Change 3971613 by Ben.Marsh
Fix Lightmass non-unity compile errors.
Change 3971649 by Ben.Marsh
Disable optimization around FTickerObjectBase constructor on Win32 due to ICE.
Change 3971829 by Ben.Marsh
Fix deprecated header warning from PVS Studio.
Change 3972503 by Ben.Marsh
Changes to build failure notifications:
* Only people that submitted between builds with different error messages will be included on emails by default.
* Email subject line will be different for each failing build step, but will include the CL of the first failing step. This will result in one thread for each build failure (a success email is sent with the same subject line).
* Anyone that starts a build will be included on all failure emails.
Change 3972732 by Ben.Marsh
Changes to ensure notification messages are stable.
Change 3972810 by Ben.Marsh
Write debug information about the digest computed for a change, to assist with debugging it if it's not stable.
Change 3973331 by Ben.Marsh
Fix missing dependency on linker response file. Prevents target being relinked when build environment changes.
Change 3973343 by Ben.Marsh
PR #4612: Adding support for PVS-Studio settings file to PVS-Studio Unreal Build Tool toolchain. (Contributed by PaulEremeeff)
Change 3973820 by Ben.Marsh
Fix incorrect error message when unable to find Visual C++ install directory.
Change 3974295 by Robert.Manuszewski
Made sure that lazy object pointers are only fixed up for PIE in actual PIE worlds.
Change 3975336 by Robert.Manuszewski
CIS fix after the last merge from main
Change 3976999 by Ben.Marsh
Move the Windows stack size settings onto the WindowsTargetRules object, and add the [RequiresUniqueBuildEnvironment] attribute to ensure it's not overwritten incorrectly.
This should cause CIS to better errors for compiling Odin editor.
Change 3977934 by Ben.Marsh
UBT: Allow setting additional compiler/linker arguments through properties on the TargetRules object.
Change 3977953 by Ben.Marsh
UBT: Enumerate all Visual Studio 2017 install locations using the Visual Studio Setup interop SDK. Multiple simultaneous Visual Studio installations are now supported, and using registry keys to determine installation directories has been deprecated. Allows choosing toolchains from preview versions as well as full versions.
Change 3978544 by Ben.Marsh
UBT: Include verbose timing information from compiler frontend if using VS2017 15.7 preview 2 or later.
Change 3978780 by Ben.Marsh
Add Visual C++ 2017 redist files to AppLocalDependencies, and update the prereq installer to include 2017 support DLLs.
Change 3979313 by Ben.Marsh
UBT: Add the EngineDirectory property to ModuleRules. Makes it easier to find paths to files under the engine folder.
Change 3980499 by Ben.Marsh
UBT: Automatically enable /DEBUG:FASTLINK if we're using the VS2017 15.7 toolchain or newer and not doing a formal build. This contains fixes for debugger OOM issues present in older versions.
Change 3980890 by Ben.Marsh
UBT: Update project file generator to support VS2017 solution options file; fixes C# projects being opened by default when generating new project files.
Change 3981495 by Ben.Marsh
Do not include embedded interop assemblies in the list of references required by a C# project; they are not required build products.
#jira UE-54343
Change 3982157 by Ben.Marsh
Only output a warning message if BuildConfiguration.xml schema validation fails; we may have settings that only apply to code in another branch.
Change 3982239 by Ben.Marsh
Update tooltip directing users to install Visual Studio 2017 instead of 2015.
Change 3983395 by Graeme.Thornton
Fix reference to BUILD_VERSION in BootstrapPackagedGame RC file
Change 3983523 by Graeme.Thornton
Backwards compatibility for pak files with compressed chunk offsets
Change 3983769 by Ben.Marsh
UAT: Allow using PDBCOPY.EXE installed as part of the Windows 10 SDK to strip symbols, and add a better message if it can't be found.
Change 3984529 by Ben.Marsh
BuildGraph: When run with the -Preprocess=... argument, no steps will be executed.
Change 3984557 by Ben.Marsh
BuildGraph: Return the updated patterns from FilePattern.CreateMapping(), so we can print accurate messages when displaying the source and target directories for a copy or move task.
Change 3986520 by Ben.Marsh
Remove hacks to uniquify response file name on Android and Linux.
Change 3987166 by Steve.Robb
Allow overloading of functions which take TFunctions or TFunctionRefs with mutually exclusive signatures.
Change 3989061 by Graeme.Thornton
TBA: Text asset loading/saving work
- Start using FStructuredArchive flavours of UObject Serialize functions when loading and saving exports.
- Only use FStructuredArchive interface for text assets, and for classes that have the CLASS_MatchingSerializers which tells us that the class can serialize to both FStructuredArchives and FArchives.
- Add GetCacheableArchive to FArchive, which allows transient archives to return a pointer to another archive that will outlive it. Used by bulk data to get a pointer to an archive that can be held and used at a later time to lazy load things. For text assets where the bulk data might be held inside a base64 encoded FArchiveFromStructuredArchive block, we can't dynamically seek back to that location after the on-stack wrapper has been destroyed after the original serialize, so this will return null. For binary assets, we just return a pointer to the same binary archive which can be used freely.
Change 3989109 by Graeme.Thornton
TBA: TextAsset commandlet emits a warning when binary package determinism fails
Change 3990823 by Ben.Marsh
UGS: Allow project settings to specify a client path rather than a filesystem path. Not currently usable through UI.
Change 3990832 by Ben.Marsh
UGS: Make the schedule window resizable.
Change 3991569 by Steve.Robb
GitHub #4636 : Fixed typo in HeaderParser.cpp for "missed WithValidation keyword" error message
Change 3991970 by Steve.Robb
Fix for 4096 char limit on FParse::Value.
Change 3992222 by Steve.Robb
Advice added to the coding standard for using default member initializers.
Change 3993675 by Ben.Marsh
UGS: Add UI to allow creating new workspaces and selecting projects from existing workspaces that are not currently synced.
Change 3994199 by Ben.Marsh
UGS: Fix child processes being unable to spawn other child processes with the CREATE_BREAKAWAY_FROM_JOB flag, to add them to their own job objects.
In Windows 7 or earlier job objects cannot be nested, so child processes have to create separate job objects and spawn processes with CREATE_BREAKAWAY_FROM_JOB to be able to add them. This fails unless parent process' job object was created with JOB_OBJECT_LIMIT_BREAKAWAY_OK.
Discussed here: https://msdn.microsoft.com/en-us/library/windows/desktop/hh448388(v=vs.85).aspx
Change 3994243 by Ben.Marsh
UGS: Use the select stream dialog instead of displaying a drop list unless there's a stream filter specified. We have way too many streams for this to be useful in a menu unless it's filtered.
Change 3994260 by Ben.Marsh
UGS: Tweak the stream filter dialog to only use the previous selected node if the filter terms match. It may be a parent node of something that matches, even though it doesn't match itself.
Change 3994350 by Ben.Marsh
UGS: Automatically guess the correct root path for new workspaces based on the most common existing workspaces for the current user.
Change 3995159 by Ben.Marsh
UGS: Do not delete files which are outside the sync filter. People expect to be able to sync different projects within a stream without having to update sync filters.
Indend to re-introduce this functionality through the manual 'clean workspace' operation.
Change 3995169 by Ben.Marsh
UGS: Show options as dimmed in the open project dialog, if the radio button for those controls is not checked. Automatically set the radio button if the focus is given to one of those controls.
Change 3995228 by Ben.Marsh
UGS: Update recently opened projects list when editing project for an existing tab.
Change 3995312 by Ben.Marsh
UGS: Stop showing all dialogs in the taskbar.
Change 3995929 by Robert.Manuszewski
Completely rewritten FReferenceChainSearch class used by 'obj refs' command.
- 3+ times faster
- Uses the same code as GC to track all the references down
- Actually reports all reference chains properly
- Less code that is more readable than the previous version
Change 3995981 by Ben.Marsh
UGS: Clean workspace window will now force-sync files that have been deleted or which are writable.
Change 3996113 by Ben.Marsh
UGS: Fix crash upgrading config files from older versions.
Change 3997990 by Ben.Marsh
UGS: Prevent error when syncing an empty workspace.
Change 3998095 by Ben.Marsh
UGS: Change logic for dealing with job objects: rather than creating breakaway jobs (requires co-operation with spawning process), always try to use nested job objects (requires Windows 8.1+). If it fails, ignore the error if we're already part of a job.
Also forcibly terminate the process on dispose to handle cases where the job object wasn't created.
Change 3998264 by Ben.Marsh
UGS: Fix exception when switching projects in-place.
Change 3998643 by Ben.Marsh
Fix shared DDC not being used for installed engine builds.
#jira UE-57631
Change 4000266 by Ben.Marsh
UnrealPak: Add an option that allows rebuilding a set of PAK files with different settings. Usage is:
UnrealPak [PakFile] -Repack [-Output=FileOrDirectory] [Options]
The input pak file may be a single file or wildcard, and is overwritten unless the -Output parameter is specified.
Change 4000293 by Ben.Marsh
Add a compression flag that allows selecting compressor without using the default platform implementation.
Change 4000315 by Ben.Marsh
Add support for custom compressors implemented via modular features. Specify -compressor=<PathToDll> on the command line to UnrealPak to load a compressor from an external DLL.
Change 4000610 by Ben.Marsh
UnrealPak: Add a parameter for compression block size (-compressionblocksize=XXX). Accepts arguments with MB/KB suffixes, as well as byte counts.
Change 4000627 by Ben.Marsh
UBT: Include enabled plugin info in the UBT log.
Change 4000793 by Ben.Marsh
UBT: Remove some member variables from VCEnvironment that don't need to be stored.
Change 4000909 by Ben.Marsh
UBT: Add VS2017 installations to the list of paths checked for MSBuild installations.
Change 4001923 by Ben.Marsh
UBT: Allow any plugins which are enabled by default to be included in the enabled list, even if they don't have any modules for the current platform. This changes the build-time logic to match the runtime logic.
At some point in the future we may add a separate SupportedHostPlatforms list to each plugin to do this explicitly, rather than guessing via the per-module whitelist.
Change 4001927 by Ben.Marsh
Fixes for compiling against the Windows 10 SDK.
Change 4002439 by Robert.Manuszewski
Added TDefaultReferenceCollector and FSimpleReferenceProcessorBase to extract common code for clients of TFastReferenceCollector
Change 4003508 by Ben.Marsh
UGS: Fix new workspaces not having the correct owner and host set.
Change 4003622 by Ben.Marsh
UGS: Add support for "skipped" as a build result.
Change 4004049 by Robert.Manuszewski
Significantly improved performance of Reference Chain Search for objects that are nested deep in the object hierarchy
Change 4005077 by Ben.Marsh
UGS: Update version number.
Change 4005112 by Ben.Marsh
UBT: Reduce number of times a target has to be constructed while generating project files.
Change 4005513 by Ben.Marsh
UBT: Reduce number of checks for directories existing when adding include paths to a module. Accounted for 40% of runtime time when generating project files.
Change 4005516 by Ben.Marsh
UBT: Add warnings whenever a module adds an include path or library path that doesn't exist
Change 4006168 by Ben.Marsh
CIS fixes.
Change 4006236 by Ben.Marsh
UGS: Populate the workspace name/root directory text box with the cue banner when focus moves to the control.
Change 4006266 by Ben.Marsh
UGS: Swap around the new workspace/existing file boxes on the open project dialog.
Change 4006552 by Ben.Marsh
If staging fails because a restricted folder name is found, include a list of them in the error message.
Change 4007397 by Steve.Robb
Comments added to make it clear that GetAllocatedSize() only counts direct allocations made by the container.
Change 4007458 by Ben.Marsh
UBT: Change RPC utility to abort early, rather than continue to try to build even though SSH init failed.
Change 4009343 by Ben.Marsh
UGS: Set the rmdir option on new workspaces by default.
Change 4009501 by Ben.Marsh
UBT: Add Windows include paths to the compiler command line, rather than setting through environment variables. This ensures that incremental builds work correctly when SDK versions change.
Change 4009509 by Ben.Marsh
UBT: Check in a non-versioned directory under the Windows 10 SDK for the resource compiler.
Change 4010543 by Ben.Marsh
Remove the "Device" and "Simulator" platform groups, because they're unused and overly generic for folder names. Also remove source code for the HTML5 simulator (which is no longer supported).
Change 4010553 by Ben.Marsh
UAT: Include platform groups in restricted folder names when staging.
Change 4012030 by Ben.Marsh
UGS: Increase the size of the main window, and set the current stream as the default when creating a new workspace.
Change 4012204 by Chad.Garyet
- Cleanup to get the POSTs returning 400s the same way the GETs would (now no longer returns the exception text)
- Create directory for sqlite db if it doesn't exist
#jira none
Change 4014209 by Brandon.Schaefer
New changes in breakpad dump_syms to allow for producing a symbol file for elf files on windows
#review-3998840 @Arciel.Rekman, @Ben.Marsh, @Josh.Engebreston, @Anthony.Bills
Change 4015606 by Brandon.Schaefer
Missed a code project that needed updating for new Breakpad changes for Mac
Change 4017795 by Robert.Manuszewski
GC assumption verification should now be 3-4x faster.
- Refactored Disregard For GC to use TFastReferenceCollector
- Move both Disregard For GC and Cluster verification code to separate source files
Change 4020381 by Ben.Marsh
Add link to the new official doc page for UnrealGameSync.
Change 4020665 by Ben.Marsh
UBT: Prevent plugins being precompiled if they don't support the current target platform.
Change 4021829 by Ben.Marsh
Update message about downloading a new version of Visual Studio.
Change 4022063 by Ben.Marsh
UBT: Suppress toolchain output when generating project files.
Change 4023248 by Ben.Marsh
Install an unhandled exception filter to ensure we get crash reports from threads that are not spawned by the engine. At the moment, we only receive crashes that are routed through ReportCrash() via our structured exception handlers in WinMain() and FRunnableThreadWin::Run().
(Also fix an exception within the exception handler, if GError has not been created yet)
Change 4025759 by Ben.Marsh
Fix universal CRT include paths not being added to compile environment for VS2015.
Change 4026002 by Ben.Marsh
UBT: Check the old registry locations for the Windows SDK installation directory.
Change 4026068 by Ben.Marsh
UBT: Use the correct compiler version in the error message for not having the UCRT.
Change 4026181 by Ben.Marsh
Fix DebugGame editor configurations not enumerating modules correctly.
#jira UE-58153
Change 4026285 by Ben.Marsh
UBT: Add additional logging for enumerating Windows SDKs.
Change 4026708 by Ben.Marsh
UBT: Keep a separate list of installed Universal CRT versions to the list of Windows 10 SDK versions. It's possible to install C++ support without the Windows 10 SDK, which still includes UCRT files in Windows 10 SDK folders.
Change 4029404 by Ben.Marsh
Remove incorrect include paths to fix CIS warnings.
Change 4031517 by Steve.Robb
Fix for UHT errors not being clickable in the Message Log.
#jira UE-58173
Change 4031544 by Ben.Marsh
Fix errors building asset catalog for IOS due to modifying shared build environment.
#jira UE-58240
Change 4032227 by Ben.Marsh
BuildGraph: Print out a warning message when trying to submit without the -Submit argument in BuildGraph.
Change 4032262 by Ben.Marsh
BuildGraph: Remove the need to copy files to the staging directory in BuildEditorAndTools.xml.
Change 4032288 by Ben.Marsh
Remove UFE from the BuildEditorAndTools script.
Change 3833533 by Ben.Marsh
Rewrite engine source files to base include paths relative to the "Public" directory. This allows reducing the number of public include paths that have to be added for engine modules.
Change 3838569 by Steve.Robb
Algo moved up a folder.
Change 3848581 by Robert.Manuszewski
Changing the UObjectArray to not be allocated up front but in 64K-FUObjectItem chunks. This is to fix strange OOM reports on editor startup where it's trying to allocate space for 1M+ FUObjectItems.
#jira UE-49446
Change 3864743 by Steve.Robb
Fix for buffer overrun when copying a context string.
Fix for being unable to link to MallocLeakDetection.
Fix to prefix for FMallocLeakDetection::ContextString.
New MALLOCLEAK_SCOPED_CONTEXT macro to push/pop a context string.
Overload for const TCHAR* added to FMallocLeakDetection::PushContext to save on redundant memory allocations.
#jira UE-54612
Change 3865020 by Graeme.Thornton
TBA: Changed FIELD_NAME macro to FIELD_NAME_TEXT so that FIELD_NAME can be used for non-literal name definitions
Change 3869550 by Josh.Engebretson
New SymGen and SymUpload tasks (ShooterGame usage example)
Example C# symbolicator (using saved crash and data router formats)
Updates for stack walking and crash runtime xml on Windows/Mac
Change 3905453 by Steve.Robb
USE_TUPLE_AUTO_RETURN_TYPES moved to PLATFORM_COMPILER_HAS_DECLTYPE_AUTO.
Change 3910012 by Ben.Marsh
UGS: Show an error window and allow setting default P4 server settings if syncing UGS fails.
Change 3920044 by Graeme.Thornton
TBA: Text asset loading
* Added a structured archive layer to FLinkerLoad
* Wrapped export loading in a ArchiveUObjectFromStructuredArchive
* Updated TextAssetCommandlet to have a "loadtext" mode which will try to load every text asset in the project content
* Changed text asset extensions to .utextasset and .utextmap. Couldn't go with the favourite .uasset.json because our various path functions (FPaths::GetCleanFilename etc.) will only strip one layer of extension, so leave a bogus filename.
* Relaxed a few checks in structured archive where it was checking for field reentrance, which isn't a problem for loading.
* Changed FArchiveFromStructuredArchive to not load all referenced objects at construction time. This introduced some changes to load order which don't work in the engine. Object names are resolved at the point that a reference to them is serialized from the main data block, same as with legacy archives.
Change 3921587 by Steve.Robb
Static asserts inside ensureMsgf() macros to prevent them being passed invalid arguments or non-literal formatting strings.
Fixes for various misuses.
#jira UE-55681
Change 3942873 by Ben.Marsh
UBT: Allow link time code generation on any configurations where bAllowLTCG is set to true. Microsoft platforms were previously only allowing this option in shipping; the target can decide when to enable it or not.
Change 3944629 by Graeme.Thornton
Merging back a couple of fixes from Fortnite
- Extra parenthesis around some calculations in the pakprecacher
- Changed FChunkCacheWorker::DoSignatureCheck() back to ::CheckSignature()
- Added documentation for build script crypto options
Change 3945381 by Ben.Marsh
Disable warning C4770 on Windows (partially validated enum 'xxx' used as index), which occurs when enabling LTCG. Can't find a reference online for this warning, but I suspect it's due to LTCG allowing the compiler to trace code paths where we don't validate that an enum is a known value.
Change 3968969 by Steve.Robb
Fixes to incorrect uses of FScriptMapHelper and FScriptSetHelper, which weren't accounting for gaps in the sparse array.
Change 3969417 by Ben.Marsh
Make Visual Studio 2017 the default compiler for UE4 projects, and add support using Visual C++ toolchains from an AutoSDKs.
Also add support for selecting a specific toolchain version to use through the WindowsPlatform.CompilerVersion property, which can be configured via a Target.cs files or BuildConfiguration.xml (eg. <WindowsPlatform><CompilerVersion>14.13.26128</CompilerVersion></WindowsPlatform). As well as allowing a specific version number, you can always use the latest toolchain by setting it to "Latest".
Change 3972443 by Ben.Marsh
Change build scripts to allow running any steps on non-compile workspaces. Setup Dev-Core to just use a non-compile Win64 workspace for everything.
Change 3977198 by Ben.Marsh
Remove INI file override for editor stack size on Windows. This is rarely valid since editor targets share build products with other games by deafult. Fix to add linker response file as prerequisite exposed targets overriding this as a bug.
Change 3979632 by Ben.Marsh
Consolidate codepaths for embedding versioning information in the engine. Engine/Build/Build.version is now the authoritative place to read version information; Engine/Source/Runtime/Launch/Resources/Version.h no longer includes macros for the current branch and changelist.
* Settings from Build.version are compiled into the (tiny) BuildSettings module via macros set in BuildSettings.build.cs, which is used to initialize version information inside the engine at runtime.
* The IsPromotedBuild value is now set to zero by default (but set to 1 by the UpdateLocalVersion UAT command).
* The -Licensee argument to the UpdateLocalVersion UAT command, and the IsLicenseeVersion setting for UnrealGameSync, is determined automatically by looking for the Engine/Build/NotForLicensees/EpicInternal.txt file. This path is not visible to licensees.
Change 3981738 by Ben.Marsh
Move utility classes for filtering files and matching wildcards into DotNETUtilities.
Change 3983888 by Steve.Robb
Warning C4868 disabled, about evaluation order of braced initializer lists.
https://udn.unrealengine.com/questions/426081/help-with-error-c4868-braced-initializers.html
Change 3984019 by Steve.Robb
FString::Printf formatting argument checking added.
Vararg support for FText::Format.
All remaining usage fixed.
Change 3985502 by Steve.Robb
Change to TFunction debugger visualization to allow right-clicking on the [Lambda] and selecting 'Go To Source Code'.
Change 3985999 by Graeme.Thornton
TBA: Serialize function generation for FArchive and FStructuredArchive overloads on a UObject, using UHT.
- Adds a restriction that UObject::Serialize() functions MUST be declared outside of any conditional compilation directives, except for WITH_EDITORONLY_DATA
Change 3986461 by Ben.Marsh
Fixup lots of platforms not adding response files as a prerequisite.
This can cause incremental builds to fail if input files/compile arguments change, because the action graph does not know that the response file being updated invalidates the build artifacts.
Change 3990081 by Ben.Marsh
Remove custom output formatters for errors and warnings. These are not well supported by different executors, and cause fences between actions with the same formatter with external executors like XGE.
Clang supports -fdiagnostics-format=msvc for all platforms, which should do a better job than our crude attempts at regexing errors (causing botched output in some cases).
Change 3996714 by Chad.Garyet
UGSRestAPI, conversion of UGS to use it.
#jira none
Change 4008287 by Ben.Marsh
UBT: Change the engine to use the Windows 10 SDK by default.
Also add support for switching between specific Windows SDK versions. The WindowsPlatform.WindowsSdkVersion property in the target rules can be used to select a desired version, which can also be configured by the <WindowsPlatform><WindowsSdkVersion>Foo</WindowsSdkVersion></WindowsPlatform> parameter in the BuildConfiguration.xml file.
The version of Windows to target (ie. the WINVER macro) can be modified by setting WindowsPlatform.TargetWindowsVersion. The default is 0x0601 (Windows 7).
Change 4008516 by Chad.Garyet
- Adding support for both SQLite and MsSql
- API now reads from only MsSql, but writes to both
- Added support for POST to CIS for badges
- PostBadgeStatus now writes out via API Url rather than a direct connection to the DB
#jira none
Change 4010296 by Chad.Garyet
Moving SQLite db initilization into Application_Start. An exception thrown creating or seeding the db will unload the entire AppDomain and all pages will return a 404.
#jira none
Change 4024045 by Ben.Marsh
Set the list of supported target platforms for OnlineSubsystemGameCircle.
#jira UE-57887
Change 4031014 by Ben.Marsh
UAT: Add a WhitelistDirectories list in DefaultEngine.ini, which allows specifying folders that can be staged despite having restricted folder names.
[CL 4034515 by Ben Marsh in Main branch]
2018-04-26 14:11:04 -04:00
|
|
|
CPF_None,
|
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3255454)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3228496 on 2016/12/09 by Ben.Cosh
This change adds extra information to component template arrays so that the component class can be determined in builds that strip out objects of certain class types such as the editor dedicated server build.
#Jira UE-38842 - "LogBlueprint:Error: [Compiler BP_Skybox_World_RandomTrees_01] Error Can't connect pins ReturnValue and Target" after entering a lobby in a synced server
#Proj KismetCompiler, BlueprintGraph, UnrealEd, Core, Engine, Kismet, BlueprintCompilerCppBackend
Change 3232435 on 2016/12/13 by Ben.Cosh
Fix for a bug introduced in CL 3228496 that caused component templates to fail to be identified by name and resulted in blueprint compilation issues for add component nodes.
#Jira UE-39623 - Unknown template referenced by Add Component Node
#Proj BlueprintGraph, Engine
Change 3234581 on 2016/12/14 by Mike.Beach
Backing out fix for UE-38842 (CL 3228496/3232435/3232564) - mapping UBlueprintGeneratedClass's ComponentTemplates array to a new format was causing issues with deferred dependency loading during serialization (trying to extract type information from a placeholder object). We're opting for a smaller/simpler solution to UE-38842, which will be to store the component information on the node itself (not with the templates).
#jira UE-39707
Change 3236615 on 2016/12/15 by Maciej.Mroz
Nativization: Fixed getter fuctions in FUnconvertedWrapper, the returned ref won;t be const.
Change 3236967 on 2016/12/15 by Dan.Oconnor
Test data showing an error for jira issue UE-39808
Change 3237021 on 2016/12/15 by Dan.Oconnor
UE31622 test data
Change 3237046 on 2016/12/15 by Dan.Oconnor
UE-14123 test data
Change 3239289 on 2016/12/17 by Phillip.Kavan
[UE-38999] Dump component tree node hierarchy to the output log on error state during widget generation.
change summary:
- added FOnTableViewBadState delegate parameter to SSCSEditorDragDropTree
- added SSCSEditor::DumpTree() as the FOnTableViewBadState delegate implementatioon for the STableView widget (to provide us with more info on future occurrences)
#jira UE-38999
Change 3239448 on 2016/12/19 by Maciej.Mroz
#jira UE-39794
New way of collecting dependencies assets. Only directly used assets are listed. It will be used in projects with EDL enabled, once the "EDL boot time" is enabled.
Nativized projects with EDL disabled use the new mechanism as well. They use new __StaticDependenciesAssets functions generator. __StaticDependenciesAssets calls recursively __StaticDependenciesAssets of all Blueprints, that the current BP depends on. It reduces the size of __StaticDependenciesAssets.
Notice, that at the moment, this change should no affect any projects with EDL enabled (because the EDL boot time doesn't work yet).
Change 3239778 on 2016/12/19 by Phillip.Kavan
[UE-39854] Fix nativized assets build error when there are no native code dependencies.
change summary:
- modified FDependenciesGlobalMapHelper::EmitBodyCode() to emit a NULL entry when there are no other entries to emit, in order to avoid a zero-length array initialization error at compile time.
#jira UE-39854
Change 3239965 on 2016/12/19 by Phillip.Kavan
[UE-39733] Fix incorrect graph pin value display names for user-defined enum types.
change summary:
- switched UEnum::GetDisplayNameText() to be a virtual API
- added a UUserDefinedEnum::GetDisplayNameText() override to call FEnumEditorUtils::GetEnumeratorDisplayName()
#jira UE-39733
Change 3240422 on 2016/12/19 by Dan.Oconnor
Remove useless counter. ensureMsgf only fires once
Change 3242313 on 2016/12/21 by Phillip.Kavan
[UE-35418] The Actor details view will now refresh property mappings for the current Actor instance selection after a bytecode-only recompile of its Blueprint class as a dependency during reinstancing.
change summary:
- Modified FBlueprintCompileReinstancer::ReinstanceObjects() to invoke SelectActor() on the current editor selection after a bytecode-only recompile of its class as a dependent BP (i.e. when reinstancing/finalization is not actually incurred). This is meant to be consistent with how the refresh for the current Actor selection is handled by the reinstancer in the other cases.
#jira UE-35418
Change 3242409 on 2016/12/21 by Dan.Oconnor
PR #2995: Arbitrary base logarithm blueprint node (Contributed by Valkrysa)
#jira UE-39169
Change 3243207 on 2016/12/22 by Phillip.Kavan
[UE-39816] Renaming interface input/output parameters will no longer cause broken pin links at interface function call sites in Blueprints that are currently loaded.
change summary:
- modified FBasePinChangeHelper::Broadcast() to consider pin changes sourced from an interface Blueprint
- also revised non-interface function call site check code a bit to try and avoid doing some unnecessary work when possible, since this code runs through every call site node
#jira UE-39816
Change 3243210 on 2016/12/22 by Phillip.Kavan
[UE-39944] Extend the GetClassDefaults node to include output pin exceptions for TSet/TMap properties (i.e. mirror safeguards already in place for TArray).
change summary:
- deprecated 'bExcludeObjectArrays' and replaced with 'bExcludeObjectContainers' (not using a redirect because I need the old property serialized on load for backwards-compatibility)
- modified FClassDefaultsOptionalPinManager's ctor to consider both flags
- modified FClassDefaultsOptionalPinManager::CanTreatPropertyAsOptional() to also test for TSet/TMap types, and exclude them if they contain a non-class UObject property as the inner type (same as we do for TArray)
- modified UK2Node_GetClassDefaults::ValidateNodeDuringCompilation() to also test for TSet/TMap types, and emit a warning for existing pin connections that would have otherwise failed for newly-placed nodes (same as TArray)
- modified UK2Node_GetClassDefaults::ExpandNode() to generate the necessary script needed to create a copy of TSet/TMap property value outputs (same as we do for TArray types)
#jira UE-39944
Change 3243373 on 2016/12/23 by Maciej.Mroz
#jira UE-39794
-Nativized build with EDL enabled use new dependency-gathering system. It shrinks size of the .exe file. This code will change once the boot time EDL is enabled.
-In nativized code, ZCOnstructors are not called. They are replaced by ::StaticClass(). Static class doesn't call noting recursively. We still need to fix interfaces (they have no StaticClass).
- Workaround for UE-40026
- Various minior improvements.
Change 3244038 on 2016/12/28 by Phillip.Kavan
[UE-34488] Child Blueprint assets are now marked as dirty if its parent Blueprint incurs a strucutural change.
change summary:
- modified FBlueprintEditorUtils::MarkBlueprintAsStructurallyModified() to call MarkPackageDirty() after a skeleton-only compile pass on a child Blueprint.
notes:
- this only fixes the issue for child Blueprints that are loaded when the change to the parent Blueprint occurs. unloaded child Blueprints would still need a redirector to fix this up on load.
#jira UE-34488
Change 3244087 on 2016/12/28 by Phillip.Kavan
CIS warning fix (C6236).
Change 3244388 on 2016/12/30 by Phillip.Kavan
[UE-39816] Fix broken pin links caused by renaming interface function input/output parameters prior to compiling the interface, but after renaming the function itself.
change summary:
- modified FBlueprintEditorUtils::FindFunctionInImplementedInterfaces() to prefer the skeleton class when searching, as that is always up-to-date.
- modified FBlueprintEditorUtils::RenameGraph() to update *all* function call site nodes, rather than just those within the current Blueprint class scope.
#jira UE-39816
Change 3245322 on 2017/01/03 by Maciej.Mroz
#jira UE-40125
Fixed a crash when implementing a native interface in a BP
Change 3245667 on 2017/01/03 by Mike.Beach
Mirroring CL 3245664 - Making it so level script bound nodes are fixed up on load (in case the level instances were saved out without the bindings).
#jira UE-39950
Change 3247675 on 2017/01/05 by Maciej.Mroz
BP is not DataOnly, when it overrides an inherited component
related to UE-40131
Change 3247985 on 2017/01/05 by Maciej.Mroz
NativizationSummary object is always present.
#jira UE-40035
Change 3249423 on 2017/01/06 by Mike.Beach
Mirroring CL 3248792 from Orion.
Fix to keep placeholder classes from being needlessly created (when the object they represent already exists) - instead, attempt to lookup and find the existing import objects (which used to be set, but could be cleared during async loading by FLinkerManager::DissociateImportsAndForcedExports()).
#jira OR-34038
Change 3249568 on 2017/01/06 by Mike.Beach
Updating the UBlueprintThumbnailRenderer API so it can be sub-classed by plugin/projects.
PR #2899: Expose UBlueprintThumbnailRenderer in the API (Contributed by e-agaubatz)
#jira UE-38004
Change 3251903 on 2017/01/10 by Phillip.Kavan
[UE-31640] Function inputs are now exposed as variable "Get" nodes via the right-click context menu in a Blueprint function graph context.
Note: Changes are based on shelved CL# 2452724, original proof-of-concept code (credit: Michael.Noland).
#jira UE-31640
#fyi Michael.Noland
Change 3252119 on 2017/01/10 by Phillip.Kavan
CIS fix (shadowed variable).
Change 3252744 on 2017/01/10 by Dan.Oconnor
Add GMinimalCompileOnLoad path for postponing compile on load until all data has been loaded - long term this will be used to improve bp compiler infrastructure (performance, correctness, succinctness)
Change 3252968 on 2017/01/10 by Phillip.Kavan
[UE-36798] Fix for an infinite loop case in the math expression parser.
#jira UE-36798
Change 3253153 on 2017/01/10 by Dan.Oconnor
Fixed construction scripts not being loaded before instancing occurs when using new lighter compile path
Change 3253171 on 2017/01/10 by Mike.Beach
Mirrored CL 3253147.
Properly fills out FPropertyChangedEvent's MemberProperty field, for the property editor's NotifyHook. As its comment implies, "MemberProperty" is meant to represent the outermost property (in scenarios, like with nested struct properties). It was not working this way, and was instead set to the same nested property.
Change 3253220 on 2017/01/10 by Dan.Oconnor
These pins should infer together
#jira UE-40427
Change 3253223 on 2017/01/10 by Phillip.Kavan
[UE-35050] Fix a crash that occurs on an attempt to rename the category of an implemented interface function inherited from a native parent class in the My Blueprint panel.
change summary:
- modified FBlueprintEditorUtils::FindFunctionInImplementedInterfaces() to accept an additional input parameter so that callers can opt-in to searching all inherited interface classes
- modified SMyBlueprint::CanRequestRenameOnActionNode() to prevent rename on implemented interface functions inherited from a native parent class
#jira UE-35050
Change 3253259 on 2017/01/10 by Dan.Oconnor
Quick cleanup, this stuff is in progress
Change 3253983 on 2017/01/11 by Phillip.Kavan
[UE-35629] Disable external curve asset creation when editing a local variable's default value in a Blueprint graph.
change summary:
- modified FCurveStructCustomization::CustomizeChildren() to set the "create" button visibility to "collapsed" when the Owner is NULL (as the default asset path is inferred from the Owner's package).
#jira UE-35629
Change 3254024 on 2017/01/11 by Phillip.Kavan
[UE-40131] Non-native child BPs can now properly override a nativized parent BP's components in a cooked build with exclusive Blueprint class nativiation.
change summary:
- added UBlueprintGeneratedClass::CheckAndApplyComponentTemplateOverrides()
- switched FComponentKey::OwnerClass type from UBlueprintGeneratedClass to UClass to allow the reference to be loaded when it's a nativized BP class.
- modified AActor::PostLoadSubobjects() to apply ICH template overrides to inherited component subobjects on load (only in a cooked build)
- modified AActor::PostSpawnInitialize() to also apply ICH template overrides to inherited component subobjects on new Actor spawns (only in a cooked build)
- modified FBlueprintEditorUtils::IsDataOnlyBlueprint() to additionally reject BPs that have a non-empty ICH (from Maciej)
- added UBlueprint::bHasNativizedParent to cache this as an indicator for cooked builds to allow Actor instances to avoid incurring additional overhead for this at load time in the general case
#jira UE-40131
Change 3254176 on 2017/01/11 by Mike.Beach
Mirroring CL 3245838 to unblock the Odin build. Downgrading new error to warning until we can address it in content (and fully understand why it is triggering).
#jira UE-40470
Change 3254391 on 2017/01/11 by Phillip.Kavan
[UE-40131] CIS fix (non-unity).
Change 3254442 on 2017/01/11 by Mike.Beach
Mirroring CL 3245069 (from RobM), which is described as a "temp fix".
#jira UE-40399
Change 3254599 on 2017/01/11 by Mike.Beach
Updating some of our GetRedirectPinNames() functions - making local copy of an array element instead of a reference. We're adding to the array right after, and the ref can become invalid (if the array is grown and reallocated). Came to us via UDN.
Change 3254624 on 2017/01/11 by Mike.Beach
Backing out CL 3247675, as it removed the "data-only" status from certain Blueprints that, IMO, are still considered "data-only". This would have reprecussions to editor (compile-on) load times, and affect how these Blueprints are presented to the user.
#fyi Maciej.Mroz, Phillip.Kavan
Change 3254671 on 2017/01/11 by Mike.Beach
Resolving CIS warning - USE_EVENT_DRIVEN_ASYNC_LOAD was replaced with GEventDrivenLoaderEnabled.
[CL 3255791 by Mike Beach in Main branch]
2017-01-12 14:36:04 -05:00
|
|
|
K2Schema,
|
|
|
|
|
MessageLog);
|
|
|
|
|
|
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 3459469)
#lockdown Nick.Penwarden
#rb none
#rnx
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3377136 on 2017/04/03 by Dan.Oconnor
Reenable compilation manager
Change 3377365 on 2017/04/03 by Dan.Oconnor
Back out changelist 3377136
Change 3378131 on 2017/04/04 by Dan.Oconnor
Enable compilation manager again after 3377912, 3378081, and 3378094
Change 3379268 on 2017/04/04 by Dan.Oconnor
Disable compilation manager
Change 3383505 on 2017/04/06 by Dan.Oconnor
Enabling compilation manager - no known issues.
Change 3430210 on 2017/05/09 by Dan.Oconnor
Disable compilation manager while I think about fixes for UE-44780/UE-44794
#rnx
Change 3431439 on 2017/05/09 by Marc.Audy
Editor only subobjects shouldn't exist in PIE world
#jira UE-43186
Change 3431542 on 2017/05/09 by Dan.Oconnor
Fix crash when opening a blueprint with missing variables and using the compilation manager
#jira UE-43843
Change 3432743 on 2017/05/10 by mason.seay
Added attachment test to map
Change 3432836 on 2017/05/10 by Lukasz.Furman
fixed behavior tree decorator's deactivation when it's placed on parallel task
#jira UE-44817
Change 3432837 on 2017/05/10 by Lukasz.Furman
fixed missing deactivation notifies in behavior tree nodes after forced stop of execution (StopTree call)
#ue4
Change 3433065 on 2017/05/10 by Marc.Audy
Timeline properties should be blueprint visible as they get expanded out to Get Property nodes
Change 3433135 on 2017/05/10 by Lukasz.Furman
added missing nav area registration call
#jira UE-44144
Change 3433195 on 2017/05/10 by Marc.Audy
de-auto
#rnx
Change 3433275 on 2017/05/10 by Phillip.Kavan
#jira UE-44765 - Fix a regression that introduced a potential EDL cycle on load for UDynamicClass dependencies in a nativized build.
Change summary:
- Added new helper methods to FGatherConvertedClassDependenciesHelperBase for populating converted class, struct and enum dependency sets.
- Minor refactor to FFindAssetsToInclude to more generally allow me to recursively add outer class and struct references as additional "used asset" dependencies, based on whether or not the type might also be getting converted. In CL#3416419 I was always adding owner class CDOs as a dependency even if the owner class was being converted, and this introduced the potential for an EDL cycle.
#rnx
Change 3433681 on 2017/05/10 by Mike.Beach
Adjusting the component tree search bar to be below the AddComponent buttons for level editor instance-editing mode (not enough room with the BP button).
Change 3433687 on 2017/05/10 by Ben.Zeigler
Remove delegate redirector type, I never implemented it and it's not useful, dynamic delegates fixup based on parameter type/count and not name in most cases
Change 3434005 on 2017/05/10 by Ben.Zeigler
#jira UE-44890 Don't reset local variables that are containers of user structs, delta serialization isn't used for user structs so just keep the same string as before. This is not a regression and looks to have always been broken
Change 3434011 on 2017/05/10 by Marc.Audy
Fix LocalVariable Properties to be flagged as CPF_BlueprintVisible
Change 3434026 on 2017/05/10 by Ben.Zeigler
Add automated test utility functions to clear standalone flag, needed to allow testing async loading in the editor
Change 3435245 on 2017/05/11 by mason.seay
Submitting test assets for input testing and interactive loading screens
Change 3435491 on 2017/05/11 by Mike.Beach
CIS SA fix (fallout from CL 3433681) - removing trinary operator that selects from two identical values.
Change 3435962 on 2017/05/11 by Ben.Zeigler
Change it so PrimaryAssetLabels are editor only by default. This allows them to cook content without the label itself being cooked
Change 3436322 on 2017/05/11 by Dan.Oconnor
Fix for calling CopyTermDefaultsToDefaultObject at the wrong time when using the compilation manager, needs to be postponed until other defaults are copied
#jira UE-44780, UE-44794
Change 3437205 on 2017/05/12 by Ben.Zeigler
Change Persistent Ubergraph Frame references to be correctly weak. With the old method if an asset had subobjects those internal references would cause it to be strong. Now, it doesn't expose them to GC at all other than to register them for clearing if GC deletes those objects
Change ObjectProperty to directly serialize object references when doing a reference collector, this is needed for above change so it will null the right value and not a stack local copy
Remove NoStrongReference flag and SetShouldHandleAsWeakRef entirely, this makes the internal GC code simpler and faster
Switch internals of GC to use FGCArrayStruct which has the serialize array as well as the weak references array
Change 3437206 on 2017/05/12 by Ben.Zeigler
Add Async loading functional test. This tests the LoadAsset and Convert nodes and ensures that the recent changes to ubergraph frame refs work properly
Change 3437234 on 2017/05/12 by Ben.Zeigler
Fix DirectoryPathStructCustomization to work properly with both LongPackageName and RelativeToGameContentDir set, before it was chopping off text and leaving nonsense
Change 3437368 on 2017/05/12 by Dan.Oconnor
Mirror 3434064, but with betterwhitespace. Prevents blueprint CDO subobjects from being stomped when using EDL
Change 3439330 on 2017/05/15 by Ben.Zeigler
First half of Blueprint API for AssetManager, this covers everything other than load/unload
Rename GetPrimaryAssetIdFromData to ExtractPrimaryAssetIdFromData and make comments clearer that it works even if the asset isn't in the dictionary. Add GetPrimaryAssetIdForData to cover dictionary case
Change it so modifying the asset manager settings within the editor will refresh the dictionary
#jira UE-45016 Fix crash scanning empty paths
Change 3439331 on 2017/05/15 by Ben.Zeigler
AssetManager Functional tests. Set up EngineTest project to have some assets and an ini configuration
Change 3439644 on 2017/05/15 by Dan.Oconnor
Fix BlueprintCompilationManager running OnLevelScriptBlueprintChanged before CDO defaults were up to date
#jira UE-44972
#rnx
Change 3439992 on 2017/05/15 by Dan.Oconnor
Add missing OptionallyRefreshNodes, which is a hot reload hack
#jira UE-44970
#rnx
Change 3440223 on 2017/05/15 by Ben.Zeigler
Move StreamableManager GC callback to pre GC to avoid requring 2 GCs to delete unreferenced assets
Change 3440406 on 2017/05/15 by Ben.Zeigler
Fix bug with combined StreamableManager handles where the complete callback wouldn't correctly execute. This can happen when using the asset manager to load more than one asset at a time
Change 3440879 on 2017/05/16 by Marc.Audy
Fix casing on #include to fix Linux CIS error
#rnx
Change 3441137 on 2017/05/16 by Ben.Zeigler
Fix it so ImportText/ExportText on an AssetObjectProperty correctly calls the StringAssetReferenceVersions, and fix a parse issue when importing class'/path' strings into the struct version
Change 3441364 on 2017/05/16 by Ben.Zeigler
#jira UE-45080 Fix Linux CIS issue
Change 3441444 on 2017/05/16 by Dan.Oconnor
Run RefreshExternalBlueprintDependencyNodes at a more appropriate time when using the compilation manager, link skeleton functions when using the compilation manager so that PropertyFlags match GeneratedClass
#jira UE-45029, UE-45037
#rnx
Change 3441445 on 2017/05/16 by Dan.Oconnor
Remove unused declaration
#rnx
Change 3441492 on 2017/05/16 by Ben.Zeigler
Rest of Asset Manager BP API
Added multiple async actions for loading and changing bundle states, and querying bundle states
Change it so the LoadAsset node has a then node to match the new async actions, and rename to Async Load Asset
Add HideThen metadata option to async actions and fix crash when renaming bound function
Change 3441493 on 2017/05/16 by Ben.Zeigler
Update AssetManager and AsyncLoading tests
Change 3441494 on 2017/05/16 by Ben.Zeigler
Update the archive's serialized property when serializing array, set, and map to point to the inner property. Fix a few call sites to look at parent property as needed.
This is needed for the new BPGC weak reference feature, but might also fix some crashes with HotReload where it was expecting the inner property and casting to ObjectProperty.
Change 3441600 on 2017/05/16 by Michael.Noland
Blueprints: Fixed some indentation issues in code
#rnx
Change 3441601 on 2017/05/16 by Michael.Noland
Blueprints: Changed DLL exporting on UK2Node_Tunnel and UK2Node_Composite to allow them to be used in plugins more readily
Change 3441602 on 2017/05/16 by Michael.Noland
Graph Editing: Changed FGraphEditorDragDropAction to work directly with a UEdGraphNode rather than a SGraphNode
Graph Editing: Allowed FGraphSchemaActionDragDropAction to be dropped onto pins in addition to the graph background, which will behave as if you dragged off the pin and picked the same action
Change 3441607 on 2017/05/16 by Michael.Noland
Blueprints: Allow functions from My Blueprints to be dropped onto pins in addition to the graph background, which performs the same action as if they had been picked from the menu after dragging off of that pin
Change 3441608 on 2017/05/16 by Michael.Noland
Blueprints: Allow non-readonly variables from the My Blueprints panel to be dropped onto exec pins, which creates a variable set node for them
Change 3441613 on 2017/05/16 by Michael.Noland
Epic Friday: Snap node prototype (more compact way of organizing straight line Blueprint code via drag-dropping)
- Super early prototype, plugin is not enabled by default and is currently in NotForLicensees
Change 3441802 on 2017/05/16 by Michael.Noland
Blueprints: Adding some includes that are missing according to CIS
#rnx
Change 3441921 on 2017/05/16 by Dan.Oconnor
Avoid skipping full compile when not loading a DOB from disk - when a blueprint became data only we were not running the full compile
#jira UE-45048
#rnx
Change 3442903 on 2017/05/17 by Marc.Audy
Refactor header parser verification of rep notify functions in preparation for other forms of function verification.
Fixed ability to specify incompatible properties as the parameter to the OnRep function as long as the base property type was the same (i.e. UObjectProperty, UArrayProperty, etc.)
Fixed errors generated by verification not being associated with the correct code line.
Verification errors are now "warnings" and will all be reported rather than a single one being fatal.
Change 3442908 on 2017/05/17 by Marc.Audy
Remove some autos
#rnx
Change 3443802 on 2017/05/17 by Ben.Zeigler
#jira UE-35683 Add ability for resolve AssetId node to go from hard object to assetptr
Add IsValid and == for Asset/ClassId
Change 3444075 on 2017/05/17 by Ben.Zeigler
#jira UE-45121 Remove references to deleted cards, this field was not in use but is now warning due to better validation
Change 3444178 on 2017/05/17 by Dan.Oconnor
Fix for CPFUO dropping default values of CDO subobjects if the blueprint's parent's CDO was being regenerated at the same time
#jira UE-45050
Change 3444927 on 2017/05/17 by Dan.Oconnor
Improve fix for UE-45050, honor Params.bDoDelta
#rnx
Change 3447280 on 2017/05/18 by Marc.Audy
Properties can now be exposed to blueprints in such a way that a getter or setter accessor will be used rather than a direct read/write of the variable
Change 3447320 on 2017/05/18 by Marc.Audy
Some minor schema cleanups
#rnx
Change 3447537 on 2017/05/18 by Dan.Oconnor
Make sure CDO is included in ArchetypeRerencers when a subobject of said CDO is reinstanced
#jira UE-37023
Change 3448754 on 2017/05/19 by Marc.Audy
Fix hot reload crashing in EngineTest
#rnx
Change 3448792 on 2017/05/19 by Marc.Audy
Functional test for BP Accessors
#rnx
Change 3448806 on 2017/05/19 by Marc.Audy
Fix static analysis warning
#rnx
Change 3449091 on 2017/05/19 by Marc.Audy
Allow Find References to be selected from the components panel
#jira UE-45101
Change 3449361 on 2017/05/19 by Marc.Audy
Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 3449079
#rnx
Change 3449644 on 2017/05/19 by Marc.Audy
Fix Anim SubInstance generated properties not being Blueprint Visible
Change 3450003 on 2017/05/19 by Dan.Oconnor
We need to do a bytecode only compile of dependent blueprints when an individual blueprint is compile because we cannot safely skip functions that are removed or change layout
#jira UE-45196
#rnx
Change 3452022 on 2017/05/22 by Marc.Audy
Fix BlueprintVisibility issues in orion UI
#rnx
Change 3452133 on 2017/05/22 by Ben.Zeigler
#jira UE-45240 Fix it so invalid primary asset types are not parsed, this happens while halfway through editing in the UI
Stop asset manager from generating 600 notifications, this causes multiple second stalls in the editor
Change 3452697 on 2017/05/22 by Marc.Audy
Use BlueprintGetter/Setter metadata instead of BlueprintInternalUseOnly for preventing accessors from appearing in menus
Prevent BlueprintNativeEvents from being used as property accessors
Disable functional test for blueprint native events
Change 3452780 on 2017/05/22 by Ben.Zeigler
Switch it so the LongPackageName and ContentDir metadata on a FDirectoryPath do the same thing and give you the in-editor path picker. These two metadata flags were implemented in parallel on two separate branches
Change 3452790 on 2017/05/22 by Ben.Zeigler
Fix issue when calling TryConvertFilenameToLongPackageName with a root directory name, and add comment mentioning that it works for directories, it's used this way throughout the editor and we couldn't come up with a better name for the function
Deprecated FPackageName::ConvertRootPathToContentPath and PackageFromPath as they were confusingly named and not used much. Also cleaned up header in general
Change 3454629 on 2017/05/23 by Marc.Audy
Deal with fall out from initial approach to disabling the native event getter/setter functional tests
#jira UE-45321
#jira UE-45322
Change 3454661 on 2017/05/23 by Marc.Audy
Mark Actor.RootComponent as having a getter instead of GetRootComponent being an explicitly exposed blueprint callable function
Change 3454662 on 2017/05/23 by Marc.Audy
Fix blueprint visibility of anim notify properties
Change 3454663 on 2017/05/23 by Marc.Audy
Fix fortnite blueprint exposure issues
Change 3454695 on 2017/05/23 by Lukasz.Furman
fixed bug with behavior tree decorator duplication: properties are no longer reset to defaults
#3591
Change 3454789 on 2017/05/23 by Ben.Zeigler
Add ProposedPlacement parameter to TryCalculatePopupWindowPosition that if non zero will allow the less common anchor styles like MenuPlacement_ComboBoxRight to work properly for popups spawned in a new window
Make the variable type menu be ComboBoxRight so it gives more space for longer sub type descriptions coming in a different change
Change 3454816 on 2017/05/23 by Ben.Zeigler
Change blueprint type of AssetID to SoftObjectReference and AssetClassId to SoftClassReference. These will also change in native for 4.18
Fix display issues with complicated variable types, for some reason it was using the non-localized name
Change 3454967 on 2017/05/23 by Lukasz.Furman
fixed ANavigationData.bForceRebuildOnLoad being ignored by navigation system
#jira UE-44231
Change 3454982 on 2017/05/23 by Ben.Zeigler
#jira UE-45298 Refresh primary asset ID selector when menu is reopened
Change 3455714 on 2017/05/23 by Marc.Audy
Prevent attachment from being setup to attach to itself or in a cyclic fashion.
#jira UE-45244
Change 3455871 on 2017/05/23 by Marc.Audy
Rename UEdGraph::CreateBlankNode to CreateIntermediateNode
Added bIsIntermediate flag to UEdGraphNode which is set via CreateIntermediateNode
No longer set timeline variables as blueprint visible
#jira UE-45204
Change 3455930 on 2017/05/23 by Ben.Zeigler
#jira UE-45349 Resave TM-Gameplay map. The map got fixed while UE-44972 was still open, which lead to the level script variables being corrupted. Manually compiling fixed the issue and the core bug is now fixed. Any other maps saved directly on Framework might show the same issue
Change 3456507 on 2017/05/24 by Marc.Audy
Fix game builds
#rnx
Change 3457323 on 2017/05/24 by Marc.Audy
Undo CL# 3431439 and once again allow (incorrectly) for editor only objects to exist in a PIE world
#jira UE-45087
Change 3459068 on 2017/05/25 by mason.seay
Adding gamepad mapping for sprinting
Change 3459466 on 2017/05/25 by Dan.Oconnor
Fix for stale UClass ptrs in ReinstanceBatch when using compilation manager
#jira UE-45386
Change 3459469 on 2017/05/25 by Dan.Oconnor
Fix issue exposed by compilation manager - this function can't assign struct default values (e.g. LinearColor)
#jira UE-45389
[CL 3459511 by Marc Audy in Main branch]
2017-05-25 13:42:12 -04:00
|
|
|
if(NewProperty)
|
|
|
|
|
{
|
|
|
|
|
NewProperty->PropertyLinkNext = Blueprint->GeneratedClass->PropertyLink;
|
|
|
|
|
Blueprint->GeneratedClass->PropertyLink = NewProperty;
|
|
|
|
|
}
|
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3255454)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3228496 on 2016/12/09 by Ben.Cosh
This change adds extra information to component template arrays so that the component class can be determined in builds that strip out objects of certain class types such as the editor dedicated server build.
#Jira UE-38842 - "LogBlueprint:Error: [Compiler BP_Skybox_World_RandomTrees_01] Error Can't connect pins ReturnValue and Target" after entering a lobby in a synced server
#Proj KismetCompiler, BlueprintGraph, UnrealEd, Core, Engine, Kismet, BlueprintCompilerCppBackend
Change 3232435 on 2016/12/13 by Ben.Cosh
Fix for a bug introduced in CL 3228496 that caused component templates to fail to be identified by name and resulted in blueprint compilation issues for add component nodes.
#Jira UE-39623 - Unknown template referenced by Add Component Node
#Proj BlueprintGraph, Engine
Change 3234581 on 2016/12/14 by Mike.Beach
Backing out fix for UE-38842 (CL 3228496/3232435/3232564) - mapping UBlueprintGeneratedClass's ComponentTemplates array to a new format was causing issues with deferred dependency loading during serialization (trying to extract type information from a placeholder object). We're opting for a smaller/simpler solution to UE-38842, which will be to store the component information on the node itself (not with the templates).
#jira UE-39707
Change 3236615 on 2016/12/15 by Maciej.Mroz
Nativization: Fixed getter fuctions in FUnconvertedWrapper, the returned ref won;t be const.
Change 3236967 on 2016/12/15 by Dan.Oconnor
Test data showing an error for jira issue UE-39808
Change 3237021 on 2016/12/15 by Dan.Oconnor
UE31622 test data
Change 3237046 on 2016/12/15 by Dan.Oconnor
UE-14123 test data
Change 3239289 on 2016/12/17 by Phillip.Kavan
[UE-38999] Dump component tree node hierarchy to the output log on error state during widget generation.
change summary:
- added FOnTableViewBadState delegate parameter to SSCSEditorDragDropTree
- added SSCSEditor::DumpTree() as the FOnTableViewBadState delegate implementatioon for the STableView widget (to provide us with more info on future occurrences)
#jira UE-38999
Change 3239448 on 2016/12/19 by Maciej.Mroz
#jira UE-39794
New way of collecting dependencies assets. Only directly used assets are listed. It will be used in projects with EDL enabled, once the "EDL boot time" is enabled.
Nativized projects with EDL disabled use the new mechanism as well. They use new __StaticDependenciesAssets functions generator. __StaticDependenciesAssets calls recursively __StaticDependenciesAssets of all Blueprints, that the current BP depends on. It reduces the size of __StaticDependenciesAssets.
Notice, that at the moment, this change should no affect any projects with EDL enabled (because the EDL boot time doesn't work yet).
Change 3239778 on 2016/12/19 by Phillip.Kavan
[UE-39854] Fix nativized assets build error when there are no native code dependencies.
change summary:
- modified FDependenciesGlobalMapHelper::EmitBodyCode() to emit a NULL entry when there are no other entries to emit, in order to avoid a zero-length array initialization error at compile time.
#jira UE-39854
Change 3239965 on 2016/12/19 by Phillip.Kavan
[UE-39733] Fix incorrect graph pin value display names for user-defined enum types.
change summary:
- switched UEnum::GetDisplayNameText() to be a virtual API
- added a UUserDefinedEnum::GetDisplayNameText() override to call FEnumEditorUtils::GetEnumeratorDisplayName()
#jira UE-39733
Change 3240422 on 2016/12/19 by Dan.Oconnor
Remove useless counter. ensureMsgf only fires once
Change 3242313 on 2016/12/21 by Phillip.Kavan
[UE-35418] The Actor details view will now refresh property mappings for the current Actor instance selection after a bytecode-only recompile of its Blueprint class as a dependency during reinstancing.
change summary:
- Modified FBlueprintCompileReinstancer::ReinstanceObjects() to invoke SelectActor() on the current editor selection after a bytecode-only recompile of its class as a dependent BP (i.e. when reinstancing/finalization is not actually incurred). This is meant to be consistent with how the refresh for the current Actor selection is handled by the reinstancer in the other cases.
#jira UE-35418
Change 3242409 on 2016/12/21 by Dan.Oconnor
PR #2995: Arbitrary base logarithm blueprint node (Contributed by Valkrysa)
#jira UE-39169
Change 3243207 on 2016/12/22 by Phillip.Kavan
[UE-39816] Renaming interface input/output parameters will no longer cause broken pin links at interface function call sites in Blueprints that are currently loaded.
change summary:
- modified FBasePinChangeHelper::Broadcast() to consider pin changes sourced from an interface Blueprint
- also revised non-interface function call site check code a bit to try and avoid doing some unnecessary work when possible, since this code runs through every call site node
#jira UE-39816
Change 3243210 on 2016/12/22 by Phillip.Kavan
[UE-39944] Extend the GetClassDefaults node to include output pin exceptions for TSet/TMap properties (i.e. mirror safeguards already in place for TArray).
change summary:
- deprecated 'bExcludeObjectArrays' and replaced with 'bExcludeObjectContainers' (not using a redirect because I need the old property serialized on load for backwards-compatibility)
- modified FClassDefaultsOptionalPinManager's ctor to consider both flags
- modified FClassDefaultsOptionalPinManager::CanTreatPropertyAsOptional() to also test for TSet/TMap types, and exclude them if they contain a non-class UObject property as the inner type (same as we do for TArray)
- modified UK2Node_GetClassDefaults::ValidateNodeDuringCompilation() to also test for TSet/TMap types, and emit a warning for existing pin connections that would have otherwise failed for newly-placed nodes (same as TArray)
- modified UK2Node_GetClassDefaults::ExpandNode() to generate the necessary script needed to create a copy of TSet/TMap property value outputs (same as we do for TArray types)
#jira UE-39944
Change 3243373 on 2016/12/23 by Maciej.Mroz
#jira UE-39794
-Nativized build with EDL enabled use new dependency-gathering system. It shrinks size of the .exe file. This code will change once the boot time EDL is enabled.
-In nativized code, ZCOnstructors are not called. They are replaced by ::StaticClass(). Static class doesn't call noting recursively. We still need to fix interfaces (they have no StaticClass).
- Workaround for UE-40026
- Various minior improvements.
Change 3244038 on 2016/12/28 by Phillip.Kavan
[UE-34488] Child Blueprint assets are now marked as dirty if its parent Blueprint incurs a strucutural change.
change summary:
- modified FBlueprintEditorUtils::MarkBlueprintAsStructurallyModified() to call MarkPackageDirty() after a skeleton-only compile pass on a child Blueprint.
notes:
- this only fixes the issue for child Blueprints that are loaded when the change to the parent Blueprint occurs. unloaded child Blueprints would still need a redirector to fix this up on load.
#jira UE-34488
Change 3244087 on 2016/12/28 by Phillip.Kavan
CIS warning fix (C6236).
Change 3244388 on 2016/12/30 by Phillip.Kavan
[UE-39816] Fix broken pin links caused by renaming interface function input/output parameters prior to compiling the interface, but after renaming the function itself.
change summary:
- modified FBlueprintEditorUtils::FindFunctionInImplementedInterfaces() to prefer the skeleton class when searching, as that is always up-to-date.
- modified FBlueprintEditorUtils::RenameGraph() to update *all* function call site nodes, rather than just those within the current Blueprint class scope.
#jira UE-39816
Change 3245322 on 2017/01/03 by Maciej.Mroz
#jira UE-40125
Fixed a crash when implementing a native interface in a BP
Change 3245667 on 2017/01/03 by Mike.Beach
Mirroring CL 3245664 - Making it so level script bound nodes are fixed up on load (in case the level instances were saved out without the bindings).
#jira UE-39950
Change 3247675 on 2017/01/05 by Maciej.Mroz
BP is not DataOnly, when it overrides an inherited component
related to UE-40131
Change 3247985 on 2017/01/05 by Maciej.Mroz
NativizationSummary object is always present.
#jira UE-40035
Change 3249423 on 2017/01/06 by Mike.Beach
Mirroring CL 3248792 from Orion.
Fix to keep placeholder classes from being needlessly created (when the object they represent already exists) - instead, attempt to lookup and find the existing import objects (which used to be set, but could be cleared during async loading by FLinkerManager::DissociateImportsAndForcedExports()).
#jira OR-34038
Change 3249568 on 2017/01/06 by Mike.Beach
Updating the UBlueprintThumbnailRenderer API so it can be sub-classed by plugin/projects.
PR #2899: Expose UBlueprintThumbnailRenderer in the API (Contributed by e-agaubatz)
#jira UE-38004
Change 3251903 on 2017/01/10 by Phillip.Kavan
[UE-31640] Function inputs are now exposed as variable "Get" nodes via the right-click context menu in a Blueprint function graph context.
Note: Changes are based on shelved CL# 2452724, original proof-of-concept code (credit: Michael.Noland).
#jira UE-31640
#fyi Michael.Noland
Change 3252119 on 2017/01/10 by Phillip.Kavan
CIS fix (shadowed variable).
Change 3252744 on 2017/01/10 by Dan.Oconnor
Add GMinimalCompileOnLoad path for postponing compile on load until all data has been loaded - long term this will be used to improve bp compiler infrastructure (performance, correctness, succinctness)
Change 3252968 on 2017/01/10 by Phillip.Kavan
[UE-36798] Fix for an infinite loop case in the math expression parser.
#jira UE-36798
Change 3253153 on 2017/01/10 by Dan.Oconnor
Fixed construction scripts not being loaded before instancing occurs when using new lighter compile path
Change 3253171 on 2017/01/10 by Mike.Beach
Mirrored CL 3253147.
Properly fills out FPropertyChangedEvent's MemberProperty field, for the property editor's NotifyHook. As its comment implies, "MemberProperty" is meant to represent the outermost property (in scenarios, like with nested struct properties). It was not working this way, and was instead set to the same nested property.
Change 3253220 on 2017/01/10 by Dan.Oconnor
These pins should infer together
#jira UE-40427
Change 3253223 on 2017/01/10 by Phillip.Kavan
[UE-35050] Fix a crash that occurs on an attempt to rename the category of an implemented interface function inherited from a native parent class in the My Blueprint panel.
change summary:
- modified FBlueprintEditorUtils::FindFunctionInImplementedInterfaces() to accept an additional input parameter so that callers can opt-in to searching all inherited interface classes
- modified SMyBlueprint::CanRequestRenameOnActionNode() to prevent rename on implemented interface functions inherited from a native parent class
#jira UE-35050
Change 3253259 on 2017/01/10 by Dan.Oconnor
Quick cleanup, this stuff is in progress
Change 3253983 on 2017/01/11 by Phillip.Kavan
[UE-35629] Disable external curve asset creation when editing a local variable's default value in a Blueprint graph.
change summary:
- modified FCurveStructCustomization::CustomizeChildren() to set the "create" button visibility to "collapsed" when the Owner is NULL (as the default asset path is inferred from the Owner's package).
#jira UE-35629
Change 3254024 on 2017/01/11 by Phillip.Kavan
[UE-40131] Non-native child BPs can now properly override a nativized parent BP's components in a cooked build with exclusive Blueprint class nativiation.
change summary:
- added UBlueprintGeneratedClass::CheckAndApplyComponentTemplateOverrides()
- switched FComponentKey::OwnerClass type from UBlueprintGeneratedClass to UClass to allow the reference to be loaded when it's a nativized BP class.
- modified AActor::PostLoadSubobjects() to apply ICH template overrides to inherited component subobjects on load (only in a cooked build)
- modified AActor::PostSpawnInitialize() to also apply ICH template overrides to inherited component subobjects on new Actor spawns (only in a cooked build)
- modified FBlueprintEditorUtils::IsDataOnlyBlueprint() to additionally reject BPs that have a non-empty ICH (from Maciej)
- added UBlueprint::bHasNativizedParent to cache this as an indicator for cooked builds to allow Actor instances to avoid incurring additional overhead for this at load time in the general case
#jira UE-40131
Change 3254176 on 2017/01/11 by Mike.Beach
Mirroring CL 3245838 to unblock the Odin build. Downgrading new error to warning until we can address it in content (and fully understand why it is triggering).
#jira UE-40470
Change 3254391 on 2017/01/11 by Phillip.Kavan
[UE-40131] CIS fix (non-unity).
Change 3254442 on 2017/01/11 by Mike.Beach
Mirroring CL 3245069 (from RobM), which is described as a "temp fix".
#jira UE-40399
Change 3254599 on 2017/01/11 by Mike.Beach
Updating some of our GetRedirectPinNames() functions - making local copy of an array element instead of a reference. We're adding to the array right after, and the ref can become invalid (if the array is grown and reallocated). Came to us via UDN.
Change 3254624 on 2017/01/11 by Mike.Beach
Backing out CL 3247675, as it removed the "data-only" status from certain Blueprints that, IMO, are still considered "data-only". This would have reprecussions to editor (compile-on) load times, and affect how these Blueprints are presented to the user.
#fyi Maciej.Mroz, Phillip.Kavan
Change 3254671 on 2017/01/11 by Mike.Beach
Resolving CIS warning - USE_EVENT_DRIVEN_ASYNC_LOAD was replaced with GEventDrivenLoaderEnabled.
[CL 3255791 by Mike Beach in Main branch]
2017-01-12 14:36:04 -05:00
|
|
|
}
|
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3298107)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3256692 on 2017/01/13 by Ben.Cosh
This updates the blueprint variable config option tooltip to be more accurate when describing the config to override the value in.
#Jira UE-40334 - Blueprint variables report the wrong config file in the UI when using the set from config option
#Proj Kismet
Change 3258553 on 2017/01/16 by Phillip.Kavan
[UE-40131] Revised fix that will work for "inclusive" BP nativization with data-only BPs.
- Mirrored from //UE4/Release-4.15 (CL# 3258541).
#jira UE-40131
Change 3258958 on 2017/01/16 by Mike.Beach
Adopted fix from UDN - resolves problems with Blueprints which inherit from UDataAsset. Compiling/Reinstancing them was leaving the data asset packages empty.
Change 3259363 on 2017/01/16 by Mike.Beach
Revising fix in UBlueprint::BeginCacheForCookedPlatformData(), saving off nativization data if the -nativizeAssets param is present (not just if it was enabled in packaging settings).
#jira UE-40620
Change 3260722 on 2017/01/17 by Maciej.Mroz
Exclude client-only BPGC from Server.
#jira UE-39728
Change 3261420 on 2017/01/17 by Dan.Oconnor
Final prototype of the GMinimalCompileOnLoad pass
Change 3262208 on 2017/01/18 by Dan.Oconnor
SA fix
Change 3263168 on 2017/01/18 by Dan.Oconnor
Tweak to minimal compile on load pass, doing node refreshing early because node refresh can trigger CDO generation (which cannot happen while reinstancing, unless the new class is ready)
Change 3263844 on 2017/01/19 by Maciej.Mroz
Error when CDO is created for an incomplete dynamic class
Change 3264647 on 2017/01/19 by Mike.Beach
PR #3146: Only ensure if ptr != nullptr (Contributed by projectgheist )
#jira UE-40846
Change 3264818 on 2017/01/19 by Dan.Oconnor
Undo overzealous use of GMinimalCompileOnLoad
Change 3265075 on 2017/01/19 by Dan.Oconnor
Make sure we use the authoritative class for the component template, fixes reinst issue in GMinimalCompileOnLoad pass
Change 3265085 on 2017/01/19 by Mike.Beach
Mirroring CL 3260397
Making it so CreateEvent nodes are searchable using the function name they are bound to (as requested by Jeff Farris). To find this data across your content library, in unopened Blueprints, you'll have to resave those Blueprints (so the new data is available in the asset registry).
Change 3272401 on 2017/01/25 by Mike.Beach
Fixed a bug where modifying certain timeline settings would not dirty the Blueprint.
PR #3137: UE-40674: Mark TimeLine BP as modified (Contributed by projectgheist)
#jira UE-40680, UE-40674
Change 3273050 on 2017/01/26 by Maciej.Mroz
#jira ODIN-4913, UE-40974
merged cl3268193 from Odin branch
Nativization:
- added ConstructTInlineValue function
- TInlineValue structures will be initialized using UScriptStruct::InitializeStruct, instead of callind default constructor ( default constructor is unrealible)
Change 3273052 on 2017/01/26 by Maciej.Mroz
#jira UE-40917
merged cl#3270456 from Odin branch
Nativization:
Actor template from ChildActorComponent is a subobject of nativized class.
Change 3275646 on 2017/01/27 by Dan.Oconnor
Fix obscure issue when reinstancing interface types
Change 3275811 on 2017/01/27 by Dan.Oconnor
ImplementsGetWorld now properly inherited for blueprint types that derive from a blueprint type that derives from a native type that "ImplementsGetWorld"
Change 3275922 on 2017/01/27 by Dan.Oconnor
Preserve trashed properties' names, don't force regen nodes when using the new compile manager (it has already regen'd nodes)
Change 3276037 on 2017/01/27 by Dan.Oconnor
Uses Authoritative class for this type check, added const version of GetAuthoritativeClass
Change 3276109 on 2017/01/27 by Phillip.Kavan
[UE-40894] Fix data loss issues with non-native Blueprint classes that override inherited component default values from a nativized parent Blueprint class hierarchy.
change summary:
- modified FBlueprintEditorUtils::BuildComponentInstancingData() to accept an additional parameter indicating whether or not to use the CDO or the template's Archetype as the basis for building the delta property list.
- revised UBlueprint::BeginCacheForCookedPlatformData() to first generate "override" data for ICH records that override SCS nodes from parent classes that are targeted for nativization. this also makes the optimized component instancing feature compatible with nativization as well (should that ever become useful).
- revised UBlueprintGeneratedClass::CheckAndApplyComponentTemplateOverrides() to utilize the additional delta property list data that's now generated at cook time along with a delta serialization pass against the ICH template that's serializes changed properties to a cached data block at load time. this cached "override" data is then applied to instanced subobjects inherited from nativized parent Blueprint classes using a minimal binary serialization pass.
#jira UE-40894
Change 3277671 on 2017/01/30 by Mike.Beach
Mirroring CL 3276602.
Refactoring FBlueprintCompilerCppBackend::SortNodesInUberGraphExecutionGroup() a bit. Catching cases that weren't acounted for - detecting cyclical logic now when we've pulled a node/statement out of order, and other nodes need to fall through to that logic (not relying on a goto).
#jira UE-41188, UE-41189, UE-41186, UE-41037
Change 3278454 on 2017/01/30 by Mike.Beach
Mirroring CL 3278054
Upgrading USimpleConstructionScript::FixupSceneNodeHierarchy() so that the SCS detects orphaned components, and adds them to the hierarchy (notifying users of the issue with a warning).
#jira UE-41247
Change 3278814 on 2017/01/31 by Maciej.Mroz
fixed CIS warning
fixed FBlueprintNativeCodeGenModule::FindReplacedNameAndOuter
Change 3279398 on 2017/01/31 by Mike.Beach
Back out changelist 3278454 - causing unforseen issues, restructuring the component hierarchy.
Change 3282200 on 2017/02/01 by Dan.Oconnor
Moved ForceLoad helpers into UBlueprint so that new compile on load path can prod the linker into loading stuff before flushing the compilation queue
Change 3282269 on 2017/02/01 by Mike.Beach
ClassGeneratedBy not dependable in cooked builds, must rely on class flags to determine if this is a Blueprint class.
Change 3284455 on 2017/02/02 by Dan.Oconnor
Reinstancer optimizations and skipping loader reset when using the new compile manager
Change 3284463 on 2017/02/02 by Dan.Oconnor
Handling missing GeneratedClass
Change 3284476 on 2017/02/02 by Dan.Oconnor
Flush compilation manager when we would normally do a bytecode pass, this guarantees clients of LoadObject that we won't reinstance a pointer on load (giving them back a stale object)
Change 3284523 on 2017/02/02 by Dan.Oconnor
Optimize FBlueprintUnloader::ReplaceStaleRefs, add option to skip reinstancing when recompiling bytecode, refactored bytecode recompilation options into a flag parameter
Change 3285731 on 2017/02/03 by Dan.Oconnor
Merging //UE4/Dev-Main to Dev-Blueprints (//UE4/Dev-Blueprints)
Auto resolved, with merging:
K2Node_CreateDelegate.h/cpp, KismetCompiler.cpp, WidgetBlueprintCompiler.cpp, Kismet2.cpp, KismetReinstanceUtilities.cpp/h, KismetEditorUtils.h, BlueprintSupport.cpp, Class.cpp, LinkerLoad.cpp, Obj.cpp, Class.h, Object.h, BlueprintGeneratedClass.cpp, DefaultEngine.ini,
Manually resolved:
BlueprintEditorUtils.cpp, TestRunner.Automation.Tests.cs, OrionAutobuyCardStatEntry.cpp/h, OrionStateWidget_DraftLobby.cpp
All else resolved safely (no merging)
Change 3286019 on 2017/02/03 by Dan.Oconnor
Add assertion that was added in main
Change 3286031 on 2017/02/03 by Dan.Oconnor
Build fix, missing include
Change 3286056 on 2017/02/03 by Mike.Beach
Corrected fix (from CL 3278454, which had to be backed out) - USimpleConstructionScript::FixupSceneNodeHierarchy() so that the SCS detects orphaned components, and adds them to the hierarchy (notifying users of the issue with a warning).
#jira UE-41247
Change 3286302 on 2017/02/03 by Dan.Oconnor
Allow reinstancing to run very early or in other situation where GEditor is not yet set up
Change 3286386 on 2017/02/03 by Dan.Oconnor
GMinimalCompileOnLoad checks no longer needed with my local changes to BlueprintCompilationManager
Change 3286391 on 2017/02/03 by Dan.Oconnor
Missed old comment
Change 3286614 on 2017/02/03 by Dan.Oconnor
GMinimalCompileOnLoad logic no longer needed
Change 3286655 on 2017/02/03 by Dan.Oconnor
Refactor FKismetEditorUtilities::CompileBlueprint flags into EBlueprintCompileOptions
Change 3286662 on 2017/02/03 by Dan.Oconnor
Build fix, missed file
Change 3288770 on 2017/02/06 by Mike.Beach
Attempt to fix up CIS warnings from CL 3286056.
Change 3289236 on 2017/02/06 by Mike.Beach
Missed fix for CIS warning.
Change 3289276 on 2017/02/06 by Dan.Oconnor
Duplication of CDO is unnecessary
#fyi Maciej.Mroz
Change 3289334 on 2017/02/06 by Dan.Oconnor
Add option to skip all reinstancing logic when running CompileBlueprint - used locally by the blueprint compilation manager. Fixed Typo.
Change 3289443 on 2017/02/06 by Dan.Oconnor
Further cleanup of GMinimalCompileOnLoad abuse. added flag to skip reinstancing and "stub on failure" compile pass
Change 3290509 on 2017/02/07 by Dan.Oconnor
Addressed this with a change to the blueprint compiler manager - no modification needed
Change 3290534 on 2017/02/07 by Dan.Oconnor
Remove old forward declare and outdated comment
Change 3291446 on 2017/02/07 by Dan.Oconnor
This CPFUO call is unused with my latest iteration on the compiler manager
Change 3291516 on 2017/02/07 by Dan.Oconnor
Running compile manager earlier means we don't need to worry about this weird (and costly) call
Change 3291534 on 2017/02/07 by Dan.Oconnor
This compile children call is no longer running with latest improvents to the compile manager
Change 3292587 on 2017/02/08 by Maciej.Mroz
#jira UE-41694
Mirroring cl#3292273 from Odin branch
Change 3293344 on 2017/02/08 by Dan.Oconnor
Iteration on blueprint compile manager - fortnite loads without issue. For now I do the three compile passes that are done by the existing load paths. Timing is actually quite reasonable. Centralizing reinstancing has sped things up.
#fyi Maciej.Mroz
Change 3293565 on 2017/02/08 by Dan.Oconnor
Back out changelist 3293344 - wrong CL
Change 3293567 on 2017/02/08 by Dan.Oconnor
Iteration on blueprint compile manager - fortnite loads without issue. For now I do the three compile passes that are done by the existing load paths. Timing is actually quite reasonable. Centralizing reinstancing has sped things up.
#fyi Maciej.Mroz
Change 3294334 on 2017/02/09 by Phillip.Kavan
[UE-41246] Fix misaligned memory access of noexport struct properties leading to incorrectly initialized values.
- Mirrored from //Odin/Main/... (CL# 3284308).
#jira UE-41246
Change 3294343 on 2017/02/09 by Phillip.Kavan
[UE-41246] Add a whitelist mechanism to handle native noexport types that can support direct field access in nativized Blueprint code.
- Mirrored from //Odin/Main/... (CL# 3285789).
#jira UE-41246
Change 3295913 on 2017/02/09 by Dan.Oconnor
Back out reinstancer optimization, failing to find a reference and it's causing a crash when a component is renamed
#jira UE-41843
Change 3297279 on 2017/02/10 by Dan.Oconnor
SA fix
Change 3297587 on 2017/02/10 by Mike.Beach
Temporarily disabling a spurious warning that gets triggered in Fortnite, when correctly excluding client-only Blueprints.
#jira UE-41880
Change 3298078 on 2017/02/10 by Dan.Oconnor
Try to suppress confused SA warning
[CL 3298251 by Mike Beach in Main branch]
2017-02-10 19:50:34 -05:00
|
|
|
|
|
|
|
|
Blueprint->GeneratedClass->Bind();
|
|
|
|
|
Blueprint->GeneratedClass->StaticLink(true);
|
|
|
|
|
// regenerate CDO:
|
|
|
|
|
Blueprint->GeneratedClass->GetDefaultObject();
|
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3255454)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3228496 on 2016/12/09 by Ben.Cosh
This change adds extra information to component template arrays so that the component class can be determined in builds that strip out objects of certain class types such as the editor dedicated server build.
#Jira UE-38842 - "LogBlueprint:Error: [Compiler BP_Skybox_World_RandomTrees_01] Error Can't connect pins ReturnValue and Target" after entering a lobby in a synced server
#Proj KismetCompiler, BlueprintGraph, UnrealEd, Core, Engine, Kismet, BlueprintCompilerCppBackend
Change 3232435 on 2016/12/13 by Ben.Cosh
Fix for a bug introduced in CL 3228496 that caused component templates to fail to be identified by name and resulted in blueprint compilation issues for add component nodes.
#Jira UE-39623 - Unknown template referenced by Add Component Node
#Proj BlueprintGraph, Engine
Change 3234581 on 2016/12/14 by Mike.Beach
Backing out fix for UE-38842 (CL 3228496/3232435/3232564) - mapping UBlueprintGeneratedClass's ComponentTemplates array to a new format was causing issues with deferred dependency loading during serialization (trying to extract type information from a placeholder object). We're opting for a smaller/simpler solution to UE-38842, which will be to store the component information on the node itself (not with the templates).
#jira UE-39707
Change 3236615 on 2016/12/15 by Maciej.Mroz
Nativization: Fixed getter fuctions in FUnconvertedWrapper, the returned ref won;t be const.
Change 3236967 on 2016/12/15 by Dan.Oconnor
Test data showing an error for jira issue UE-39808
Change 3237021 on 2016/12/15 by Dan.Oconnor
UE31622 test data
Change 3237046 on 2016/12/15 by Dan.Oconnor
UE-14123 test data
Change 3239289 on 2016/12/17 by Phillip.Kavan
[UE-38999] Dump component tree node hierarchy to the output log on error state during widget generation.
change summary:
- added FOnTableViewBadState delegate parameter to SSCSEditorDragDropTree
- added SSCSEditor::DumpTree() as the FOnTableViewBadState delegate implementatioon for the STableView widget (to provide us with more info on future occurrences)
#jira UE-38999
Change 3239448 on 2016/12/19 by Maciej.Mroz
#jira UE-39794
New way of collecting dependencies assets. Only directly used assets are listed. It will be used in projects with EDL enabled, once the "EDL boot time" is enabled.
Nativized projects with EDL disabled use the new mechanism as well. They use new __StaticDependenciesAssets functions generator. __StaticDependenciesAssets calls recursively __StaticDependenciesAssets of all Blueprints, that the current BP depends on. It reduces the size of __StaticDependenciesAssets.
Notice, that at the moment, this change should no affect any projects with EDL enabled (because the EDL boot time doesn't work yet).
Change 3239778 on 2016/12/19 by Phillip.Kavan
[UE-39854] Fix nativized assets build error when there are no native code dependencies.
change summary:
- modified FDependenciesGlobalMapHelper::EmitBodyCode() to emit a NULL entry when there are no other entries to emit, in order to avoid a zero-length array initialization error at compile time.
#jira UE-39854
Change 3239965 on 2016/12/19 by Phillip.Kavan
[UE-39733] Fix incorrect graph pin value display names for user-defined enum types.
change summary:
- switched UEnum::GetDisplayNameText() to be a virtual API
- added a UUserDefinedEnum::GetDisplayNameText() override to call FEnumEditorUtils::GetEnumeratorDisplayName()
#jira UE-39733
Change 3240422 on 2016/12/19 by Dan.Oconnor
Remove useless counter. ensureMsgf only fires once
Change 3242313 on 2016/12/21 by Phillip.Kavan
[UE-35418] The Actor details view will now refresh property mappings for the current Actor instance selection after a bytecode-only recompile of its Blueprint class as a dependency during reinstancing.
change summary:
- Modified FBlueprintCompileReinstancer::ReinstanceObjects() to invoke SelectActor() on the current editor selection after a bytecode-only recompile of its class as a dependent BP (i.e. when reinstancing/finalization is not actually incurred). This is meant to be consistent with how the refresh for the current Actor selection is handled by the reinstancer in the other cases.
#jira UE-35418
Change 3242409 on 2016/12/21 by Dan.Oconnor
PR #2995: Arbitrary base logarithm blueprint node (Contributed by Valkrysa)
#jira UE-39169
Change 3243207 on 2016/12/22 by Phillip.Kavan
[UE-39816] Renaming interface input/output parameters will no longer cause broken pin links at interface function call sites in Blueprints that are currently loaded.
change summary:
- modified FBasePinChangeHelper::Broadcast() to consider pin changes sourced from an interface Blueprint
- also revised non-interface function call site check code a bit to try and avoid doing some unnecessary work when possible, since this code runs through every call site node
#jira UE-39816
Change 3243210 on 2016/12/22 by Phillip.Kavan
[UE-39944] Extend the GetClassDefaults node to include output pin exceptions for TSet/TMap properties (i.e. mirror safeguards already in place for TArray).
change summary:
- deprecated 'bExcludeObjectArrays' and replaced with 'bExcludeObjectContainers' (not using a redirect because I need the old property serialized on load for backwards-compatibility)
- modified FClassDefaultsOptionalPinManager's ctor to consider both flags
- modified FClassDefaultsOptionalPinManager::CanTreatPropertyAsOptional() to also test for TSet/TMap types, and exclude them if they contain a non-class UObject property as the inner type (same as we do for TArray)
- modified UK2Node_GetClassDefaults::ValidateNodeDuringCompilation() to also test for TSet/TMap types, and emit a warning for existing pin connections that would have otherwise failed for newly-placed nodes (same as TArray)
- modified UK2Node_GetClassDefaults::ExpandNode() to generate the necessary script needed to create a copy of TSet/TMap property value outputs (same as we do for TArray types)
#jira UE-39944
Change 3243373 on 2016/12/23 by Maciej.Mroz
#jira UE-39794
-Nativized build with EDL enabled use new dependency-gathering system. It shrinks size of the .exe file. This code will change once the boot time EDL is enabled.
-In nativized code, ZCOnstructors are not called. They are replaced by ::StaticClass(). Static class doesn't call noting recursively. We still need to fix interfaces (they have no StaticClass).
- Workaround for UE-40026
- Various minior improvements.
Change 3244038 on 2016/12/28 by Phillip.Kavan
[UE-34488] Child Blueprint assets are now marked as dirty if its parent Blueprint incurs a strucutural change.
change summary:
- modified FBlueprintEditorUtils::MarkBlueprintAsStructurallyModified() to call MarkPackageDirty() after a skeleton-only compile pass on a child Blueprint.
notes:
- this only fixes the issue for child Blueprints that are loaded when the change to the parent Blueprint occurs. unloaded child Blueprints would still need a redirector to fix this up on load.
#jira UE-34488
Change 3244087 on 2016/12/28 by Phillip.Kavan
CIS warning fix (C6236).
Change 3244388 on 2016/12/30 by Phillip.Kavan
[UE-39816] Fix broken pin links caused by renaming interface function input/output parameters prior to compiling the interface, but after renaming the function itself.
change summary:
- modified FBlueprintEditorUtils::FindFunctionInImplementedInterfaces() to prefer the skeleton class when searching, as that is always up-to-date.
- modified FBlueprintEditorUtils::RenameGraph() to update *all* function call site nodes, rather than just those within the current Blueprint class scope.
#jira UE-39816
Change 3245322 on 2017/01/03 by Maciej.Mroz
#jira UE-40125
Fixed a crash when implementing a native interface in a BP
Change 3245667 on 2017/01/03 by Mike.Beach
Mirroring CL 3245664 - Making it so level script bound nodes are fixed up on load (in case the level instances were saved out without the bindings).
#jira UE-39950
Change 3247675 on 2017/01/05 by Maciej.Mroz
BP is not DataOnly, when it overrides an inherited component
related to UE-40131
Change 3247985 on 2017/01/05 by Maciej.Mroz
NativizationSummary object is always present.
#jira UE-40035
Change 3249423 on 2017/01/06 by Mike.Beach
Mirroring CL 3248792 from Orion.
Fix to keep placeholder classes from being needlessly created (when the object they represent already exists) - instead, attempt to lookup and find the existing import objects (which used to be set, but could be cleared during async loading by FLinkerManager::DissociateImportsAndForcedExports()).
#jira OR-34038
Change 3249568 on 2017/01/06 by Mike.Beach
Updating the UBlueprintThumbnailRenderer API so it can be sub-classed by plugin/projects.
PR #2899: Expose UBlueprintThumbnailRenderer in the API (Contributed by e-agaubatz)
#jira UE-38004
Change 3251903 on 2017/01/10 by Phillip.Kavan
[UE-31640] Function inputs are now exposed as variable "Get" nodes via the right-click context menu in a Blueprint function graph context.
Note: Changes are based on shelved CL# 2452724, original proof-of-concept code (credit: Michael.Noland).
#jira UE-31640
#fyi Michael.Noland
Change 3252119 on 2017/01/10 by Phillip.Kavan
CIS fix (shadowed variable).
Change 3252744 on 2017/01/10 by Dan.Oconnor
Add GMinimalCompileOnLoad path for postponing compile on load until all data has been loaded - long term this will be used to improve bp compiler infrastructure (performance, correctness, succinctness)
Change 3252968 on 2017/01/10 by Phillip.Kavan
[UE-36798] Fix for an infinite loop case in the math expression parser.
#jira UE-36798
Change 3253153 on 2017/01/10 by Dan.Oconnor
Fixed construction scripts not being loaded before instancing occurs when using new lighter compile path
Change 3253171 on 2017/01/10 by Mike.Beach
Mirrored CL 3253147.
Properly fills out FPropertyChangedEvent's MemberProperty field, for the property editor's NotifyHook. As its comment implies, "MemberProperty" is meant to represent the outermost property (in scenarios, like with nested struct properties). It was not working this way, and was instead set to the same nested property.
Change 3253220 on 2017/01/10 by Dan.Oconnor
These pins should infer together
#jira UE-40427
Change 3253223 on 2017/01/10 by Phillip.Kavan
[UE-35050] Fix a crash that occurs on an attempt to rename the category of an implemented interface function inherited from a native parent class in the My Blueprint panel.
change summary:
- modified FBlueprintEditorUtils::FindFunctionInImplementedInterfaces() to accept an additional input parameter so that callers can opt-in to searching all inherited interface classes
- modified SMyBlueprint::CanRequestRenameOnActionNode() to prevent rename on implemented interface functions inherited from a native parent class
#jira UE-35050
Change 3253259 on 2017/01/10 by Dan.Oconnor
Quick cleanup, this stuff is in progress
Change 3253983 on 2017/01/11 by Phillip.Kavan
[UE-35629] Disable external curve asset creation when editing a local variable's default value in a Blueprint graph.
change summary:
- modified FCurveStructCustomization::CustomizeChildren() to set the "create" button visibility to "collapsed" when the Owner is NULL (as the default asset path is inferred from the Owner's package).
#jira UE-35629
Change 3254024 on 2017/01/11 by Phillip.Kavan
[UE-40131] Non-native child BPs can now properly override a nativized parent BP's components in a cooked build with exclusive Blueprint class nativiation.
change summary:
- added UBlueprintGeneratedClass::CheckAndApplyComponentTemplateOverrides()
- switched FComponentKey::OwnerClass type from UBlueprintGeneratedClass to UClass to allow the reference to be loaded when it's a nativized BP class.
- modified AActor::PostLoadSubobjects() to apply ICH template overrides to inherited component subobjects on load (only in a cooked build)
- modified AActor::PostSpawnInitialize() to also apply ICH template overrides to inherited component subobjects on new Actor spawns (only in a cooked build)
- modified FBlueprintEditorUtils::IsDataOnlyBlueprint() to additionally reject BPs that have a non-empty ICH (from Maciej)
- added UBlueprint::bHasNativizedParent to cache this as an indicator for cooked builds to allow Actor instances to avoid incurring additional overhead for this at load time in the general case
#jira UE-40131
Change 3254176 on 2017/01/11 by Mike.Beach
Mirroring CL 3245838 to unblock the Odin build. Downgrading new error to warning until we can address it in content (and fully understand why it is triggering).
#jira UE-40470
Change 3254391 on 2017/01/11 by Phillip.Kavan
[UE-40131] CIS fix (non-unity).
Change 3254442 on 2017/01/11 by Mike.Beach
Mirroring CL 3245069 (from RobM), which is described as a "temp fix".
#jira UE-40399
Change 3254599 on 2017/01/11 by Mike.Beach
Updating some of our GetRedirectPinNames() functions - making local copy of an array element instead of a reference. We're adding to the array right after, and the ref can become invalid (if the array is grown and reallocated). Came to us via UDN.
Change 3254624 on 2017/01/11 by Mike.Beach
Backing out CL 3247675, as it removed the "data-only" status from certain Blueprints that, IMO, are still considered "data-only". This would have reprecussions to editor (compile-on) load times, and affect how these Blueprints are presented to the user.
#fyi Maciej.Mroz, Phillip.Kavan
Change 3254671 on 2017/01/11 by Mike.Beach
Resolving CIS warning - USE_EVENT_DRIVEN_ASYNC_LOAD was replaced with GEventDrivenLoaderEnabled.
[CL 3255791 by Mike Beach in Main branch]
2017-01-12 14:36:04 -05:00
|
|
|
|
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3298107)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3256692 on 2017/01/13 by Ben.Cosh
This updates the blueprint variable config option tooltip to be more accurate when describing the config to override the value in.
#Jira UE-40334 - Blueprint variables report the wrong config file in the UI when using the set from config option
#Proj Kismet
Change 3258553 on 2017/01/16 by Phillip.Kavan
[UE-40131] Revised fix that will work for "inclusive" BP nativization with data-only BPs.
- Mirrored from //UE4/Release-4.15 (CL# 3258541).
#jira UE-40131
Change 3258958 on 2017/01/16 by Mike.Beach
Adopted fix from UDN - resolves problems with Blueprints which inherit from UDataAsset. Compiling/Reinstancing them was leaving the data asset packages empty.
Change 3259363 on 2017/01/16 by Mike.Beach
Revising fix in UBlueprint::BeginCacheForCookedPlatformData(), saving off nativization data if the -nativizeAssets param is present (not just if it was enabled in packaging settings).
#jira UE-40620
Change 3260722 on 2017/01/17 by Maciej.Mroz
Exclude client-only BPGC from Server.
#jira UE-39728
Change 3261420 on 2017/01/17 by Dan.Oconnor
Final prototype of the GMinimalCompileOnLoad pass
Change 3262208 on 2017/01/18 by Dan.Oconnor
SA fix
Change 3263168 on 2017/01/18 by Dan.Oconnor
Tweak to minimal compile on load pass, doing node refreshing early because node refresh can trigger CDO generation (which cannot happen while reinstancing, unless the new class is ready)
Change 3263844 on 2017/01/19 by Maciej.Mroz
Error when CDO is created for an incomplete dynamic class
Change 3264647 on 2017/01/19 by Mike.Beach
PR #3146: Only ensure if ptr != nullptr (Contributed by projectgheist )
#jira UE-40846
Change 3264818 on 2017/01/19 by Dan.Oconnor
Undo overzealous use of GMinimalCompileOnLoad
Change 3265075 on 2017/01/19 by Dan.Oconnor
Make sure we use the authoritative class for the component template, fixes reinst issue in GMinimalCompileOnLoad pass
Change 3265085 on 2017/01/19 by Mike.Beach
Mirroring CL 3260397
Making it so CreateEvent nodes are searchable using the function name they are bound to (as requested by Jeff Farris). To find this data across your content library, in unopened Blueprints, you'll have to resave those Blueprints (so the new data is available in the asset registry).
Change 3272401 on 2017/01/25 by Mike.Beach
Fixed a bug where modifying certain timeline settings would not dirty the Blueprint.
PR #3137: UE-40674: Mark TimeLine BP as modified (Contributed by projectgheist)
#jira UE-40680, UE-40674
Change 3273050 on 2017/01/26 by Maciej.Mroz
#jira ODIN-4913, UE-40974
merged cl3268193 from Odin branch
Nativization:
- added ConstructTInlineValue function
- TInlineValue structures will be initialized using UScriptStruct::InitializeStruct, instead of callind default constructor ( default constructor is unrealible)
Change 3273052 on 2017/01/26 by Maciej.Mroz
#jira UE-40917
merged cl#3270456 from Odin branch
Nativization:
Actor template from ChildActorComponent is a subobject of nativized class.
Change 3275646 on 2017/01/27 by Dan.Oconnor
Fix obscure issue when reinstancing interface types
Change 3275811 on 2017/01/27 by Dan.Oconnor
ImplementsGetWorld now properly inherited for blueprint types that derive from a blueprint type that derives from a native type that "ImplementsGetWorld"
Change 3275922 on 2017/01/27 by Dan.Oconnor
Preserve trashed properties' names, don't force regen nodes when using the new compile manager (it has already regen'd nodes)
Change 3276037 on 2017/01/27 by Dan.Oconnor
Uses Authoritative class for this type check, added const version of GetAuthoritativeClass
Change 3276109 on 2017/01/27 by Phillip.Kavan
[UE-40894] Fix data loss issues with non-native Blueprint classes that override inherited component default values from a nativized parent Blueprint class hierarchy.
change summary:
- modified FBlueprintEditorUtils::BuildComponentInstancingData() to accept an additional parameter indicating whether or not to use the CDO or the template's Archetype as the basis for building the delta property list.
- revised UBlueprint::BeginCacheForCookedPlatformData() to first generate "override" data for ICH records that override SCS nodes from parent classes that are targeted for nativization. this also makes the optimized component instancing feature compatible with nativization as well (should that ever become useful).
- revised UBlueprintGeneratedClass::CheckAndApplyComponentTemplateOverrides() to utilize the additional delta property list data that's now generated at cook time along with a delta serialization pass against the ICH template that's serializes changed properties to a cached data block at load time. this cached "override" data is then applied to instanced subobjects inherited from nativized parent Blueprint classes using a minimal binary serialization pass.
#jira UE-40894
Change 3277671 on 2017/01/30 by Mike.Beach
Mirroring CL 3276602.
Refactoring FBlueprintCompilerCppBackend::SortNodesInUberGraphExecutionGroup() a bit. Catching cases that weren't acounted for - detecting cyclical logic now when we've pulled a node/statement out of order, and other nodes need to fall through to that logic (not relying on a goto).
#jira UE-41188, UE-41189, UE-41186, UE-41037
Change 3278454 on 2017/01/30 by Mike.Beach
Mirroring CL 3278054
Upgrading USimpleConstructionScript::FixupSceneNodeHierarchy() so that the SCS detects orphaned components, and adds them to the hierarchy (notifying users of the issue with a warning).
#jira UE-41247
Change 3278814 on 2017/01/31 by Maciej.Mroz
fixed CIS warning
fixed FBlueprintNativeCodeGenModule::FindReplacedNameAndOuter
Change 3279398 on 2017/01/31 by Mike.Beach
Back out changelist 3278454 - causing unforseen issues, restructuring the component hierarchy.
Change 3282200 on 2017/02/01 by Dan.Oconnor
Moved ForceLoad helpers into UBlueprint so that new compile on load path can prod the linker into loading stuff before flushing the compilation queue
Change 3282269 on 2017/02/01 by Mike.Beach
ClassGeneratedBy not dependable in cooked builds, must rely on class flags to determine if this is a Blueprint class.
Change 3284455 on 2017/02/02 by Dan.Oconnor
Reinstancer optimizations and skipping loader reset when using the new compile manager
Change 3284463 on 2017/02/02 by Dan.Oconnor
Handling missing GeneratedClass
Change 3284476 on 2017/02/02 by Dan.Oconnor
Flush compilation manager when we would normally do a bytecode pass, this guarantees clients of LoadObject that we won't reinstance a pointer on load (giving them back a stale object)
Change 3284523 on 2017/02/02 by Dan.Oconnor
Optimize FBlueprintUnloader::ReplaceStaleRefs, add option to skip reinstancing when recompiling bytecode, refactored bytecode recompilation options into a flag parameter
Change 3285731 on 2017/02/03 by Dan.Oconnor
Merging //UE4/Dev-Main to Dev-Blueprints (//UE4/Dev-Blueprints)
Auto resolved, with merging:
K2Node_CreateDelegate.h/cpp, KismetCompiler.cpp, WidgetBlueprintCompiler.cpp, Kismet2.cpp, KismetReinstanceUtilities.cpp/h, KismetEditorUtils.h, BlueprintSupport.cpp, Class.cpp, LinkerLoad.cpp, Obj.cpp, Class.h, Object.h, BlueprintGeneratedClass.cpp, DefaultEngine.ini,
Manually resolved:
BlueprintEditorUtils.cpp, TestRunner.Automation.Tests.cs, OrionAutobuyCardStatEntry.cpp/h, OrionStateWidget_DraftLobby.cpp
All else resolved safely (no merging)
Change 3286019 on 2017/02/03 by Dan.Oconnor
Add assertion that was added in main
Change 3286031 on 2017/02/03 by Dan.Oconnor
Build fix, missing include
Change 3286056 on 2017/02/03 by Mike.Beach
Corrected fix (from CL 3278454, which had to be backed out) - USimpleConstructionScript::FixupSceneNodeHierarchy() so that the SCS detects orphaned components, and adds them to the hierarchy (notifying users of the issue with a warning).
#jira UE-41247
Change 3286302 on 2017/02/03 by Dan.Oconnor
Allow reinstancing to run very early or in other situation where GEditor is not yet set up
Change 3286386 on 2017/02/03 by Dan.Oconnor
GMinimalCompileOnLoad checks no longer needed with my local changes to BlueprintCompilationManager
Change 3286391 on 2017/02/03 by Dan.Oconnor
Missed old comment
Change 3286614 on 2017/02/03 by Dan.Oconnor
GMinimalCompileOnLoad logic no longer needed
Change 3286655 on 2017/02/03 by Dan.Oconnor
Refactor FKismetEditorUtilities::CompileBlueprint flags into EBlueprintCompileOptions
Change 3286662 on 2017/02/03 by Dan.Oconnor
Build fix, missed file
Change 3288770 on 2017/02/06 by Mike.Beach
Attempt to fix up CIS warnings from CL 3286056.
Change 3289236 on 2017/02/06 by Mike.Beach
Missed fix for CIS warning.
Change 3289276 on 2017/02/06 by Dan.Oconnor
Duplication of CDO is unnecessary
#fyi Maciej.Mroz
Change 3289334 on 2017/02/06 by Dan.Oconnor
Add option to skip all reinstancing logic when running CompileBlueprint - used locally by the blueprint compilation manager. Fixed Typo.
Change 3289443 on 2017/02/06 by Dan.Oconnor
Further cleanup of GMinimalCompileOnLoad abuse. added flag to skip reinstancing and "stub on failure" compile pass
Change 3290509 on 2017/02/07 by Dan.Oconnor
Addressed this with a change to the blueprint compiler manager - no modification needed
Change 3290534 on 2017/02/07 by Dan.Oconnor
Remove old forward declare and outdated comment
Change 3291446 on 2017/02/07 by Dan.Oconnor
This CPFUO call is unused with my latest iteration on the compiler manager
Change 3291516 on 2017/02/07 by Dan.Oconnor
Running compile manager earlier means we don't need to worry about this weird (and costly) call
Change 3291534 on 2017/02/07 by Dan.Oconnor
This compile children call is no longer running with latest improvents to the compile manager
Change 3292587 on 2017/02/08 by Maciej.Mroz
#jira UE-41694
Mirroring cl#3292273 from Odin branch
Change 3293344 on 2017/02/08 by Dan.Oconnor
Iteration on blueprint compile manager - fortnite loads without issue. For now I do the three compile passes that are done by the existing load paths. Timing is actually quite reasonable. Centralizing reinstancing has sped things up.
#fyi Maciej.Mroz
Change 3293565 on 2017/02/08 by Dan.Oconnor
Back out changelist 3293344 - wrong CL
Change 3293567 on 2017/02/08 by Dan.Oconnor
Iteration on blueprint compile manager - fortnite loads without issue. For now I do the three compile passes that are done by the existing load paths. Timing is actually quite reasonable. Centralizing reinstancing has sped things up.
#fyi Maciej.Mroz
Change 3294334 on 2017/02/09 by Phillip.Kavan
[UE-41246] Fix misaligned memory access of noexport struct properties leading to incorrectly initialized values.
- Mirrored from //Odin/Main/... (CL# 3284308).
#jira UE-41246
Change 3294343 on 2017/02/09 by Phillip.Kavan
[UE-41246] Add a whitelist mechanism to handle native noexport types that can support direct field access in nativized Blueprint code.
- Mirrored from //Odin/Main/... (CL# 3285789).
#jira UE-41246
Change 3295913 on 2017/02/09 by Dan.Oconnor
Back out reinstancer optimization, failing to find a reference and it's causing a crash when a component is renamed
#jira UE-41843
Change 3297279 on 2017/02/10 by Dan.Oconnor
SA fix
Change 3297587 on 2017/02/10 by Mike.Beach
Temporarily disabling a spurious warning that gets triggered in Fortnite, when correctly excluding client-only Blueprints.
#jira UE-41880
Change 3298078 on 2017/02/10 by Dan.Oconnor
Try to suppress confused SA warning
[CL 3298251 by Mike Beach in Main branch]
2017-02-10 19:50:34 -05:00
|
|
|
// cpfuo:
|
|
|
|
|
UEngine::FCopyPropertiesForUnrelatedObjectsParams Params;
|
2020-02-14 21:25:56 -05:00
|
|
|
Params.bNotifyObjectReplacement = true;
|
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3298107)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3256692 on 2017/01/13 by Ben.Cosh
This updates the blueprint variable config option tooltip to be more accurate when describing the config to override the value in.
#Jira UE-40334 - Blueprint variables report the wrong config file in the UI when using the set from config option
#Proj Kismet
Change 3258553 on 2017/01/16 by Phillip.Kavan
[UE-40131] Revised fix that will work for "inclusive" BP nativization with data-only BPs.
- Mirrored from //UE4/Release-4.15 (CL# 3258541).
#jira UE-40131
Change 3258958 on 2017/01/16 by Mike.Beach
Adopted fix from UDN - resolves problems with Blueprints which inherit from UDataAsset. Compiling/Reinstancing them was leaving the data asset packages empty.
Change 3259363 on 2017/01/16 by Mike.Beach
Revising fix in UBlueprint::BeginCacheForCookedPlatformData(), saving off nativization data if the -nativizeAssets param is present (not just if it was enabled in packaging settings).
#jira UE-40620
Change 3260722 on 2017/01/17 by Maciej.Mroz
Exclude client-only BPGC from Server.
#jira UE-39728
Change 3261420 on 2017/01/17 by Dan.Oconnor
Final prototype of the GMinimalCompileOnLoad pass
Change 3262208 on 2017/01/18 by Dan.Oconnor
SA fix
Change 3263168 on 2017/01/18 by Dan.Oconnor
Tweak to minimal compile on load pass, doing node refreshing early because node refresh can trigger CDO generation (which cannot happen while reinstancing, unless the new class is ready)
Change 3263844 on 2017/01/19 by Maciej.Mroz
Error when CDO is created for an incomplete dynamic class
Change 3264647 on 2017/01/19 by Mike.Beach
PR #3146: Only ensure if ptr != nullptr (Contributed by projectgheist )
#jira UE-40846
Change 3264818 on 2017/01/19 by Dan.Oconnor
Undo overzealous use of GMinimalCompileOnLoad
Change 3265075 on 2017/01/19 by Dan.Oconnor
Make sure we use the authoritative class for the component template, fixes reinst issue in GMinimalCompileOnLoad pass
Change 3265085 on 2017/01/19 by Mike.Beach
Mirroring CL 3260397
Making it so CreateEvent nodes are searchable using the function name they are bound to (as requested by Jeff Farris). To find this data across your content library, in unopened Blueprints, you'll have to resave those Blueprints (so the new data is available in the asset registry).
Change 3272401 on 2017/01/25 by Mike.Beach
Fixed a bug where modifying certain timeline settings would not dirty the Blueprint.
PR #3137: UE-40674: Mark TimeLine BP as modified (Contributed by projectgheist)
#jira UE-40680, UE-40674
Change 3273050 on 2017/01/26 by Maciej.Mroz
#jira ODIN-4913, UE-40974
merged cl3268193 from Odin branch
Nativization:
- added ConstructTInlineValue function
- TInlineValue structures will be initialized using UScriptStruct::InitializeStruct, instead of callind default constructor ( default constructor is unrealible)
Change 3273052 on 2017/01/26 by Maciej.Mroz
#jira UE-40917
merged cl#3270456 from Odin branch
Nativization:
Actor template from ChildActorComponent is a subobject of nativized class.
Change 3275646 on 2017/01/27 by Dan.Oconnor
Fix obscure issue when reinstancing interface types
Change 3275811 on 2017/01/27 by Dan.Oconnor
ImplementsGetWorld now properly inherited for blueprint types that derive from a blueprint type that derives from a native type that "ImplementsGetWorld"
Change 3275922 on 2017/01/27 by Dan.Oconnor
Preserve trashed properties' names, don't force regen nodes when using the new compile manager (it has already regen'd nodes)
Change 3276037 on 2017/01/27 by Dan.Oconnor
Uses Authoritative class for this type check, added const version of GetAuthoritativeClass
Change 3276109 on 2017/01/27 by Phillip.Kavan
[UE-40894] Fix data loss issues with non-native Blueprint classes that override inherited component default values from a nativized parent Blueprint class hierarchy.
change summary:
- modified FBlueprintEditorUtils::BuildComponentInstancingData() to accept an additional parameter indicating whether or not to use the CDO or the template's Archetype as the basis for building the delta property list.
- revised UBlueprint::BeginCacheForCookedPlatformData() to first generate "override" data for ICH records that override SCS nodes from parent classes that are targeted for nativization. this also makes the optimized component instancing feature compatible with nativization as well (should that ever become useful).
- revised UBlueprintGeneratedClass::CheckAndApplyComponentTemplateOverrides() to utilize the additional delta property list data that's now generated at cook time along with a delta serialization pass against the ICH template that's serializes changed properties to a cached data block at load time. this cached "override" data is then applied to instanced subobjects inherited from nativized parent Blueprint classes using a minimal binary serialization pass.
#jira UE-40894
Change 3277671 on 2017/01/30 by Mike.Beach
Mirroring CL 3276602.
Refactoring FBlueprintCompilerCppBackend::SortNodesInUberGraphExecutionGroup() a bit. Catching cases that weren't acounted for - detecting cyclical logic now when we've pulled a node/statement out of order, and other nodes need to fall through to that logic (not relying on a goto).
#jira UE-41188, UE-41189, UE-41186, UE-41037
Change 3278454 on 2017/01/30 by Mike.Beach
Mirroring CL 3278054
Upgrading USimpleConstructionScript::FixupSceneNodeHierarchy() so that the SCS detects orphaned components, and adds them to the hierarchy (notifying users of the issue with a warning).
#jira UE-41247
Change 3278814 on 2017/01/31 by Maciej.Mroz
fixed CIS warning
fixed FBlueprintNativeCodeGenModule::FindReplacedNameAndOuter
Change 3279398 on 2017/01/31 by Mike.Beach
Back out changelist 3278454 - causing unforseen issues, restructuring the component hierarchy.
Change 3282200 on 2017/02/01 by Dan.Oconnor
Moved ForceLoad helpers into UBlueprint so that new compile on load path can prod the linker into loading stuff before flushing the compilation queue
Change 3282269 on 2017/02/01 by Mike.Beach
ClassGeneratedBy not dependable in cooked builds, must rely on class flags to determine if this is a Blueprint class.
Change 3284455 on 2017/02/02 by Dan.Oconnor
Reinstancer optimizations and skipping loader reset when using the new compile manager
Change 3284463 on 2017/02/02 by Dan.Oconnor
Handling missing GeneratedClass
Change 3284476 on 2017/02/02 by Dan.Oconnor
Flush compilation manager when we would normally do a bytecode pass, this guarantees clients of LoadObject that we won't reinstance a pointer on load (giving them back a stale object)
Change 3284523 on 2017/02/02 by Dan.Oconnor
Optimize FBlueprintUnloader::ReplaceStaleRefs, add option to skip reinstancing when recompiling bytecode, refactored bytecode recompilation options into a flag parameter
Change 3285731 on 2017/02/03 by Dan.Oconnor
Merging //UE4/Dev-Main to Dev-Blueprints (//UE4/Dev-Blueprints)
Auto resolved, with merging:
K2Node_CreateDelegate.h/cpp, KismetCompiler.cpp, WidgetBlueprintCompiler.cpp, Kismet2.cpp, KismetReinstanceUtilities.cpp/h, KismetEditorUtils.h, BlueprintSupport.cpp, Class.cpp, LinkerLoad.cpp, Obj.cpp, Class.h, Object.h, BlueprintGeneratedClass.cpp, DefaultEngine.ini,
Manually resolved:
BlueprintEditorUtils.cpp, TestRunner.Automation.Tests.cs, OrionAutobuyCardStatEntry.cpp/h, OrionStateWidget_DraftLobby.cpp
All else resolved safely (no merging)
Change 3286019 on 2017/02/03 by Dan.Oconnor
Add assertion that was added in main
Change 3286031 on 2017/02/03 by Dan.Oconnor
Build fix, missing include
Change 3286056 on 2017/02/03 by Mike.Beach
Corrected fix (from CL 3278454, which had to be backed out) - USimpleConstructionScript::FixupSceneNodeHierarchy() so that the SCS detects orphaned components, and adds them to the hierarchy (notifying users of the issue with a warning).
#jira UE-41247
Change 3286302 on 2017/02/03 by Dan.Oconnor
Allow reinstancing to run very early or in other situation where GEditor is not yet set up
Change 3286386 on 2017/02/03 by Dan.Oconnor
GMinimalCompileOnLoad checks no longer needed with my local changes to BlueprintCompilationManager
Change 3286391 on 2017/02/03 by Dan.Oconnor
Missed old comment
Change 3286614 on 2017/02/03 by Dan.Oconnor
GMinimalCompileOnLoad logic no longer needed
Change 3286655 on 2017/02/03 by Dan.Oconnor
Refactor FKismetEditorUtilities::CompileBlueprint flags into EBlueprintCompileOptions
Change 3286662 on 2017/02/03 by Dan.Oconnor
Build fix, missed file
Change 3288770 on 2017/02/06 by Mike.Beach
Attempt to fix up CIS warnings from CL 3286056.
Change 3289236 on 2017/02/06 by Mike.Beach
Missed fix for CIS warning.
Change 3289276 on 2017/02/06 by Dan.Oconnor
Duplication of CDO is unnecessary
#fyi Maciej.Mroz
Change 3289334 on 2017/02/06 by Dan.Oconnor
Add option to skip all reinstancing logic when running CompileBlueprint - used locally by the blueprint compilation manager. Fixed Typo.
Change 3289443 on 2017/02/06 by Dan.Oconnor
Further cleanup of GMinimalCompileOnLoad abuse. added flag to skip reinstancing and "stub on failure" compile pass
Change 3290509 on 2017/02/07 by Dan.Oconnor
Addressed this with a change to the blueprint compiler manager - no modification needed
Change 3290534 on 2017/02/07 by Dan.Oconnor
Remove old forward declare and outdated comment
Change 3291446 on 2017/02/07 by Dan.Oconnor
This CPFUO call is unused with my latest iteration on the compiler manager
Change 3291516 on 2017/02/07 by Dan.Oconnor
Running compile manager earlier means we don't need to worry about this weird (and costly) call
Change 3291534 on 2017/02/07 by Dan.Oconnor
This compile children call is no longer running with latest improvents to the compile manager
Change 3292587 on 2017/02/08 by Maciej.Mroz
#jira UE-41694
Mirroring cl#3292273 from Odin branch
Change 3293344 on 2017/02/08 by Dan.Oconnor
Iteration on blueprint compile manager - fortnite loads without issue. For now I do the three compile passes that are done by the existing load paths. Timing is actually quite reasonable. Centralizing reinstancing has sped things up.
#fyi Maciej.Mroz
Change 3293565 on 2017/02/08 by Dan.Oconnor
Back out changelist 3293344 - wrong CL
Change 3293567 on 2017/02/08 by Dan.Oconnor
Iteration on blueprint compile manager - fortnite loads without issue. For now I do the three compile passes that are done by the existing load paths. Timing is actually quite reasonable. Centralizing reinstancing has sped things up.
#fyi Maciej.Mroz
Change 3294334 on 2017/02/09 by Phillip.Kavan
[UE-41246] Fix misaligned memory access of noexport struct properties leading to incorrectly initialized values.
- Mirrored from //Odin/Main/... (CL# 3284308).
#jira UE-41246
Change 3294343 on 2017/02/09 by Phillip.Kavan
[UE-41246] Add a whitelist mechanism to handle native noexport types that can support direct field access in nativized Blueprint code.
- Mirrored from //Odin/Main/... (CL# 3285789).
#jira UE-41246
Change 3295913 on 2017/02/09 by Dan.Oconnor
Back out reinstancer optimization, failing to find a reference and it's causing a crash when a component is renamed
#jira UE-41843
Change 3297279 on 2017/02/10 by Dan.Oconnor
SA fix
Change 3297587 on 2017/02/10 by Mike.Beach
Temporarily disabling a spurious warning that gets triggered in Fortnite, when correctly excluding client-only Blueprints.
#jira UE-41880
Change 3298078 on 2017/02/10 by Dan.Oconnor
Try to suppress confused SA warning
[CL 3298251 by Mike Beach in Main branch]
2017-02-10 19:50:34 -05:00
|
|
|
UEngine::CopyPropertiesForUnrelatedObjects(OldCDO, Blueprint->GeneratedClass->ClassDefaultObject, Params);
|
|
|
|
|
}
|
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3255454)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3228496 on 2016/12/09 by Ben.Cosh
This change adds extra information to component template arrays so that the component class can be determined in builds that strip out objects of certain class types such as the editor dedicated server build.
#Jira UE-38842 - "LogBlueprint:Error: [Compiler BP_Skybox_World_RandomTrees_01] Error Can't connect pins ReturnValue and Target" after entering a lobby in a synced server
#Proj KismetCompiler, BlueprintGraph, UnrealEd, Core, Engine, Kismet, BlueprintCompilerCppBackend
Change 3232435 on 2016/12/13 by Ben.Cosh
Fix for a bug introduced in CL 3228496 that caused component templates to fail to be identified by name and resulted in blueprint compilation issues for add component nodes.
#Jira UE-39623 - Unknown template referenced by Add Component Node
#Proj BlueprintGraph, Engine
Change 3234581 on 2016/12/14 by Mike.Beach
Backing out fix for UE-38842 (CL 3228496/3232435/3232564) - mapping UBlueprintGeneratedClass's ComponentTemplates array to a new format was causing issues with deferred dependency loading during serialization (trying to extract type information from a placeholder object). We're opting for a smaller/simpler solution to UE-38842, which will be to store the component information on the node itself (not with the templates).
#jira UE-39707
Change 3236615 on 2016/12/15 by Maciej.Mroz
Nativization: Fixed getter fuctions in FUnconvertedWrapper, the returned ref won;t be const.
Change 3236967 on 2016/12/15 by Dan.Oconnor
Test data showing an error for jira issue UE-39808
Change 3237021 on 2016/12/15 by Dan.Oconnor
UE31622 test data
Change 3237046 on 2016/12/15 by Dan.Oconnor
UE-14123 test data
Change 3239289 on 2016/12/17 by Phillip.Kavan
[UE-38999] Dump component tree node hierarchy to the output log on error state during widget generation.
change summary:
- added FOnTableViewBadState delegate parameter to SSCSEditorDragDropTree
- added SSCSEditor::DumpTree() as the FOnTableViewBadState delegate implementatioon for the STableView widget (to provide us with more info on future occurrences)
#jira UE-38999
Change 3239448 on 2016/12/19 by Maciej.Mroz
#jira UE-39794
New way of collecting dependencies assets. Only directly used assets are listed. It will be used in projects with EDL enabled, once the "EDL boot time" is enabled.
Nativized projects with EDL disabled use the new mechanism as well. They use new __StaticDependenciesAssets functions generator. __StaticDependenciesAssets calls recursively __StaticDependenciesAssets of all Blueprints, that the current BP depends on. It reduces the size of __StaticDependenciesAssets.
Notice, that at the moment, this change should no affect any projects with EDL enabled (because the EDL boot time doesn't work yet).
Change 3239778 on 2016/12/19 by Phillip.Kavan
[UE-39854] Fix nativized assets build error when there are no native code dependencies.
change summary:
- modified FDependenciesGlobalMapHelper::EmitBodyCode() to emit a NULL entry when there are no other entries to emit, in order to avoid a zero-length array initialization error at compile time.
#jira UE-39854
Change 3239965 on 2016/12/19 by Phillip.Kavan
[UE-39733] Fix incorrect graph pin value display names for user-defined enum types.
change summary:
- switched UEnum::GetDisplayNameText() to be a virtual API
- added a UUserDefinedEnum::GetDisplayNameText() override to call FEnumEditorUtils::GetEnumeratorDisplayName()
#jira UE-39733
Change 3240422 on 2016/12/19 by Dan.Oconnor
Remove useless counter. ensureMsgf only fires once
Change 3242313 on 2016/12/21 by Phillip.Kavan
[UE-35418] The Actor details view will now refresh property mappings for the current Actor instance selection after a bytecode-only recompile of its Blueprint class as a dependency during reinstancing.
change summary:
- Modified FBlueprintCompileReinstancer::ReinstanceObjects() to invoke SelectActor() on the current editor selection after a bytecode-only recompile of its class as a dependent BP (i.e. when reinstancing/finalization is not actually incurred). This is meant to be consistent with how the refresh for the current Actor selection is handled by the reinstancer in the other cases.
#jira UE-35418
Change 3242409 on 2016/12/21 by Dan.Oconnor
PR #2995: Arbitrary base logarithm blueprint node (Contributed by Valkrysa)
#jira UE-39169
Change 3243207 on 2016/12/22 by Phillip.Kavan
[UE-39816] Renaming interface input/output parameters will no longer cause broken pin links at interface function call sites in Blueprints that are currently loaded.
change summary:
- modified FBasePinChangeHelper::Broadcast() to consider pin changes sourced from an interface Blueprint
- also revised non-interface function call site check code a bit to try and avoid doing some unnecessary work when possible, since this code runs through every call site node
#jira UE-39816
Change 3243210 on 2016/12/22 by Phillip.Kavan
[UE-39944] Extend the GetClassDefaults node to include output pin exceptions for TSet/TMap properties (i.e. mirror safeguards already in place for TArray).
change summary:
- deprecated 'bExcludeObjectArrays' and replaced with 'bExcludeObjectContainers' (not using a redirect because I need the old property serialized on load for backwards-compatibility)
- modified FClassDefaultsOptionalPinManager's ctor to consider both flags
- modified FClassDefaultsOptionalPinManager::CanTreatPropertyAsOptional() to also test for TSet/TMap types, and exclude them if they contain a non-class UObject property as the inner type (same as we do for TArray)
- modified UK2Node_GetClassDefaults::ValidateNodeDuringCompilation() to also test for TSet/TMap types, and emit a warning for existing pin connections that would have otherwise failed for newly-placed nodes (same as TArray)
- modified UK2Node_GetClassDefaults::ExpandNode() to generate the necessary script needed to create a copy of TSet/TMap property value outputs (same as we do for TArray types)
#jira UE-39944
Change 3243373 on 2016/12/23 by Maciej.Mroz
#jira UE-39794
-Nativized build with EDL enabled use new dependency-gathering system. It shrinks size of the .exe file. This code will change once the boot time EDL is enabled.
-In nativized code, ZCOnstructors are not called. They are replaced by ::StaticClass(). Static class doesn't call noting recursively. We still need to fix interfaces (they have no StaticClass).
- Workaround for UE-40026
- Various minior improvements.
Change 3244038 on 2016/12/28 by Phillip.Kavan
[UE-34488] Child Blueprint assets are now marked as dirty if its parent Blueprint incurs a strucutural change.
change summary:
- modified FBlueprintEditorUtils::MarkBlueprintAsStructurallyModified() to call MarkPackageDirty() after a skeleton-only compile pass on a child Blueprint.
notes:
- this only fixes the issue for child Blueprints that are loaded when the change to the parent Blueprint occurs. unloaded child Blueprints would still need a redirector to fix this up on load.
#jira UE-34488
Change 3244087 on 2016/12/28 by Phillip.Kavan
CIS warning fix (C6236).
Change 3244388 on 2016/12/30 by Phillip.Kavan
[UE-39816] Fix broken pin links caused by renaming interface function input/output parameters prior to compiling the interface, but after renaming the function itself.
change summary:
- modified FBlueprintEditorUtils::FindFunctionInImplementedInterfaces() to prefer the skeleton class when searching, as that is always up-to-date.
- modified FBlueprintEditorUtils::RenameGraph() to update *all* function call site nodes, rather than just those within the current Blueprint class scope.
#jira UE-39816
Change 3245322 on 2017/01/03 by Maciej.Mroz
#jira UE-40125
Fixed a crash when implementing a native interface in a BP
Change 3245667 on 2017/01/03 by Mike.Beach
Mirroring CL 3245664 - Making it so level script bound nodes are fixed up on load (in case the level instances were saved out without the bindings).
#jira UE-39950
Change 3247675 on 2017/01/05 by Maciej.Mroz
BP is not DataOnly, when it overrides an inherited component
related to UE-40131
Change 3247985 on 2017/01/05 by Maciej.Mroz
NativizationSummary object is always present.
#jira UE-40035
Change 3249423 on 2017/01/06 by Mike.Beach
Mirroring CL 3248792 from Orion.
Fix to keep placeholder classes from being needlessly created (when the object they represent already exists) - instead, attempt to lookup and find the existing import objects (which used to be set, but could be cleared during async loading by FLinkerManager::DissociateImportsAndForcedExports()).
#jira OR-34038
Change 3249568 on 2017/01/06 by Mike.Beach
Updating the UBlueprintThumbnailRenderer API so it can be sub-classed by plugin/projects.
PR #2899: Expose UBlueprintThumbnailRenderer in the API (Contributed by e-agaubatz)
#jira UE-38004
Change 3251903 on 2017/01/10 by Phillip.Kavan
[UE-31640] Function inputs are now exposed as variable "Get" nodes via the right-click context menu in a Blueprint function graph context.
Note: Changes are based on shelved CL# 2452724, original proof-of-concept code (credit: Michael.Noland).
#jira UE-31640
#fyi Michael.Noland
Change 3252119 on 2017/01/10 by Phillip.Kavan
CIS fix (shadowed variable).
Change 3252744 on 2017/01/10 by Dan.Oconnor
Add GMinimalCompileOnLoad path for postponing compile on load until all data has been loaded - long term this will be used to improve bp compiler infrastructure (performance, correctness, succinctness)
Change 3252968 on 2017/01/10 by Phillip.Kavan
[UE-36798] Fix for an infinite loop case in the math expression parser.
#jira UE-36798
Change 3253153 on 2017/01/10 by Dan.Oconnor
Fixed construction scripts not being loaded before instancing occurs when using new lighter compile path
Change 3253171 on 2017/01/10 by Mike.Beach
Mirrored CL 3253147.
Properly fills out FPropertyChangedEvent's MemberProperty field, for the property editor's NotifyHook. As its comment implies, "MemberProperty" is meant to represent the outermost property (in scenarios, like with nested struct properties). It was not working this way, and was instead set to the same nested property.
Change 3253220 on 2017/01/10 by Dan.Oconnor
These pins should infer together
#jira UE-40427
Change 3253223 on 2017/01/10 by Phillip.Kavan
[UE-35050] Fix a crash that occurs on an attempt to rename the category of an implemented interface function inherited from a native parent class in the My Blueprint panel.
change summary:
- modified FBlueprintEditorUtils::FindFunctionInImplementedInterfaces() to accept an additional input parameter so that callers can opt-in to searching all inherited interface classes
- modified SMyBlueprint::CanRequestRenameOnActionNode() to prevent rename on implemented interface functions inherited from a native parent class
#jira UE-35050
Change 3253259 on 2017/01/10 by Dan.Oconnor
Quick cleanup, this stuff is in progress
Change 3253983 on 2017/01/11 by Phillip.Kavan
[UE-35629] Disable external curve asset creation when editing a local variable's default value in a Blueprint graph.
change summary:
- modified FCurveStructCustomization::CustomizeChildren() to set the "create" button visibility to "collapsed" when the Owner is NULL (as the default asset path is inferred from the Owner's package).
#jira UE-35629
Change 3254024 on 2017/01/11 by Phillip.Kavan
[UE-40131] Non-native child BPs can now properly override a nativized parent BP's components in a cooked build with exclusive Blueprint class nativiation.
change summary:
- added UBlueprintGeneratedClass::CheckAndApplyComponentTemplateOverrides()
- switched FComponentKey::OwnerClass type from UBlueprintGeneratedClass to UClass to allow the reference to be loaded when it's a nativized BP class.
- modified AActor::PostLoadSubobjects() to apply ICH template overrides to inherited component subobjects on load (only in a cooked build)
- modified AActor::PostSpawnInitialize() to also apply ICH template overrides to inherited component subobjects on new Actor spawns (only in a cooked build)
- modified FBlueprintEditorUtils::IsDataOnlyBlueprint() to additionally reject BPs that have a non-empty ICH (from Maciej)
- added UBlueprint::bHasNativizedParent to cache this as an indicator for cooked builds to allow Actor instances to avoid incurring additional overhead for this at load time in the general case
#jira UE-40131
Change 3254176 on 2017/01/11 by Mike.Beach
Mirroring CL 3245838 to unblock the Odin build. Downgrading new error to warning until we can address it in content (and fully understand why it is triggering).
#jira UE-40470
Change 3254391 on 2017/01/11 by Phillip.Kavan
[UE-40131] CIS fix (non-unity).
Change 3254442 on 2017/01/11 by Mike.Beach
Mirroring CL 3245069 (from RobM), which is described as a "temp fix".
#jira UE-40399
Change 3254599 on 2017/01/11 by Mike.Beach
Updating some of our GetRedirectPinNames() functions - making local copy of an array element instead of a reference. We're adding to the array right after, and the ref can become invalid (if the array is grown and reallocated). Came to us via UDN.
Change 3254624 on 2017/01/11 by Mike.Beach
Backing out CL 3247675, as it removed the "data-only" status from certain Blueprints that, IMO, are still considered "data-only". This would have reprecussions to editor (compile-on) load times, and affect how these Blueprints are presented to the user.
#fyi Maciej.Mroz, Phillip.Kavan
Change 3254671 on 2017/01/11 by Mike.Beach
Resolving CIS warning - USE_EVENT_DRIVEN_ASYNC_LOAD was replaced with GEventDrivenLoaderEnabled.
[CL 3255791 by Mike Beach in Main branch]
2017-01-12 14:36:04 -05:00
|
|
|
}
|
|
|
|
|
|
2014-03-14 14:13:41 -04:00
|
|
|
// Recover a corrupted blueprint
|
|
|
|
|
void FKismet2CompilerModule::RecoverCorruptedBlueprint(class UBlueprint* Blueprint)
|
|
|
|
|
{
|
|
|
|
|
UPackage* Package = Blueprint->GetOutermost();
|
|
|
|
|
|
|
|
|
|
// Get rid of any stale classes
|
2021-01-21 16:22:06 -04:00
|
|
|
for (FThreadSafeObjectIterator ObjIt; ObjIt; ++ObjIt)
|
2014-03-14 14:13:41 -04:00
|
|
|
{
|
|
|
|
|
UObject* TestObject = *ObjIt;
|
|
|
|
|
if (TestObject->GetOuter() == Package)
|
|
|
|
|
{
|
|
|
|
|
// This object is in the blueprint package; is it expected?
|
|
|
|
|
if (UClass* TestClass = Cast<UClass>(TestObject))
|
|
|
|
|
{
|
|
|
|
|
if ((TestClass != Blueprint->SkeletonGeneratedClass) && (TestClass != Blueprint->GeneratedClass))
|
|
|
|
|
{
|
|
|
|
|
// Unexpected UClass
|
|
|
|
|
FKismetCompilerUtilities::ConsignToOblivion(TestClass, false);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
CollectGarbage( GARBAGE_COLLECTION_KEEPFLAGS );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void FKismet2CompilerModule::RemoveBlueprintGeneratedClasses(class UBlueprint* Blueprint)
|
|
|
|
|
{
|
|
|
|
|
if (Blueprint != NULL)
|
|
|
|
|
{
|
|
|
|
|
if (Blueprint->GeneratedClass != NULL)
|
|
|
|
|
{
|
|
|
|
|
FKismetCompilerUtilities::ConsignToOblivion(Blueprint->GeneratedClass, Blueprint->bIsRegeneratingOnLoad);
|
|
|
|
|
Blueprint->GeneratedClass = NULL;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (Blueprint->SkeletonGeneratedClass != NULL)
|
|
|
|
|
{
|
|
|
|
|
FKismetCompilerUtilities::ConsignToOblivion(Blueprint->SkeletonGeneratedClass, Blueprint->bIsRegeneratingOnLoad);
|
|
|
|
|
Blueprint->SkeletonGeneratedClass = NULL;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2015-06-01 10:06:20 -04:00
|
|
|
void FKismet2CompilerModule::GetBlueprintTypesForClass(UClass* ParentClass, UClass*& OutBlueprintClass, UClass*& OutBlueprintGeneratedClass) const
|
|
|
|
|
{
|
|
|
|
|
for ( IBlueprintCompiler* Compiler : Compilers )
|
|
|
|
|
{
|
|
|
|
|
if ( Compiler->GetBlueprintTypesForClass(ParentClass, OutBlueprintClass, OutBlueprintGeneratedClass) )
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
OutBlueprintClass = UBlueprint::StaticClass();
|
|
|
|
|
OutBlueprintGeneratedClass = UBlueprintGeneratedClass::StaticClass();
|
|
|
|
|
}
|
|
|
|
|
|
2014-03-14 14:13:41 -04:00
|
|
|
#undef LOCTEXT_NAMESPACE
|