Commit Graph

16 Commits

Author SHA1 Message Date
dave jones2
939f991649 UE-146987 - Cleaned up the original fix for erroneous implicit casts in python script nodes.
Since UK2Node_ExecutePythonScript uses wildcards for its pins, it's dependent on its linked inputs. During node reconstruction, we were updating the python node's pins based on incorrect data. For example, one of the input nodes needed to change its pin type from real/double to real/float during reconstruction. However, this reconstruction occurred after the linked python node was reconstructed. As a result, the python node assumed that its linked input node was using a real/double type.

We can fix this by simply changing the priority of UK2Node_ExecutePythonScript to Low_UsesDependentWildcard. Additionally, this change reverts 19482561.

#rb jamie.dale
#preflight 625882d8010ebc5d4e8a5cc7
#jira UE-146987

[CL 19810564 by dave jones2 in ue5-main branch]
2022-04-19 12:18:56 -04:00
dave jones2
135eb09732 UE-146778 - CIS Content Error: Unhandled implicit casts found during compilation of function
The BP compiler erroneously reports that python nodes might be missing implicit casts. However, UK2Node_ExecutePythonScript nodes handle argument slightly differently than conventional function nodes. The pins don't actually correspond to actual arguments on ExecutePythonScript. Instead, they more or less serve as references to their linked inputs, which ExecutePythonScript will pop from the stack and perform a direct conversion to a Python type. As a result, there's nothing to cast, and we can safely remove the entries from the ImplicitCastMap on the current content.

#rb jamie.dale
#jira UE-146778
#preflight 623b4fbeca34ffd7bf7db3e8

[CL 19482561 by dave jones2 in ue5-main branch]
2022-03-23 14:24:22 -04:00
dave jones2
c8574d3b74 Merging //UE5/Dev-LargeWorldCoordinates [at] 18802167 to //UE5/Release-5.0
Blueprint real number support.

This change deprecates the use the of "float" and "double" types in Blueprints in favor of a new "real". By default, "real" is back by a double precision floating point number. However, it can be single precision if the number is a native float property or function parameter. This distinction won't be visible to the Blueprint user: in both instances, they'll be represented by "real" pin types. During deserialization, we'll automatically convert Blueprint pin types to use real/doubles, unless they're used to represent native code (including delegate signatures).

One consequence of this change is that we need to perform implicit casts between single and double precision real numbers. During Blueprint compilation, the compiler will detect points in the graph for when either a widening or narrowing conversion needs to occur. Subsequently, the script bytecode will contain a new cast instruction that performs the conversion. This also works on container types, but each entry in the container will have to be converted. This can introduce unwanted overhead for large containers that are frequently passed between Blueprint and native code.

The scope of this change affects Blueprints used by Gameplay, Animation, Control Rig, and UMG.

#rb marc.audy (serialization changes)
#jira UE-116484
#preflight 61f8bdd5a2514ba12ff7bdfc

#ROBOMERGE-AUTHOR: dave.jones2
#ROBOMERGE-SOURCE: CL 18809077 in //UE5/Release-5.0/... via CL 18809455 via CL 18822548
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v908-18788545)

[CL 18823569 by dave jones2 in ue5-main branch]
2022-02-02 05:50:50 -05:00
ryan durand
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]
2019-12-26 15:33:43 -05:00
Marc Audy
608734e30d Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 4664414
#rb
#rnx

[CL 4666113 by Marc Audy in Dev-Framework branch]
2018-12-17 12:24:20 -05:00
Marc Audy
53f5197df4 Make FKCHandler_CallFunction::GetFunctionNameFromNode return FName instead of FString
#rb
#rnx

[CL 4507428 by Marc Audy in Dev-Framework branch]
2018-10-25 11:25:14 -04:00
Ben Marsh
13d012685f Merging copyright update from 4.19 branch.
#rb none
#rnx
#jira

[CL 3818977 by Ben Marsh in Staging-4.19 branch]
2018-01-02 15:30:26 -05:00
Ben Marsh
20bf0eb6a1 Updating copyright notices to 2017 (copying from //Tasks/UE4/Dev-Copyright-2017).
#rb none
#lockdown Nick.Penwarden

[CL 3226823 by Ben Marsh in Main branch]
2016-12-08 08:52:44 -05:00
Ben Marsh
4ba423868f 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
Mike Beach
5f72049a23 Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3080732)
#lockdown Nick.Penwarden
#rb none

