Commit Graph

139 Commits

Author SHA1 Message Date
Zak Middleton
c74be9d080 #ue4 - Cast flags can now be declared for non-intrinsic classes.
- Added cast flag support to a handful of the most commonly used classes in the engine, determined by tracking all calls to IsA() over typical workflows.
- Result: reduced IsA() function calls from 21k to 1k instances per frame in a large test scene (1.0ms to 0.06ms per frame).

#codereview Steve.Robb

[CL 2398934 by Zak Middleton in Main branch]
2015-01-06 14:15:32 -05:00
Andrew Rodham
c3306d65af Added ability to specify units on UProperty types through a Units= meta tag
Added ability to adaptively change display units to a more appropriate range on numerical property editors. This behaviour can be disabled with a AllowUnitRangeAdaption=False meta tag.
Spin boxes now accept a numeric type interface which allows customization of numeric handling.

[CL 2398620 by Andrew Rodham in Main branch]
2015-01-06 07:29:48 -05:00
John Abercrombie
4e9ac6444a Merging using UE4-Fortnite-To-UE4 @ CL 2382284
[CL 2388856 by John Abercrombie in Main branch]
2014-12-15 15:29:48 -05:00
Mikolaj Sieluzycki
62bcb126ce XBoxOne CIS fix.
[CL 2386109 by Mikolaj Sieluzycki in Main branch]
2014-12-11 16:29:40 -05:00
Mikolaj Sieluzycki
4b1f513db4 Emit warning if GetLifetimeReplicatedProps and functions with _Implementation and _Validate suffixes aren't declared.
#codereview Robert.Manuszewski

[CL 2385673 by Mikolaj Sieluzycki in Main branch]
2014-12-11 11:49:41 -05:00
Robert Manuszewski
a00117eff3 Making sure CRCs generated for UHT-generated code do not change across platforms.
[CL 2385269 by Robert Manuszewski in Main branch]
2014-12-11 04:58:57 -05:00
Mikolaj Sieluzycki
a770062fe2 XBoxOne CIS fix.
#lockdown Ben.Marsh

[CL 2380464 by Mikolaj Sieluzycki in Main branch]
2014-12-08 11:10:43 -05:00
Michael Trepka
5317a09531 CIS fix
#codereview Mikolaj.Sieluzycki

[CL 2380249 by Michael Trepka in Main branch]
2014-12-08 09:06:22 -05:00
Mikolaj Sieluzycki
30464bcf0e CIS fix.
[CL 2380229 by Mikolaj Sieluzycki in Main branch]
2014-12-08 08:45:43 -05:00
Mikolaj Sieluzycki
a791ac02b4 CIS fix.
[CL 2380210 by Mikolaj Sieluzycki in Main branch]
2014-12-08 08:10:45 -05:00
Mikolaj Sieluzycki
70df0c36e9 Don't automatically create function declarations in UHT that user has to implement.
#codereview Steve.Robb

[CL 2380157 by Mikolaj Sieluzycki in Main branch]
2014-12-08 07:30:42 -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
Ben Marsh
959cfa782d Add missing copyright notices to source files.
[CL 2379212 by Ben Marsh in Main branch]
2014-12-06 19:14:20 -05:00
Maciej Mroz
37c8721c9e Error: "Static array cannot be exposed to blueprint" (previously it was a warning, but it was ignored)
codereview Robert.Manuszewski

[CL 2374667 by Maciej Mroz in Main branch]
2014-12-03 07:51:35 -05:00
Phillip Kavan
ead8c218f1 [UE-2345] BP - enforce const-correctness in native const class method overrides
this change introduces enforcement of 'const-correctness' into implemented function graphs.

