* See SlateStats.h for details on the new system, which allows for full hierarchical profiling with limited overhead.
* Moved SWidget::GetVisibility() out of line so we can instrument it without a full recompile.
* Widget debug info now uses FName to store the line number of the file. Keeps it in one place and the new stats system can utilize it as an FName.
* Exposed SWidget CreatedInFile debug info as an FName so new stats system can use it.
* FSlateVertex no longer uses FVector4, which is an aligned struct. Switched to float[4] instead. Goes from 48 to 36 bytes.
#codereview:nick.atamas,matt.kuhlenschmidt
[CL 2417281 by Wes Hunt in Main branch]
To remove its use in AppFramework and keep using it in the SlateViewer app, I needed to define its tab in AppFramework and spawn it as a nomad tab in SlateViewer.
[CL 2358266 by Matthew Griffin in Main branch]
Removes depency on WebBrowser project from Slate, it now depends on Slate instead.
Removed functions from Singleton interface that are no longer needed.
Get the Slate renderer when needed instead of keeping reference.
Added call to FTicker::Tick function in Slate viewer app so that Web Browser will continue to work.
[CL 2330030 by Matthew Griffin in Main branch]
* Moved Slate.h into SlateBasics.h and began shifting less commonly used headers into SlateExtras.h.
* Slate.h now simply includes SlateBasics.h and SlateExtras.h.
* Slate.h includes a deprecated warning now to indicate that SlateBasics.h + specific includes should be used instead.
* Moved dozens of inlined functions using Slate widgets into .cpp files to avoid header dependencies.
* All code samples now include SlateBasics.h and SlateExtras.h so future shifts will not break most those projects, but not trigger the deprecation warning of including Slate.h.
#BUN
[CL 2329610 by Wes Hunt in Main branch]
Made sure to manually load the appropriate modules for source code access.
The hot reload dependency that VisualStudioSourceCodeAccess had was bringing in the whole editor as a dependency, so this is now restricted to editor builds.
SlateViewer now compiles in CoreUObject as the source code accessor module requires it for its settings.
TTP# 333675 - CHECKIN: SLATE: WidgetReflector code reference hyperlinks don't work anymore
#codereview Nick.Atamas,Frank.Fella
[CL 2292278 by Thomas Sarkanen in Main branch]
The AppFramework module is intended to be used for compound widgets and UI related classes that are too specific (not basic enough) for Slate, but also not Editor specific (reusable in non-Editor applications and games). The test suite has been moved in its entirety for now, but core widget specific test classes will eventually be split off and moved back into Slate, so that they can live alongside of their corresponding widgets.
Other changes:
- moved to "include what you use" scheme for SColorPicker
- broke out color picker related widgets that may be reusable
- added forward declarations to reduce header include dependencies
#CodeReview: saul.abreu
[CL 2275496 by Max Preussner in Main branch]
Cocoa isn't an event-polling API as UE4 expects, so previously we were subverting the NSApplication's event handling to pretend that it was. When the engine wasn't running the event loop fast enough, such as when loading where it isn't processed at all, this resulted in unresponsive windows and Spinning-Beachball-Of-Death. That isn't very satisfactory & to some users appears as if the application has crashed. To address these deficiencies without further attempts to subvert Cocoa, the game is now punted onto a separate thread where it can run its own tight-loop, leaving the main thread to handle the Cocoa event run-loop. Events are captured by delegate objects, as Cocoa requires, but dispatched and handled on the game thread which makes Cocoa appear more like other platform APIs to the higher-level UE4 code.
This can all be disabled using the MAC_SEPARATE_GAME_THREAD define in CocoaThread.cpp.
#codereview michael.trepka
[CL 2262543 by Mark Satterthwaite in Main branch]