==========================
MAJOR FEATURES + CHANGES
==========================

Change 3058607 on 2016/07/20 by Mike.Beach

	Preventing a uneeded FStructOnScope allocation from happening - was causing issues with the memstomp allocator (internally, FStructOnScope was allocating mem of zero size and then asserting on the returned pointer).

Change 3059586 on 2016/07/21 by Maciej.Mroz

	Added comments

Change 3061614 on 2016/07/22 by Ben.Cosh

	Fix for a bug in the blueprint profiler tunnel mapping code that caused asserts when internal pure tunnel pins were linked to each other as pass thru.
	#Jira UE-33654 - Editor crash on compilation when feeding impure data to macros implemented via blueprint while profiling is enabled
	#Jira UE-33138 - BP Profiler: crash when trying to set child actor in profiler
	#Proj BlueprintProfiler

Change 3061686 on 2016/07/22 by Mike.Beach

	Keeping cyclically dependent Blueprints from infinitely trying to recompile each other, when both have an unrelated error that will not be resolved by compiling the other.

Change 3061760 on 2016/07/22 by Ben.Cosh

	Minor refactor of the delegate event code in the profiler to fix some stubborn issues.
	#Jira UE-33466 - Key events still have problems with recording event stats correctly
	#Proj BlueprintProfiler, Kismet

Change 3061819 on 2016/07/22 by Maciej.Mroz

	#jira UE-26676 Blueprint native events give error when output ref params aren't in a specific order

	Force a overriden function to have the same parameter's order as the original one.

Change 3061854 on 2016/07/22 by Bob.Tellez

	Duplicate CL#3058653 //Fortnite/Main

	#UE4 Now actually removing deprecated pins from non-blueprint graphs. Also MarkPendingKill now happens in UEdGraphNode's BeginDestroy instead of its destructor to ensure supporting code can safely access references to other UObjects.

