mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
4759599dff0fb2a1a42c4a9fefa99d476fbabe86
67 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
4759599dff |
[Backout] - CL25790092
Add a small bug fix to it. When attempting to create an auto-cast node from an Interface -> Object type, the UEdGraphSchema_K2::FindSpecializedConversionNode will NewObject whatever node type is required as a template to copy. This Template node does not have a parent graph (rightfully so) which means that the call to GetSchema would return null. When this happened with a Dynamic Cast node, it was checking on the schema being available in the SetPurity function where it was not before. We don't want to set the parent graph on the template node during conversion because that isn't accurate because its a dummy template node, not something that is actually on the graph. It would also be adding references to that parent graph unnecessarily. #rb Phillip.Kavan Original CL Desc ----------------------------------------------------------------- Fix potential crash when `bFavorPureCastNodes` is enabled. `K2Node_Message` attempted to create an impure cast node when expanded, but `SetPurity(false)` had no effect in this case because inside it `IsNodePure` returned `false` even if the default cast purity was `Pure`. It resulted in the creation of a pure node, causing a crash because the Message node attempted to work with its (non-existent) exec pins. #rb Phillip.Kavan #ushell-cherrypick of 25757919 by kristof.morva1 [CL 25792482 by ben hoffman in ue5-main branch] |
||
|
|
4171fe00ac |
[Backout] - CL25758302
#fyi Phillip.Kavan Original CL Desc ----------------------------------------------------------------- Fix potential crash when `bFavorPureCastNodes` is enabled. `K2Node_Message` attempted to create an impure cast node when expanded, but `SetPurity(false)` had no effect in this case because inside it `IsNodePure` returned `false` even if the default cast purity was `Pure`. It resulted in the creation of a pure node, causing a crash because the Message node attempted to work with its (non-existent) exec pins. #rb Phillip.Kavan #preflight 6479d868e319748a83f72c54 #ushell-cherrypick of 25757919 by kristof.morva1 [CL 25790092 by ben hoffman in ue5-main branch] |
||
|
|
10c18ce23e |
Fix potential crash when bFavorPureCastNodes is enabled.
`K2Node_Message` attempted to create an impure cast node when expanded, but `SetPurity(false)` had no effect in this case because inside it `IsNodePure` returned `false` even if the default cast purity was `Pure`. It resulted in the creation of a pure node, causing a crash because the Message node attempted to work with its (non-existent) exec pins. #rb Phillip.Kavan #preflight 6479d868e319748a83f72c54 #ushell-cherrypick of 25757919 by kristof.morva1 [CL 25758302 by ben hoffman in ue5-main branch] |
||
|
|
de8db5ff76 |
Converting ARO-facing raw pointers to TObjectPtr ahead of raw pointer ARO API deprecation.
#rb zousar.shaker #rb markus.breyer #rb robert.manuszewski #preflight 646391406b1406b54ab15460 [CL 25489627 by kirill zorin in ue5-main branch] |
||
|
|
f74451e319 |
Generated Blueprint skeleton class functions will no longer parent themselves to interface class functions in the fast path, while also ensuring backwards-compatibility for existing call sites to implemented interface functions.
Notes: - See 24252017 for additional context/review notes. The original change was backed out due to not handling mismatched object->object pin contexts on existing function call nodes (rare), so this version adds that part. An A/B screenshot is attached to the latest swarm review. #rnx #jira UE-157527 #rb Dave.Jones2 #preflight 63e75b9e043416e7ad4699b3 [CL 24315905 by phillip kavan in ue5-main branch] |
||
|
|
096493d9a4 |
[Backout] - CL24063026
[FYI] Phillip.Kavan Original CL Desc ----------------------------------------------------------------- Generated Blueprint skeleton class functions will no longer parent themselves to interface class functions in the fast path, while also ensuring backwards-compatibility for existing call sites to implemented interface functions. Epidemiology: - There was a regression introduced with the change to BPCM in 4.17 which started causing all newly-placed function call nodes to use the interface class as the Target pin type, rather than the 'self' type. - However, the compiled function context was still inferred as the 'self' type, which resulted in emitting to bytecode only EX_Context w/o the required EX_InterfaceContext. - This meant at runtime the VM would read an FScriptInterface value (16 bytes) into a UObject* ptr value (8 bytes) allocated on the stack (execContext), which caused a stack overrun (recently surfaced by ASAN). - That regression is now fixed in the BPCM, however.. - Since we also allow object->interface connections to pass w/o casting when the object type implements the interface, this appeared to work the same as before the regression from a user perspective. However, it created an inconsistency for Target pin types that led to some odd UX; for example, if you choose to no longer implement the interface, now you might have a local function call site w/ an interface-typed Target pin that you can no longer connect self to/broken connection. - Fixing the BPCM issue also meant that Target pins reverted back to 'self' object type on existing nodes, which caused a backcompat issue from being linked to interface pins (as that requires an interface->object conversion and will fail validation). - Fixing that *seemed* relatively straightforward; I added a bit of code to modify the node expansion to spawn an intermediate cast node. However.. - Discovered that dynamic cast nodes had an issue where ones we dropped as an autocast via TryCreateConnection() would not be pure (i.e. no exec pins) even though it was explicitly being set in the autocast logic. - This meant that any intermediate autocast nodes for interface->self end up being dropped as impure, with no connection to the exec pins, so they would end up being pruned at compile time. (this problem was due to another regression that traced back a long long ways..it was introduced in UE 4.6). - Fixing that required a change to the way in which Dynamic Cast nodes manage the internal pure/impure state (since it can be toggled by the user, and it also has a default setting for new nodes). - After fixing that, existing connections now continue to work (including previously-connected interface array outputs), while dragging new connections from interface->self will now add an explicit autocast node. - An additional fix was made to prevent users from connecting an array of interfaces output to a function call node's Target pin for new connections (existing connections will continue to function per above). --> Since call nodes support a ForEach-style expansion, the array connection was being allowed to pass, but then it would try to add an autocast node as if it were a scalar type, which doesn't support the expansion, so it could not be connected (broken UX). #jira UE-157527 #rb Dave.Jones2, Dan.OConnor, Ben.Zeigler, Marc.Audy #preflight 63dd78f4cc75b137677aaa32 [CL 24067070 by bob tellez in ue5-main branch] |
||
|
|
3981030897 |
Generated Blueprint skeleton class functions will no longer parent themselves to interface class functions in the fast path, while also ensuring backwards-compatibility for existing call sites to implemented interface functions.
Epidemiology: - There was a regression introduced with the change to BPCM in 4.17 which started causing all newly-placed function call nodes to use the interface class as the Target pin type, rather than the 'self' type. - However, the compiled function context was still inferred as the 'self' type, which resulted in emitting to bytecode only EX_Context w/o the required EX_InterfaceContext. - This meant at runtime the VM would read an FScriptInterface value (16 bytes) into a UObject* ptr value (8 bytes) allocated on the stack (execContext), which caused a stack overrun (recently surfaced by ASAN). - That regression is now fixed in the BPCM, however.. - Since we also allow object->interface connections to pass w/o casting when the object type implements the interface, this appeared to work the same as before the regression from a user perspective. However, it created an inconsistency for Target pin types that led to some odd UX; for example, if you choose to no longer implement the interface, now you might have a local function call site w/ an interface-typed Target pin that you can no longer connect self to/broken connection. - Fixing the BPCM issue also meant that Target pins reverted back to 'self' object type on existing nodes, which caused a backcompat issue from being linked to interface pins (as that requires an interface->object conversion and will fail validation). - Fixing that *seemed* relatively straightforward; I added a bit of code to modify the node expansion to spawn an intermediate cast node. However.. - Discovered that dynamic cast nodes had an issue where ones we dropped as an autocast via TryCreateConnection() would not be pure (i.e. no exec pins) even though it was explicitly being set in the autocast logic. - This meant that any intermediate autocast nodes for interface->self end up being dropped as impure, with no connection to the exec pins, so they would end up being pruned at compile time. (this problem was due to another regression that traced back a long long ways..it was introduced in UE 4.6). - Fixing that required a change to the way in which Dynamic Cast nodes manage the internal pure/impure state (since it can be toggled by the user, and it also has a default setting for new nodes). - After fixing that, existing connections now continue to work (including previously-connected interface array outputs), while dragging new connections from interface->self will now add an explicit autocast node. - An additional fix was made to prevent users from connecting an array of interfaces output to a function call node's Target pin for new connections (existing connections will continue to function per above). --> Since call nodes support a ForEach-style expansion, the array connection was being allowed to pass, but then it would try to add an autocast node as if it were a scalar type, which doesn't support the expansion, so it could not be connected (broken UX). #jira UE-157527 #rb Dave.Jones2, Dan.OConnor, Ben.Zeigler, Marc.Audy #preflight 63dd78f4cc75b137677aaa32 [CL 24067044 by phillip kavan in ue5-main branch] |
||
|
|
925161d3e2 |
Another IWYU pass on Engine/Source/Editor/...
#jira [CL 21716486 by bryan sefcik in ue5-main branch] |
||
|
|
0837230669 |
Ran IWYU again on half of the Engine/Source/Editor/... source files.
#jira [CL 21716414 by bryan sefcik in ue5-main branch] |
||
|
|
0e53056bc6 |
Clang now optimizes away this==nullptr. Calls to IsChildOf from a null UObject pointer will cause undefined behavior. This is a retroactive attempt to pad potentially dangerous calls to IsChildOf with a null check in the following directories:
- Plugins/BlueprintContext - Editor/GlueprintGraph - Editor/GraphEditor - Editor/Kismet - Editor/KismetCompiler - Editor/UnrealEd/Private/Kismet2 note: if you're seeing this CL in the perforce history because you're trying to figure out why there's a null check that doesn't make sense, This is why. The goal of this CL is to preserve the behavior before IsChildOf changed rather than analyze whether that behavior makes sense. Use your best judgement #rb marc.audy #preflight 6299023a6438e3c731307a69 [CL 20474984 by jordan hoffmann in ue5-main branch] |
||
|
|
6248f8d412 |
Replacing legacy EditorStyle calls with AppStyle
#preflight 6272a74d2f6d177be3c6fdda #rb Matt.Kuhlenschmidt #ROBOMERGE-OWNER: Lauren.Barnes #ROBOMERGE-AUTHOR: lauren.barnes #ROBOMERGE-SOURCE: CL 20057269 via CL 20070159 via CL 20072035 via CL 20072203 #ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690) #ROBOMERGE-CONFLICT from-shelf [CL 20105363 by Lauren Barnes in ue5-main branch] |
||
|
|
8e3e596f9b |
Exclude node spawner actions for non-imported component types from the Blueprint graph context menu when Blueprint namespace editor features are enabled.
Change summary: - Extended FBlueprintActionContext to include a weak ptr to the current IBlueprintEditor context. - Added ENUM_CLASS_FLAGS() for the FBlueprintActionFilter::EFlags enumeration (for use as bitflags). - Deprecated the current FBlueprintActionFilter constructor, replaced with a more explicitly-typed EFlags param. - FBlueprintActionFilter now internally stores its filter flags. Also added FBlueprintActionFilter::HasAnyFlags/HasAllFlags(). - Minor refactor to a few action filter delegates to query the filter flags locally rather than add bool flags to delegate payloads. - The FBlueprintActionFilter constructor now unsets the non-imported filter flag if Blueprint namespace editor settings are disabled. - BlueprintActionFilterImpl::IsNonImportedObject() now utilizes the filter context rather than iterate the Blueprints array to find open asset editors. - Added an override for UBlueprintComponentNodeSpawner::IsTemplateNodeFilteredOut(). This is now used to filter out any loaded or unloaded BP component types from the context menu. - Cleaned up display inconsistencies in the menu UI spec between loaded vs. unloaded "Add Component" node spawner actions in the context menu. - Added an FSoftObjectPath variant of IBlueprintEditor::IsNonImportedObject() (to support unloaded non-native component type entries which store the class object path). Implemented as FBlueprintEditor::IsNonImportedObject(FSoftObjectPath). - Added an override for UK2Node_DynamicCast::IsActionFilteredOut() to exclude cast operator actions for non-native component types if they are not imported into the current editor context. - Modified SBlueprintActionMenu, SBlueprintFavoritesPalette and SBlueprintLibraryPalette to include the current editor context in applicable action filter context(s). #jira UE-149760 #rb Ben.Hoffman #preflight 62753dd9e31cfc52d5bd0539 [CL 20077282 by Phillip Kavan in ue5-main branch] |
||
|
|
73bb263b8b |
Improved tooltip to display the class name over the casting options in blueprint editor.
[REVIEW] ben.zeigler #reviewdoc https://docs.google.com/document/d/1NlqU50vIIPn4MBVxwLjOMfHdRB4R6GrqYEXTAq4hqGA/edit?usp=sharing #rnx #ROBOMERGE-AUTHOR: guillaume.guay #ROBOMERGE-SOURCE: CL 19150810 via CL 19150884 via CL 19150903 via CL 19150927 via CL 19160433 #ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845) [CL 19161676 by guillaume guay in ue5-main branch] |
||
|
|
a2f4448f56 |
#jira UE-110253 Add tooltips to warn users that cast nodes or soft references to BP classes can cause expensive BP references
#rb None [CL 16375524 by ben zeigler in ue5-main branch] |
||
|
|
9753392e2b |
Merge UE5/RES CL# 15462083 to UE5/Main
This represents UE4/Main @ 15414221 [CL 15463811 by Marc Audy in ue5-main branch] |
||
|
|
627baf970a |
Updating copyright for Engine Editor.
#rnx #rb none #ROBOMERGE-SOURCE: CL 10869241 via CL 10869527 via CL 10869904 #ROBOMERGE-BOT: (v613-10869866) [CL 10870586 by ryan durand in Main branch] |
||
|
|
7b6f840f7f |
Copying //UE4/Dev-Core @ 10708550 to Dev-Main (//UE4/Dev-Main)
#rb none [CL 10708666 by Robert Manuszewski in Main branch] |
||
|
|
2e87118a18 |
Copying //UE4/Dev-Editor to Dev-Main (//UE4/Dev-Main) Interim 4.24.
#rb none [CL 8614014 by Chris Gagnon in Main branch] |
||
|
|
8607ecb30d |
Copying //UE4/Dev-Core to Dev-Main (//UE4/Dev-Main)
#rb none [CL 6815521 by Stefan Boberg in Main branch] |
||
|
|
8fc25ea18e |
Merging //UE4/Dev-Main to Dev-Editor (//UE4/Dev-Editor)
#rb none [CL 4676797 by Chris Gagnon in Dev-Editor branch] |
||
|
|
2752c82adc |
Merging //UE4/Dev-Main @ 4664414 to Dev-Core (//UE4/Dev-Core)
#rb none [CL 4675693 by Robert Manuszewski in Dev-Core branch] |
||
|
|
7598af0532 |
Update copyright notices to 2019.
#rb none #lockdown Nick.Penwarden [CL 4662404 by Ben Marsh in Main branch] |
||
|
|
13d012685f |
Merging copyright update from 4.19 branch.
#rb none #rnx #jira [CL 3818977 by Ben Marsh in Staging-4.19 branch] |
||
|
|
cfc9f4775f |
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3805092)
#lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3623004 by Ben.Marsh Fix RemoteExecutor not taking the remote machine specs into account. Change 3623172 by Ben.Marsh UGS: Fix "More Info..." button not using P4 server override. Change 3628820 by Ben.Marsh PR #3979: Get working directory from task element, not tool node (Contributed by nullbus) Change 3630424 by Graeme.Thornton Make the AES key parameter const in FAES::EncryptData() Change 3632786 by Steve.Robb FString constructor fixed to not take an ignored void* parameter, which can be misleading. Change 3639534 by Ben.Marsh Remove old P4.NET library. Doesn't seem to be used by anything. Change 3640536 by Steve.Robb GitHub #4007 : Delete unnecessary specialization of MakeArrayView #jira UE-49617 Change 3641155 by Gil.Gribb UE4 - Speculative fix for problem with summary reading in FAsyncArchive2. Change 3643932 by Ben.Marsh Add an example build script for updating the version number, then compiling and staging the editor and tools to an output directory. Optionally submits at the end (requires -Submit argument). Change 3644825 by Ben.Marsh Use VSWHERE to find the location of MsBuild.exe, if available. https://github.com/EpicGames/UnrealEngine/pull/3879#issuecomment-329688645 Change 3647395 by Ben.Marsh Allow compiling of monolithic binaries from BuildEditorAndTools.xml, using the -set:GameTarget=FooGame -set:TargetPlatforms=Win32;Win64 options. Change 3650300 by Ben.Marsh UAT: Remove code that deletes cooked data on a failed cook. The engine should write packages out transactionally now (by writing to a temporary file and moving into place), and deleting the cooked data just prevents post-mortem analysis. Change 3650856 by Robert.Manuszewski Adding checks to prevent FlushAsyncLoading and LoadObject/LoadPackage from being called from any threads other than the game thread Change 3651022 by Gil.Gribb UE4 - Possible fix for mysterious ensure indicating problematic recursion in the pak precacher. Change 3658331 by Steve.Robb Fix for the parsing of large integer values. Change 3661958 by Gil.Gribb UE4 - Fixed rare hang in task graph. Change 3664021 by Robert.Manuszewski Fix for a potential GC crash caused by stale pointer in AnimInstanceProxy See https://udn.unrealengine.com/questions/392432/gc-issue-uaniminstancemontageinstances-empty-but-u.html Change 3664254 by Steve.Robb Use ANSI allocator when thread sanitizer is enabled. This allows the generation of more accurate and meaningful reports. Change 3664436 by Steve.Robb Use TUniquePtr instead of a thread-unsafe TSharedPtr to move data between threads. Change 3666461 by Graeme.Thornton Improvements to signing/encryption key embedding and runtime access - Changed method of embedding key into the executable to make it more secure - Added FAESKey class to wrap a 32 byte key Change 3666462 by Graeme.Thornton Cut ShooterGame AES key down to 32 characters Change 3677560 by Ben.Marsh PR #4074: UBT: Add include and library-related fields to module JSON output (Contributed by adamrehn) Change 3683534 by Steve.Robb Refactoring of enum/struct lookup during hot reload. Change 3683754 by Steve.Robb Alignment fixes to allow int64 on 32-bit platforms Support for integral types in IsAligned. Static asserts so that alignment functions will no longer be called with non-intergal, non-pointer types. Some fixes to existing code. Change 3686670 by Steve.Robb Fix for thread-unsafe modification of static array in FString::ParseIntoArrayWS. Change 3687540 by Ben.Marsh Fix all UBT/UAT output going to stderr rather than stdout. Change 3688931 by Gil.Gribb UE4 - Critical fix for a rare race condition in the pak file async IO layer. Change 3690000 by Graeme.Thornton Manual copy of 4.18 CL 3687869 Make UBT include the destination INI file for a given hierarchy if it exists Renamed VSCode enum value to VisualStudioCode, so it matches the source accessor plugin name Change 3690030 by Graeme.Thornton VSCode fixes - Source Code Accessor plugin changes. Add new interface method to open a solution at a given path - GameProjectUtils now uses the source navigation API to open solutions rather than hardcoding which solution file types to look for - Various fixes for vscode project file generation #jira UE-50554 Change 3690885 by Steve.Robb Atomic reads in FReferenceControllerOps<ESPMode::ThreadSafe>. Change 3691052 by Steve.Robb Free stats thread on shutdown. Change 3695138 by Steve.Robb AsConst helper function added. Change 3696627 by James.Hopkin Changed player controller iterator typedefs to use TWeakObjectPtr rather than the deprecated TAutoWeakObjectPtr (review-3606695) Change 3697099 by Steve.Robb GitHub #4105 : Removed redundant class access modifier Change 3697154 by Steve.Robb Removal of deprecated functions in delegates. Mutable lambdas to can now be bound to delegates. Change 3697180 by Steve.Robb GitHub #4115 : Incorrect CPPMacroType used for USoftClassProperty Change 3697239 by Steve.Robb Allow TArray::Insert to take an array with any allocator type. Change 3697269 by Steve.Robb RelocateConstructItems instead of MoveConstructItems. Change 3697558 by Steve.Robb New _GetRef functions for TArray, which return a reference to the newly-added element. Unit tests for these functions. Change |
||
|
|
78ce1089a6 |
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
|