#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]
#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]
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3050029 on 2016/07/14 by Ben.Cosh
This modifies the blueprint instrumented compilation chain so only the the blueprint you compile and all dependencies are instrumented and the profiler is notified rather than waiting for event data.
#Jira UE-32063 - The blueprint profiler doesn't display any stats in the execution graph if no instance is placed in the current level.
#Proj BlueprintProfiler, Kismet, UnrelEd
- This also improves the execution graph UI, notifying the user that no instances are available to display data from.
Change 3101549 on 2016/08/25 by Maciej.Mroz
BP nativization: fixed FEmitDefaultValueHelper::HandleInstancedSubobject
https://udn.unrealengine.com/questions/308800/nativized-blueprints-newobject-call-uses-incorrect.html
Change 3101811 on 2016/08/25 by Ryan.Rauschkolb
BP Profiler: Fixed stack overflow crash when compiling blueprints with nested macros
#jira UE-34503
Change 3102478 on 2016/08/26 by Maciej.Mroz
#jira UE-35135 - Odin compiles with errors when using Blueprint nativization
BP Nativization:
- improved native cast
- improved bool handling
Change 3102944 on 2016/08/26 by Phillip.Kavan
[UE-33017] Don't include transient properties when generating property lists at cook time for optimized runtime Blueprint component instancing. Also ensure that deprecated properties are serialized during load/instancing at runtime.
change summary:
- modified FBlueprintComponentInstanceDataLoader to append 'PPF_UseDeprecatedProperties' to the FArchive port flags.
- modified FBlueprintComponentInstanceDataWriter to append both 'PPF_Duplicate' and 'PPF_UseDeprecatedProperties" to the FArchive port flags (to ensure consistency w/ the instancing side).
- switched the RecursivePropertyGatherLambda helper to a static class method instead
- modified the RecursivePropertyGather utility method to exclude transient properties.
notes:
- the primary cause of UE-33017 was that UBodySetup can "share" the ShapeBodySetup object across all instances, but the shared object is not owned by the CDO, it's owned by the archetype. this caused the archetype to differ from the CDO, which caused us to emit the transient property at cook time. thsi threw off the serialization offset between read/write FArchive passes at runtime. since transient properties are not serialized as part of the template, there's no need to include them in the generated delta property list, so as a fix, i'm just excluding them altogether.
#jira UE-33017
Change 3103692 on 2016/08/27 by Mike.Beach
Merging //UE4/Dev-Main to Dev-Blueprints (//UE4/Dev-Blueprints)
Change 3104266 on 2016/08/29 by Ben.Marsh
Add test script to native assets for QAGame.
Change 3104399 on 2016/08/29 by Ben.Marsh
Fix missing property warning in build script.
Change 3104419 on 2016/08/29 by Maciej.Mroz
#jira UE-35135 Odin compiles with errors when using Blueprint nativization
- Reduced number of DynamicCLass instance dependencies
- Fixed UDS default values dependencies
- Improved WeakObjPtr handling
- Improved const parameters handling
Change 3104474 on 2016/08/29 by Ryan.Rauschkolb
BP Profiler: Fixed issue where collapsed nodes that share a name with a parent class collapsed node can cause a stack overflow
#jira UE-35245
Change 3105605 on 2016/08/30 by Maciej.Mroz
Temp change: CIS Test
Change 3105738 on 2016/08/30 by Maciej.Mroz
UAT, CIS: testing NoRecompileUAT switch.
Change 3105800 on 2016/08/30 by Maciej.Mroz
UAT, CIS, Nativization:
- reverted NoRecompileUAT switch.
- testing nativization with -nocompileeditor flag and without -compile flag
Change 3106162 on 2016/08/30 by Maciej.Mroz
UAT, CIS, Nativization:
-NoSubmit flag added. Otherwise UAT files are singed (when they are used by other process). It causes an error.
- Ugly hack removed.
Change 3106261 on 2016/08/30 by Phillip.Kavan
[UE-34705] Gracefully handle tunnel node entry exec pins that aren't internally linked during BP profiler tunnel boundary mapping.
change summary:
- added FBlueprintFunctionContext::GetTunnelBoundaryNode() (uncheckedl variant).
- moved FBlueprintFunctionContext::GetTunnelBoundaryNodeChecked() impl into GetTunnelBoundaryNode().
- re-implemented FBlueprintFunctionContext::GetTunnelBoundaryNodeChecked() to call GetTunnelBoundaryNode() and then assert on the result.
- changed the FBlueprintTunnelInstanceContext::GetTunnelBoundaryNodeChecked() impl to override GetTunnelBoundaryNode() instead.
- modified FBlueprintFunctionContext::MapTunnelBoundary() to only process the entry case if the TunnelBoundaryNode result is valid. this way we simply skip tunnel boundary mapping if an entry path was not previously mapped (rather than assert).
#jira UE-34705
Change 3106478 on 2016/08/30 by Ben.Marsh
Include *.uasset files on builders running the NativizeAssets job.
Change 3107514 on 2016/08/31 by Ben.Cosh
This set of changes is the result of a full pass on the blueprint profiler heat interface to try and bring them into a usable state.
#Jira UE-33465 - Stat heat colors and heat wire traces need a quick pass to ensure they are working as expected.
#Jira UE-33309 - FlipFlop node breaks hottest path wire heatmap
#Jira UE-33650 - Blueprint heatwire effects do not work when touching user macros
#Jira UE-33706 - BP Profiler - Macro instances not colored or reporting time
#Jira UE-33701 - BP Profiler: Hottest path wire heatmap doesn't appear to be working
#Jira UE-33083 - BP Profiler - (Exclusive) pure node heatmap missing from some nodes
#Jira UE-34855 - BP Profiler - Update heatmap coloration when switching between Default/Custom thresholds
#Jira UE-32218 - BP Profiler: Clear "inclusive" time entries from "avg. time" row.
#Proj GraphEditor, Kismet, BlueprintProfiler,
Change 3108268 on 2016/08/31 by Ben.Cosh
Minor change from profiler review sessions to move macro timing to average stats.
#Jira UE-33706 - BP Profiler - Macro instances not colored or reporting time
#Proj Kismet
Change 3108991 on 2016/08/31 by Maciej.Mroz
UAT, CIS, Nativization: Test separate cooking and compiling
Change 3110097 on 2016/09/01 by Ben.Cosh
Minor update to the blueprint profiler mapping functionality to ignore disabled nodes and a fix for the max timing white glow bug.
#Jira UE-35377 - Blueprint macros highlighting white in profiler
#Jira UE-34973 - Remove Ghost Nodes
#Proj Kismet, BlueprintProfiler
Change 3114553 on 2016/09/06 by Dan.Oconnor
Support for TMap/TSet in blueprint variable editor panel
#jira UE-2114
Change 3116367 on 2016/09/07 by Dan.Oconnor
Fixed Function/Macro inputs/outputs list (had become cramped with my last change) + misc. fixes for new container types, fixes uninitialized members in FTerminalType
#jira UE-2114, UE-35676
Change 3116663 on 2016/09/07 by Dan.Oconnor
Fix for array functions showing up with TSet and TMap pins
#jira UE-2114
Change 3118259 on 2016/09/08 by Ryan.Rauschkolb
BP Profiler: Fixed Assert when profiling parent/child Blueprint
#jira UE-35487
Change 3119023 on 2016/09/09 by Maciej.Mroz
Manually integrated (from Odin branch) recent changes related to BP and nativization:
3115713 UE-35448
3117590 UE-35697
3117742 ODIN-577
Change 3119058 on 2016/09/09 by Maciej.Mroz
#jira UE-32841 GitHub 2574 : fix typos
#2574https://github.com/EpicGames/UnrealEngine/pull/2574
Renamed function CustomNativeInitilize to InitializeNativeClassData and made it private.
Change 3119302 on 2016/09/09 by Maciej.Mroz
#jira UE-35584 Orion - nativized server crashes
Global variable for WITH_PERFCOUNTERS definition in UEBuildConfiguration.
Previously the same header could be compiled with the WITH_PERFCOUNTERS flag enadles and disabled (during a single compilation) .
Change 3119502 on 2016/09/09 by Mike.Beach
When building a deterministic UUID for latent nodes, we now use expanded nodes' origin (node) to avoid collisions (latent node in macros, etc.)
#jira UE-35609
Change 3119517 on 2016/09/09 by Ryan.Rauschkolb
Added blueprint editor settings option to display unique names for blueprint nodes
Change 3119602 on 2016/09/09 by Maciej.Mroz
#jira UEBP-214 Implement Solution for Nativized AnimBlueprints Size Reduction
Added stats about nativized AnimBP
Mechanism to exlcude reducible AnimBP
Editor config option:[BlueprintNativizationSettings] bNativizeAnimBPOnlyWhenNonReducibleFuncitons=false
Change 3119615 on 2016/09/09 by Maciej.Mroz
Missing change (should be part of cl#3119602)
Change 3119619 on 2016/09/09 by Maciej.Mroz
#jira UEBP-214 Implement Solution for Nativized AnimBlueprints Size Reduction
Excluding all AnimBP from Orion nativization.
Change 3120752 on 2016/09/12 by Maciej.Mroz
#jira UE-35051 [CrashReport] UE4Editor_BlueprintNativeCodeGen!FBlueprintNativeCodeGenModule::GenerateSingleAsset()
Removed unnecessary ensure
Change 3121354 on 2016/09/12 by Dan.Oconnor
Fixed variable type width, required for TMap's extra combobox.
Change 3121626 on 2016/09/12 by Phillip.Kavan
[UE-35456] Fix crash on right-click in components tree view after copying one or more BSP actors to clipboard.
Note: This applies to the components tree view in both the Blueprint editor and the Level editor's Actor details panel.
change summary:
- modified FComponentObjectTextFactory::CanCreateClass() to exclude Actor/Component subtypes that are not Blueprint-compatible (e.g. ABrush).
#jira UE-35456
Change 3122712 on 2016/09/13 by Maciej.Mroz
#jira UE-35714 [CrashReport] UE4Editor_BlueprintGraph!UK2Node_CallArrayFunction::GetArrayPins() [k2node_callarrayfunction.cpp:141]
Replaced "check" with "ensure".
Change 3124398 on 2016/09/14 by Maciej.Mroz
More strict BP validation in UBlueprintThumbnailRenderer::Draw
#jira UE-35705
Change 3124405 on 2016/09/14 by Maciej.Mroz
#jira UE-35110 Packaged project crashes when playing sound from blueprint library with enum input after nativizing blueprints
Function Libraries are properly added to dependencies list while nativization.
Change 3124667 on 2016/09/14 by Maciej.Mroz
#jira UE-35262 Incompatible pins give generate warning, when error is necessary.
Fixed incompatible pins validation.
Change 3125245 on 2016/09/14 by Phillip.Kavan
[UE-33674] Fix missing stats for the ForEachElementInEnum node type in the Blueprint profiler tree view.
change summary:
- modified FScriptEventPlayback::Process() to not allow intermediate node exit pins to pollute the current trace path
- modified FBlueprintFunctionContext::DetermineGraphNodeCharacteristics() to handle the UK2Node_ForEachElementInEnum type as a special case and account for extra loop iterations in the sample frequency computed at mapping time
- exported UK2Node_ForEachElementInEnum::InsideLoopPinName and EnumOutputPinName string constants
#jira UE-33674
Change 3126211 on 2016/09/15 by Maciej.Mroz
#jira UE-36016 Struct pin can be connected to Object pin without error
Change 3126393 on 2016/09/15 by Maciej.Mroz
#jira UE-35936
Replace "check" by "ensure".
Change 3126623 on 2016/09/15 by Maciej.Mroz
#jira UE-35816 User defined struct array resets to defaults in blueprint after updating the struct
STRUCT_SerializeFromMismatchedTag is not necessary to serialize structure when guids match. Anyway STRUCT_SerializeFromMismatchedTag sholud precede SerializeFromMismatchedTag().
Change 3127288 on 2016/09/15 by Mike.Beach
Making the script VM overhead and native time stats threadsafe (to account for threaded anim Blueprints in Orion).
Change 3127375 on 2016/09/15 by Mike.Beach
Making sure Blueprint classes inherit the super's ClassConfigName properly (inherit the ID instead of the filename).
Change 3127381 on 2016/09/15 by Mike.Beach
Removing an overzealous ensure that certain users were hitting when a loading array property wasn't fully filled out yet (confirmed that it was populated with the proper objects by the end of the load).
Change 3127476 on 2016/09/15 by Dan.Oconnor
Build fix
#jira UE-36073
Change 3128335 on 2016/09/16 by Maciej.Mroz
#jira UE-36075 Odin: BP_DefaultHand and BigBotCharacter blueprints fail to compile
Fixed broken BP assets.
Change 3128589 on 2016/09/16 by Mike.Beach
Fixing a static analysis CIS warning (duplicated condition).
Change 3128630 on 2016/09/16 by Dan.Oconnor
Re-fix with engine version set
Change 3129338 on 2016/09/16 by Dan.Oconnor
=FScriptSet/FScriptSetHelper fleshed out (Add, Remove, and Find implemented)
+SetParam implemented for marking up sets for primitive Set functions (to be checked in once completed as BlueprintSetLibrary)
#jira UE-2114
[CL 3131171 by Mike Beach in Main branch]
change summary:
- deprecated the 'UEdGraphNode::bIsNodeEnabled' flag & added fixup code for serialization (load)
- added support for pruning "disabled" nodes at compile time w/o breaking existing flow in the source graph.
- modified function call nodes to look for new "DevelopmentOnly" UFUNCTION metadata and disable when found.
- added UEdGraphNode::IsNodeEnabled(), Enable() and Disable() APIs. also added a new 'bUserSetEnabledState' flag.
- added the UEdGraphNode::IsDevelopmentMode() API; subclasses can override to provide additional functionality if necessary.
- added a new 'UCookerSettings::bCompileBlueprintsInDevelopmentMode' flag to control whether or not Blueprints are compiled in development mode at cook time (accessible in Project Settings->Cooker); defaults to OFF.
- (experimental) added a "Compile Options" section to the Blueprint graph node context menu to allow users to explicitly enable or disable nodes.
- (experimental) added a BPGC setting to allow users to optionally override the cooker default setting for the development/release compile switch (UE-12270, WiP).
- the experimental features above are gated by a new 'UBlueprintEditorSettings::bAllowExplicitImpureNodeDisabling flag' (accessible in Editor Settings->Blueprint Editor); defaults to OFF for now.
[CL 2661302 by Phillip Kavan in Main branch]
Newly installed versions of the engine will now attempt to copy the project-agnostic config settings from a previous engine installation. This happens by way of a versioned manifest that copies old versions when the manifest does not exist, or is a different version. This code path is benign for non-installed versions of the engine (or FPaths::ShouldSaveToUserDir() is false).
EditorGameAgnosticSettings and EditorUserSettings ini paths have been renamed to EditorSettings and EditorPerProjectUserSettings respectively to better convey their purpose. In general, most settings should be saved in EditorSettings (project-agnostic) so that they apply regardless of which project is open. We have some way to go migrating existing settings for this to be the case, however.
Some previously per-project configuration files are now project-agnostic (such as Editor.ini, EditorKeyBindings.ini, and EditorLayout.ini)
GEditor->Access...Settings and GEditor->Get...Settings have been removed in favor of direct access of the CDO through GetMutableDefault<> and GetDefault<> respectively. Global config ini filenames that are not set up are now neither loaded nor saved on build machines, to handle the problem of indeterminate state more generically.
This addresses UETOOL-270 (Most editor preferences should be project-agnostic)
[CL 2517558 by Andrew Rodham in Main branch]
Renamed bUseLegacyMenuSystem to bForceLegacyMenuSystem, we think some users may be 'stuck' with the old menuing system and if not we need to know why they're sticking with the old code path.
[CL 2448576 by Matthew Griffin in Main branch]
UE-7951 - BP - Fixing variables becoming deselected after compile.
UE-7966 - BP - Fixing variables becoming deselected after changing a property.
UE-8059 - BP - Level Blueprint Default layout now matches the new unified layout.
UE-8056 - BP - Close Other Tabs, now effects the Viewport Tab.
[CL 2419554 by Ben Marsh in Main branch]
Editor - Adding the unified blueprint editor view. Combines all the modes into a single blueprint editor. Still requires being enabled through the experimental option in the editor.
[CL 2419336 by Ben Marsh in Main branch]