Change 3062634 on 2016/07/23 by Mike.Beach

	Accounting for EditablePinBase nodes whose UserDefinedPins have the wrong direction assigned to them (we now validate the direction, and expect it to reflect the EdGraphPin's). We already had made this fixup in CustomEvent nodes, but others (like collapsed tunnels, and math expression nodes) needed the fixup as well.

Change 3062926 on 2016/07/25 by Ben.Cosh

	Added functionality to the blueprint compiler to detect local event function calls and handle them better in profiling conditions.
	#Jira UE-32869 - Nodes called after a custom event call do not record stats in the profiler
	#Proj CoreUObject, BlueprintProfiler, UnrealEd, KismetCompiler, BlueprintGraph

	- Added script emitted inline event start/stop calls for inline events so we can pull out and process these events discretely
	- Looked into adding something similar for all events but couldn't find a good place to put it/get it operational so it caught more standard events.

Change 3063406 on 2016/07/25 by Ben.Cosh

	Modifying the execution graph selection highlight coloring.
	#Jira none
	#Proj EditorStyle

Change 3063505 on 2016/07/25 by Ben.Cosh

	The blueprint profiler tunnel mapping was missing a call seek past reroute nodes
	#Jira UE-33670 - Reroute nodes used in 'for' loops break profiler communication
	#Proj BlueprintProfiler

Change 3063508 on 2016/07/25 by Ben.Cosh

	Fixed a minor bug in the stat creation code that reported tunnel pure timings twice.
	#Jira UE-33707 - BP Profiler - Pure nodes internal to macro reported twice in tree view
	#Proj Kismet

Change 3063511 on 2016/07/25 by Ben.Cosh

	Fix for a bug introduced that caused pie instances to mapped twice in the blueprint profiler.
	#Jira UE-33697 - BP Profiler: Extra instance showing up in the tree view
	#Proj BlueprintProfiler

Change 3063627 on 2016/07/25 by Maciej.Mroz

	#jira UE-33027 Crash when implementing interface to child blueprint and then implementing it with parent blueprint

	Removed premature validation.

Change 3064349 on 2016/07/26 by Maciej.Mroz

	#jira UE-32942 BP Nativization: Reduce the size of executable files

	Enabled and fixed local variables on event graph. Local variable can be only created as return value (so we're sure it doesn't require any resistency between calls.)
	It reduces size of executable file (2MB in Orion.exe dev config).
	It reduces number of member variables in nativized class (local varaibles in functions are not uproperties, so the number of generated of objects decreases).

Change 3064788 on 2016/07/26 by Ryan.Rauschkolb

	Fixed Splitting a Rotation input struct pin results in any previously entered values shifting to a different axis
	#UE-31931

Change 3064828 on 2016/07/26 by Ryan.Rauschkolb

	Removed flag to disable Single Layout Blueprint Editor (no longer experimental feature)
	#jira UE-32038

Change 3064966 on 2016/07/26 by Ryan.Rauschkolb

	Fixed Comment bubbles don't handle widget visibility correctly
	#UE-21278

Change 3068095 on 2016/07/28 by Maciej.Mroz

	#jira UE-32942 BP Nativization: Reduce the size of executable files

	Private and protected properties have PrivatePropertyOffset (PPO) function in .generated.h. This function allows the nativized code to access the property without using UProperty.
	-It reduces the size of executable file (added by nativized plugin) about 10%. The OrionGame.exe (development config) is 6MB smaller.
	-It reduces the number of FindField function calls and stativ variables in the nativized code.

	List of inaccessible properties (that cannot be accessed using PPO) is logged while cooking (with nativization enabled).

Change 3068122 on 2016/07/28 by Maciej.Mroz

	#jira UE-32942 BP Nativization: Reduce the size of executable files

	Hardcoded asset paths are split, so string literals can be better reused.
	Added UDynamicClass::FindStructPropertyChecked. It replaces FindFieldChecked<UStructProperty>, without inlining, and implicit FName constructor.

	It reduced the size of OrionGame.exe 1MB.

Change 3068159 on 2016/07/28 by Maciej.Mroz

	#jira UE-32806 GitHub 2569 : Exposed GetComponentByClass to blueprint
	#2569: Exposed GetComponentByClass to blueprint (Contributed by Koderz)

Change 3069715 on 2016/07/29 by Maciej.Mroz

	#jira UE-33460 [CrashReport] UE4Editor_CoreUObject!UObjectPropertyBase::ParseObjectPropertyValue() [propertybaseobject.cpp:237]

	UObjectPropertyBase::ParseObjectPropertyValue won;t crash when property is invalid.
	Property validation in UserDefinedStruct. THe struct is not recompiled on load, so it must be validated after serialization.

Change 3070569 on 2016/07/29 by Bob.Tellez

	Duplicating CL#3070518 from //Fortnite/Main

	#UE4 Deprecated pin removal logic is now exclusively in UEdGraphNode::PostLoad. DeprecatedPinWatches fixup is now done in K2Node::PostLoad.

Change 3071292 on 2016/07/30 by Mike.Beach

	Preventing the Blueprint reinstancer's Function/PropertyMap from being GC'd during compile. This was causing issues where new functions/properties were being allocated in the same pointer location, and UpdateBytecodeReferences() was replacing those references as well (specifically in unrelated class's Children->Next chain, linking in functions/properties that did not belong to that class). This was causing a multitude of problems (mainly bad property offset read/writes and endless field iterator loops).

	#jira UE-29631

Change 3072078 on 2016/08/01 by Maciej.Mroz

	#jira UE-33423, UE-33860

	Removed too strint ensures.
	Fixed FGraphObjectTextFactory - After Custom Event nodes are pased, Skel Class is recompiled, because other pasted nodes may require its signature.

Change 3072166 on 2016/08/01 by Dan.Oconnor

	PR #2589: fix EaseIn / EaseOut descriptions (Contributed by dsine-de)

	#jira UE-32997

Change 3072614 on 2016/08/01 by Mike.Beach

	Fixing an issue where hot-reloading a Blueprint parent class was not reinstancing skeleton CDOs. This caused problems later where the skel class layout didn't reflect the CDO object.

	#jira UE-29613
	#codreview Maciej.Mroz, Phillip.Kavan

Change 3073939 on 2016/08/02 by Dan.Oconnor

	Final fix for function graphs that cannot be deleted (bAllowDeletion erroneously set to false). Issue only manifests with assets created before 4.11, as the original bug was fixed in 2842578
	#jira UE-19062

Change 3075793 on 2016/08/03 by Maciej.Mroz

	#jira UE-30473 Moving child component in child blueprint forces parent to become dirty

	Don't make parent BP package dirty, when a component in child BP was modified.

Change 3076990 on 2016/08/04 by Ben.Cosh

	This fixes issues with mapping tunnel boundary pure nodes and addresses some asserts recently introduced.
	#Jira UE-33691 - Assert when compiling Blueprint with profiler instrumentation
	#Jira UE-33138 - BP Profiler: crash when trying to set child actor in profiler
	#Jira UE-33654 - Editor crash on compilation when feeding impure data to macros implemented via blueprint while profiling is enabled
	#Proj Kismet, BlueprintProfiler, BlueprintGraph

	- Fixed inline event detection ( it was causing function stats to fail, happened across it )
	- Updated pure node lookup to use the entry pin, this was required because pure nodes span function contexts and lookup is a problem in nested tunnels.
	- Updated tunnel pure node code, added a stubbed pure chain early on external pure links add this and it maps at an appropriate time.
	- Changed the way nested tunnels are mapped, now only top level tunnels are gathered mapping the blueprint and these map nested tunnels and register them.
	- Updated pure node stat refreshes and heat level updates ( this was causing a bunch of extra cost with my changes )
	- Fixed an issue with script perf data that caused nan's with no samples.
	- Updated pure node playback to cache pure nodes and avoid a second involved lookup when applying timings.
	- Renamed FScriptExecutionPureNode to FScriptExecutionPureChainNode to better reflect it's updated role.
	- Added extra editor stat collection for checking the cost breakdown of the profiler ( hottest path and heat level calcs now have discreet timings )

Change 3079235 on 2016/08/05 by Phillip.Kavan

	Fix for a bug in pi to pure node lookup functionality that caused pure nodes to be mapped more than once.
	#Jira UE-34254 - Crash compiling blueprint with instrumentation - !ScriptExecNode.IsValid()
	#Proj BlueprintProfiler, Kismet

	- Fixed the code to focus observed pins
	- Fixed event pin mapping code that was failing when linked directly to a tunnel node.

	Note: Submitting on behalf of BenC (per MikeB).

Change 3080417 on 2016/08/08 by Ben.Cosh

	This fixes the way execution path stats are calculated.
	#Jira UE-34150 - Exec pin containers in the profiler are accumulating time incorrectly.
	#Proj Kismet

Change 3080484 on 2016/08/08 by Maciej.Mroz

	#jira UE-28625 Direction of GetOverlapInfos parameter doesn't match

Change 3080571 on 2016/08/08 by Ben.Cosh

	This addresses some flaws in the fix submitted in CL 3080417 that were discovered after submission.
	#Jira UE-34150 - Exec pin containers in the profiler are accumulating time incorrectly.
	#Proj Kismet

[CL 3080751 by Mike Beach in Main branch]
2016-08-08 11:42:16 -04:00
Mike Beach
a9cb932f24 Copying //UE4/Dev-Blueprints to Dev-Main (//UE4/Dev-Main)
#lockdown Nick.Penwarden

==========================
MAJOR FEATURES + CHANGES
==========================

Change 2884592 on 2016/02/27 by Maciej.Mroz

	Packages containing Dynamic Types are listed as dependencies in FAsyncPackage::LoadImports

	#codereview Robert.Manuszewski

Change 2884607 on 2016/02/27 by Maciej.Mroz

	CDO of DynamicClass is postponed as a regular CDO creation.

	This change is risky (it still requires some tests), but it seems to be necessary for solving (cyclic) dependencies while Async Loading.

	#codereview Robert.Manuszewski, Mike.Beach

Change 2885915 on 2016/02/29 by Michael.Schoell

	Struct pins on exposed on spawn properties will no longer error on compile if they do not have a pin connected to them.

	UKismetSystemLibrary::SetStructurePropertyByName's Value pin is now marked as a AutoCreateRefTerm so literals can be used on the auto-generated node.

	Modified FKismetCompilerUtilities::GenerateAssignmentNodes to assign the literal value into the pin, which in turn allows it to expand into an auto-ref term.

	#jira UE-23130 - ExposeOnSpawn struct properties are not handled correctly

Change 2887269 on 2016/03/01 by Maciej.Mroz

	Fixes related to DisregardForGC:
	- merged 2885687 from Dev-Core branch
	- ensure CDO of newly added class is created in CloseDisregardForGC

Change 2887273 on 2016/03/01 by Maciej.Mroz

	GUObjectArray.CloseDisregardForGC(); is called before GUObjectArray.DisableDisregardForGC();

Change 2892502 on 2016/03/03 by Maciej.Mroz

	More descriptive ensures.

Change 2892509 on 2016/03/03 by Maciej.Mroz

	Minor changes in Orion code, necessary to compile the project with nativized Blueprints

	#codereview David.Ratti

Change 2892513 on 2016/03/03 by Maciej.Mroz

	Blueprint C++ Conversion: there is no crash when a asset used by a nativized class wasn't loaded.

Change 2894347 on 2016/03/04 by Michael.Schoell

	Fixed crash with the Array Item Get node in the disassembler.

	#jira UE-27734 - Error in TeamLobby

Change 2895311 on 2016/03/04 by Michael.Schoell

	Right click and using "Find References" on an event node in either the MyBlueprint window or a graph panel, will search the function's name, not the node's title (drops the Event text).

	#jira UE-27335 - GitHub 2092 : Skip "Event " Prefix when Finding References for Events
	PR #2092: Skip "Event " Prefix when Finding References for Events (Contributed by mollstam)

Change 2896714 on 2016/03/07 by Ben.Cosh

	Fixes for a few related crash/assert issues when profiling blueprints that use event dispatchers/call event functions and latent nodes.
	#UE-27090 - Crash when calling an Event Dispatcher within a Sequence node with the Blueprint Profiler on
	#Proj KismetCompiler, BlueprintProfiler, BlueprintGraph, Kismet, CoreUObject

	#codereview Phillip.Kavan

Change 2897335 on 2016/03/07 by Dan.Oconnor

	Unshelved from pending changelist '2889006':

	We now copy UObjects that are assigned to Instance properties via  UObjectPropertyBase::ImportText_Internal

	#jira UE-26310

Change 2899151 on 2016/03/08 by Phillip.Kavan

	[UEBP-112] BP profiler - pure node timings

	change summary:
	- first-pass revisions for tracking/visualizing pure node execution timings while profiling
	- trace path debugging support (default: off)

	#codereview Ben.Cosh

Change 2901763 on 2016/03/09 by Michael.Schoell

	Can undo/redo nodes added using shortcuts.

	Also fixed issue with macro nodes added using shortcuts not being selected.

	#jira UE-28027 - Cannot Undo Blueprint Nodes Placed Using Shortcuts

Change 2902762 on 2016/03/10 by Phillip.Kavan

	[UE-28167] Fix compile-time crash caused by intermediate pure nodes when the BP profiler view is active.

	change summary:
	- modified FBlueprintExecutionContext::MapNodeExecution() to avoid impure nodes when mapping the pure node execution chain.

	#codereview Ben.Cosh

Change 2907961 on 2016/03/14 by Maciej.Mroz

	#jira UE-28249 Cooked win32 Fortnite server crash loading in to FastCook map
	Manually integrated CL#2906835 from Dev-Core - Reset last non-gc index when disabling disregard for GC pool

Change 2908013 on 2016/03/14 by Maciej.Mroz

	EmptyLinkFunctionForGeneratedCode function for all .generated.*.cpp files
	Fixed problem when stuff from some .generated.*.cpp files for nativized Blueprints plugin were not linked at all.

	#codereview Robert.Manuszewski, Steve.Robb

Change 2908033 on 2016/03/14 by Maciej.Mroz

	Various fixes and improvements related to initialization sequence of converted Dynamic Classes.

[CL 2910931 by Mike Beach in Main branch]
2016-03-15 19:07:47 -04:00
Matthew Griffin
bb70b349ce Merging CL 2804086 from //UE4/Release-4.11 to Dev-Main (//UE4/Dev-Main) to isolate copyright update
#lockdown Nick.Penwarden

[CL 2819020 by Matthew Griffin in Main branch]
2016-01-07 08:17:16 -05:00
Ben Marsh
149375b14b Update copyright notices to 2015.
[CL 2379638 by Ben Marsh in Main branch]
2014-12-07 19:09:38 -05:00
Jaroslaw Palczynski
ebce413232 UE4 Refactoring. Changed OVERRIDE and FINAL macros to keywords override and final.
[CL 2104397 by Jaroslaw Palczynski in Main branch]
2014-06-13 06:14:46 -04:00
Mike Beach
fddc9cf2b3 Injecting a cast operation when plugging an Blueprint object pin into an interface paramter.
[CL 2092325 by Mike Beach in Main branch]
2014-06-02 17:55:53 -04:00
Tim Sweeney
324683ce78 Engine source (Main branch up to CL 2026164) 2014-03-14 14:13:41 -04:00