Commit Graph

28 Commits

Author SHA1 Message Date
Matthew Griffin
bf17036c2f [INTEGRATE] Change 2429033 by Jamie.Dale@Pitbull_JDaleReleases on 2015/02/02 19:12:32
Made sure that FHotReloadModule still reported slow task progress while stuck in a busy loop

	ReviewedBy Anderew.Rodham

[CL 2435569 by Matthew Griffin in Main branch]
2015-02-06 11:58:00 -05:00
Dmitry Rekman
29809b570a PR #783: Remove duplicate pipe() call on Linux
- Contributed by yaakuro.

https://github.com/EpicGames/UnrealEngine/pull/783

[CL 2428982 by Dmitry Rekman in Main branch]
2015-02-02 18:28:24 -05:00
Ben Marsh
346d29ab3e [INTEGRATE] Change 2421953 by Andrew.Rodham@AndrewRodham_4.7 on 2015/01/28 06:48:44
Fixed hot reload being able to add two scoped slow tasks to a single progress frame

[CL 2425816 by Ben Marsh in Main branch]
2015-01-30 10:48:51 -05:00
Ben Marsh
a05abb1027 [INTEGRATE] Change 2417928 by Mike.Fricker@MFRICKER_G3686_Alpha on 2015/01/24 15:53:14
Fixed failed C++ hot reload not displaying an error to the user (UE-8241)
	- Also added slightly better progress reporting to hot reload when adding code to a project

[CL 2419709 by Ben Marsh in Main branch]
2015-01-26 20:16:08 -05:00
Steve Robb
0756ef15b9 Delegate comparisons deprecated, lots of other associated code deprecated, and lots of warning fixups:
* Multicast delegate Add* calls now return FDelegateHandles, and Remove* calls are now all deprecated, except for a new Remove function which takes a FDelegateHandle.
* New FConsoleManager::RegisterConsoleVariableSink_Handle and UnregisterConsoleVariableSink_Handle functions which work in terms of FConsoleVariableSinkHandle.
* Timer calls which don't take FTimerHandles are deprecated.
* FTicker::AddTicker now returns an FDelegateHandle and is removed by an overloaded Remove function.
* DEFINE_ONLINE_DELEGATE* macros now define _Handle variants of the Add/Remove functions which return/take handles.
* Various other handle-based registration changes.
* Some unity build fixes.
* Some simplification of delegate code.
* Fixes for lots of existing code to use handle-based registration and unregistration.

#codereview robert.manuszewski

[CL 2400883 by Steve Robb in Main branch]
2015-01-08 09:29:27 -05:00
Mike Fricker
720e2859c1 Fixed hot reload not actually reloading game modules in some cases
- When hot reload was invoked from the IDE, the editor would not reload all of the game modules if there was more than one module had the game name as part of the module name
- For example after compiling "VehicleGame" and "VehicleGameLoadingScreen", only "VehicleGameLoadingScreen" would be reloaded in the editor
#codereview Robert.Manuszewski

[CL 2391306 by Mike Fricker in Main branch]
2014-12-17 11:52:39 -05:00
Robert Manuszewski
cb091bcd80 Hot-Reload improvements:
- CDO property values that have changed after hot-reload will now be propagated to the existing instances
- Adding code to a non-code project will no longer require restarting the editor to be able to work with new code (the new module will automatically be compiled and loaded)

[CL 2385307 by Robert Manuszewski in Main branch]
2014-12-11 06:03:58 -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 Zeigler
02a9e1dd4e Merging Dev -> Main using UE4-Fortnite-To-UE4 from CL 2340802
Includes following engine changes:

Getting display metrics only once at construct time when using SSafeZone. GetDisplayMetrics is expensive in Windows so it is impractical to call it every frame.
- Some AI API improvements, mostly switchig pointer function parameters to references.
- minor refactor of UCrowdFollowingComponent's queryinf functions:
    - IsCrowd*Enabled functions refactored to  IsCrowd*Active
    - implemented IsCrowd*Enabled that return acrual values of relevant properties
- Added a function to CrowdManager to query for location of agents neighbouring given agent
Added support for PS4 touchpad-based cursor
You can now choose to skip synchronously scanning for asset data in object libraries and just use the data that is currently in the asset registry. The data will be refereshed automatically later once the global scan completes. The only applies to non-commandlet editor instances.
Crash fixes for trying to access NULL Metal surfaces on IOS
Slate: Cleaned up some atlas code related to padding and corrected some comments

[CL 2347323 by Ben Zeigler in Main branch]
2014-11-03 15:47:28 -05:00
Robert Manuszewski
ccd5f143db Hot-Reload: Fix for full rebuild when doing hot-reload in the editor for the first time
[CL 2338642 by Robert Manuszewski in Main branch]
2014-10-23 12:05:53 -04:00
Robert Manuszewski
d7d739e6c1 Hot-Reload: Fixing more build errors when performing Hot-Reload from IDE. Fix for hot-reloading misc game modules from the editor modules list window or through command line.
[CL 2337067 by Robert Manuszewski in Main branch]
2014-10-22 13:33:53 -04:00
Andrew Rodham
4ad1b987fc Improved progress reporting in the editor
FScopedSlowTask has been refactored to better allow for nesting of slow operations. This allows us to cascade nested scopes and provide accurate feedback on slow tasks. FScopedSlowTasks now work together when nested inside sub functions. Break up long functions that contain calls to multiple nested FScopedSlowTasks with FScopedSlowTask::EnterProgressFrame().