summary:
if you have a function declared in C++ like this:
UFUNCTION(BlueprintImplementableEvent)
int32 MyFunctionThatReturnsSomeValue() const;
if you implement that (BPIE) function in a Blueprint that's parented to that native class, it will now be flagged as 'const'. this makes any properties of 'self' read-only within the context of that graph, which means the compiler will emit an error if you try to set a property or otherwise call a non-const, non-static function with 'self' as the target.
if there happens to already be an implemented const function in a Blueprint that was in place prior to this change, the compiler will emit a warning instead of an error, in order to allow existing Blueprints that may currently be "violating" const within the context of a const BPIE function to still compile, while still alerting to issues that should probably be addressed.
notes:
1) this also applies to BlueprintNativeEvent (BPNE) implementations, and also when implementing BPIE/BPNE interface methods that are also declared as const
2) a const BPIE/BPNE function with no return value and no output parameters will be implemented as a "normal" impure function, and not as an event as in the non-const case
3) a const BPIE/BPNE function with a return value and/or output parameters will currently be implemented as a pure function, regardless of whether or not BlueprintCallable is specified
4) this CL also retains some consolidation of static function validation code that i had previously done, mostly to allow static functions to more easily be whitelisted for const function graphs
#codereview Nick.Whiting, Michael.Noland

[CL 2368059 by Phillip Kavan in Main branch]
2014-11-21 17:47:17 -05:00
Ben Marsh
adcc8663e0 Don't prototype FObjectInitializer in generated code; it prevents Doxygen from matching up the funciton signatures.
[CL 2367847 by Ben Marsh in Main branch]
2014-11-21 15:01:17 -05:00
Robert Manuszewski
01e5f0dc49 Fix for generated code changes (for the Engine) when switching between targets due to uninitialized GeneratedBodyMacroAccessSpecifier member variable.
Added more safety checks and a more detailed error message.

#codereview jaroslaw.palczynski

[CL 2353244 by Robert Manuszewski in Main branch]
2014-11-07 13:17:32 -05:00
Robert Manuszewski
8cb5dea614 Hot-Reload: fixing infinite loop when changing USTRUCTs caused by unnecessary re-initialization of the owner UClass.
UE-4916

#change Replaced CLASS_Temporary (UHT-only flag) with CLASS_Constructed to check if a class needs to be constructed or not in generated code
#change Modified code generator to make sure UClasses don't get reconstructed if not required

[CL 2351525 by Robert Manuszewski in Main branch]
2014-11-06 15:16:05 -05:00
Robert Manuszewski
dcaf3b8fc5 Making sure the compiler does not attempt to generate copy-constructors for UObjects as this produces false warnings when the class contains deprecated members and generally UObjects should not be copy-constructed anyway.
[CL 2345940 by Robert Manuszewski in Main branch]
2014-10-31 04:01:12 -04:00
Ben Zeigler
d0769bb096 #UE4 Fix header parsing of component properties, private_subobject was breaking the parser and causing the next property to be ignored. This was causing Character's Mesh property to not exist as an example
#codereview robert.manuszewski

[CL 2345720 by Ben Zeigler in Main branch]
2014-10-30 21:14:35 -04:00
Robert Manuszewski
a5ced47375 Hot-Reload: fixed hot-reload not detecting UFUNCTION changes in source code
[CL 2344852 by Robert Manuszewski in Main branch]
2014-10-30 09:53:47 -04:00
Mikolaj Sieluzycki
7551bfda8b Add parsing DEPRECATED macro in struct and class declaration in UHT.
#codereview Steve.Robb

[CL 2339610 by Mikolaj Sieluzycki in Main branch]
2014-10-24 02:59:18 -04:00
Robert Manuszewski
af80979bb7 First phase of deprecating TSubobjectPtr<> replacing TSubobjectPtr properties in the Engine with normal pointers and adding subobject accessors for derived classes/client code.
[CL 2331521 by Robert Manuszewski in Main branch]
2014-10-16 09:02:30 -04:00
Jaroslaw Palczynski
7c41927cf4 Rename FPostConstructInitializeProperties to something simpler
Changed it with FObjectInitializer.

UECORE-7

[CL 2328384 by Jaroslaw Palczynski in Main branch]
2014-10-14 10:29:11 -04:00
Jaroslaw Palczynski
e1cafcc43a NUXF-11 Don't require a Category on UPROPERTIES (for game classes)
TTP 346443

[CL 2328243 by Jaroslaw Palczynski in Main branch]
2014-10-14 10:27:14 -04:00