Example Usage:
void DoSlowWork()
{
    FScopedSlowTask Progress(2.f, LOCTEXT("DoingSlowWork", "Doing Slow Work..."));
    // Optionally make this show a dialog if not already shown
    Progress.MakeDialog();

    // Indicate that we are entering a frame representing 1 unit of work
    Progress.EnterProgressFrame(1.f);

    // DoFirstThing() can follow a similar pattern of creating a scope divided into frames. These contribute to their parent's progress frame proportionately.
    DoFirstThing();

    Progress.EnterProgressFrame(1.f);
    DoSecondThing();
}

This addresses TTP#338602 - NEEDS REVIEW: Editor progress bars nearly always just show 100%, don't offer useful indication of progress

[CL 2322391 by Andrew Rodham in Main branch]
2014-10-08 04:42:34 -04:00
Robert Manuszewski
2f15e002cb Fixing hot-reload from IDE on the Mac
#change Adding better (working) versions of Process.GetProcesses(), Process.Name and Process.Modules to BuildHostPlatformAbstraction
#change ShouldDoHotReload will now use those new methods to learn if the target is running
#change On the Mac, we can't use 'Added' filesystem event to know if new binaries have been compiled as it reports temporary linker files instead of the final binaries which are only reported by 'Modified' event.

[CL 2321016 by Robert Manuszewski in Main branch]
2014-10-07 04:40:55 -04:00
Robert Manuszewski
694e7ca807 Hot-Reload: Make sure hot-reload is waiting for new modules only when UBT from the current branch is running
#change Added (desktop) platform abstraction for checking if UBT is running. Fully functional for Windows, WIP for Mac and Linux (should work, but can give false positives)

[CL 2302894 by Robert Manuszewski in Main branch]
2014-09-18 15:12:13 -04:00
Robert Manuszewski
96071afb2d Hot-reload: performing hot-reload when there's been no code changes will no longer result in producing new DLLs.
#ttp 345522: HotReload: Should not try to link DLLs when target is up to date

#change Added code to handle up-to-date state of modules in hot-reload code.
#change Added ECompilationResult::UpToDate and ECompilationResult::Canceled, ECompilationResult::Failed()
#change UBT: added -canskiplink command line param and support for skipping link actions when there was nothing to compile
#change extended the duration of re-compile notifications (TTP# 346604 NUXF-246 Hot compile fail message fades)
#change Added 'Compile Canceled' notification (instead of 'Compile Failed')

[CL 2302307 by Robert Manuszewski in Main branch]
2014-09-18 08:10:17 -04:00
Robert Manuszewski
0de4660aee Hot-reload: all CDOs will now get re-constructed after hot-reload. If a CDO has changed, the class will be re-instanced.
#change Moved hot-reload-only code from FBlueprintCompileReinstancer to FHotReloadClassReinstancer
#change It's not possible to derive classes from FBlueprintCompileReinstancer
#change Added code to handle re-creating CDOs after hot-reload even if the class hasn't changed.

[CL 2300696 by Robert Manuszewski in Main branch]
2014-09-17 04:34:40 -04:00
Justin Sargent
770f2b045d When compiling without the editor don't assume the TargetName is UE4Editor.
[CL 2300030 by Justin Sargent in Main branch]
2014-09-16 16:22:14 -04:00
Justin Sargent
c9ffbfd8a6 Added WITH_ENGINE defines around HotReload code specifically dependent on engine types, so programs not dependent on engine can use the HotReload module.
[CL 2299919 by Justin Sargent in Main branch]
2014-09-16 15:06:34 -04:00
Ben Marsh
03bd8ee584 Move hot reload functionality onto it's own define, instead of being tied into IS_MONOLITHIC. Don't want it enabled for modular shipping games in Rocket.
#codereview Robert.Manuszewski

[CL 2293828 by Ben Marsh in Main branch]
2014-09-11 11:39:20 -04:00
Robert Manuszewski
a24b92ced6 HotReload: pass -nosharedpch when doing hot-reload or module recompile from the editor instead of forcing off shared pch when passing -editorrecompile to UBT
[CL 2293690 by Robert Manuszewski in Main branch]
2014-09-11 09:28:33 -04:00
Robert Manuszewski
53f5660895 Making sure bIsHotReloadingFromEditor is set to false in all cases when the compilation fails
#ttp 345519: HotReload: After failing to HotReload once, it would not function again during that session

[CL 2292199 by Robert Manuszewski in Main branch]
2014-09-10 05:13:32 -04:00
Robert Manuszewski
ac182b3916 Fixing recompiling engine modules not working for non code-based game projects
#change Made sure the correct target is passed to UBT when compiling engine/editor modules for non code-based game projects
#change Refactored FLevelEditorActionCallbacks::CanShowSourceCodeActions() code to FHotReloadModule::IsAnyGameModuleLoaded

[CL 2291052 by Robert Manuszewski in Main branch]
2014-09-09 13:57:13 -04:00
Ben Marsh
bb17aef300 Move functionality to invoke UBT into DesktopPlatform.
[CL 2286483 by Ben Marsh in Main branch]
2014-09-05 13:31:22 -04:00
Ben Marsh
d591804587 Move hot reload functionality from Core into the HotReload module. Precursor to removing assumptions about IS_MONOLITHIC and supporting hybrid monolithic configurations.
[CL 2286426 by Ben Marsh in Main branch]
2014-09-05 12:46:22 -04:00
Mike Fricker
e098a557c4 Fixed crash on shutdown
[CL 2267289 by Mike Fricker in Main branch]
2014-08-22 07:48:36 -04:00