Commit Graph

46 Commits

Author SHA1 Message Date
Jamie Dale
9bcd777d9a Moved the "Widget Caching" toggle to the top row of toggle buttons
[CL 2696972 by Jamie Dale in Main branch]
2015-09-18 10:05:55 -04:00
Ben Marsh
26199a1d2d Speculative build fix for root editor build failure.
#codereview mark.satterthwaite

[CL 2696025 by Ben Marsh in Main branch]
2015-09-17 17:05:04 -04:00
Peter Sauerbrei
0bec8adac7 build fix
#codereview nick.darnell

[CL 2695696 by Peter Sauerbrei in Main branch]
2015-09-17 14:53:00 -04:00
Nick Darnell
4181457d07 UMG/Slate - Exposing the Widget Caching flag to the widget reflector. Also making it so invalidation is disabled when Picking Widgets is occuring, as invalidation causes that system of traversing the widget hierarchy to no longer function. Since it pretends there are no children to avoid Slate doing more work than it needs to.
[CL 2695558 by Nick Darnell in Main branch]
2015-09-17 13:33:20 -04:00
Jamie Dale
1b119af458 Added the ability to take, save, and load widget snapshots via the widget reflector (Epic Friday)
Major changes:
 - The widget reflector UI now uses tabs. The hierarchy and stats views have been moved to tabs, and new tabs have been added to support picking widgets from a snapshot.
 - The widget reflector node trees are no longer using UObject types. The idea here was to make the serialization easier, but it didn't work and I ended up using JSON instead.
 - When you take or load a widget snapshot, you're now shown the screenshot of the window associated with that snapshot, and are able to pick widgets from it as you would do with a live tree.

API changes:
 - The tab spawners for the widget reflector and atlas visualizers are now registered automatically when the SlateReflector module is loaded. These are now the only way to create these windows.
 - The tabbed layout within the widget reflector has made it impossible to create the widget reflector unless spawned via a tab manager. To this end, the following functions have been removed from ISlateReflectorModule:
  - GetWidgetReflector
  - GetAtlasVisualizer
  - GetTextureAtlasVisualizer
  - GetFontAtlasVisualizer
 - These functions used to be used to create a raw widget reflector or atlas viewer widget.
  - If you were doing this because you were placing it into your own window, you can take advantage of the fact that the widget reflector tab spawner is always available, and use the global tab manager to create your window and place a spawned widget reflector tab inside it - SummonPerfTestSuite in SPerfSuite.cpp provides an example of this.
  - If you were doing this in the handler of your own widget reflector tab spawner, you can either just use the standard widget reflector tab spawner instead (you need to load the SlateReflector module once, and then "WidgetReflector" will be available to spawn via the global tab manager), or you can just use the DisplayWidgetReflector function of ISlateReflectorModule (which will internally do the same thing).

[CL 2661609 by Jamie Dale in Main branch]
2015-08-19 16:30:27 -04:00
Chris Babcock
6662d254a3 Change build condition to match inclusion case for InInvalidationDebuggingEnabled in header
#codereview Nick.Darnell

[CL 2655300 by Chris Babcock in Main branch]
2015-08-13 17:24:43 -04:00
Nick Darnell
5d1f0e28f3 UMG/Slate - Initial version of SInvalidationPanel! Has several limitations, but permits UMG and Slate to effectively "Freeze" UI, caching a great deal of the processing, computation...etc required every time slate paints. Cached widgets do not get prepass, tick, or paint until their parent SInvalidationPanel is invalidated. Widgets that change often, can be marked as Volatile and get treated special when used in conjunction with the SInvalidationPanel, they get stored seperately and get prepass/tick/paint like normal, but using the cached geometry of their container they origionally were computed to have. Changes to their desired size will not change the invalidation of the rest of the panel, a manual invocation would be required for that.
When used effectively the SInvalidationPanel can shave milliseconds off your Slate time on a complicated hierarchy of widgets.  Provided those widgets don't need hit testing or input, this can be a very useful widget to use.  Scenarios like a HUD are the primary target of this panel, future advances will hopefully make it possible to be used in conjunction with a UI that needs input.

#codereview matt.kuhlenschmidt, nick.atamas

[CL 2609569 by Nick Darnell in Main branch]
2015-07-02 15:32:02 -04:00
Jamie Dale
39d7e66fc2 Epic Friday - Working on adding "snapshots" to the widget reflector
The underlying changes have been made to allow the widget reflector to visualize a live or snapshotted tree.

Submitting these now as the API has changed quite a bit and any future changes will likely conflict.

The "Snapshot" button is implemented but is currently commented out as it's not fully functional (I still need to take a screenshot of the windows so you can pick against their saved state).

[CL 2546993 by Jamie Dale in Main branch]
2015-05-12 06:44:16 -04:00
Justin Sargent
b3d85a460d Fixed an issue where the reflector module had a variable to cache off the last created reflector widget but never assigned to it.
Merging using UE4-To-UE4-LauncherDev

[CL 2532820 by Justin Sargent in Main branch]
2015-04-30 18:54:31 -04:00
Daniel Broder
8ea8f8d7ad Merging using UE4-Fortnite-To-UE4 using 2517024
Weekly Fortnite Dev -> Main integration.

#CodeReview Paul.Moore, Bob.Tellez

[CL 2524683 by Daniel Broder in Main branch]
2015-04-24 14:07:47 -04:00
Mike Fricker
114458bf0f Clang warning fixes: Fixed missing 'override' specifiers
- Also removed some unreferenced functions that adding 'override' revealed

PR #1002 -- Thank you, Omar007!

[CL 2498415 by Mike Fricker in Main branch]
2015-04-01 07:20:55 -04:00
Todd Eckert
79e183780f Merging Dev->Main up to CL#2479653 using UE4-Fortnite-To-UE4.
*because of tons of changes, I will supply the changelists in the email because it was too large for this checkin*

[CL 2483008 by Todd Eckert in Main branch]
2015-03-18 10:12:32 -04:00
Jamie Dale
1d8a24641d Converted Slate, SlateCore, and SlateViewer to exclusively use FText with Slate
UETOOL-213 - Minimize Slate FString -> FText conversion (remove SLATE_TEXT_ATTRIBUTE)

[CL 2458202 by Jamie Dale in Main branch]
2015-02-24 05:57:41 -05:00
Matthew Griffin
e34e3e92dd [INTEGRATE] Change 2444700 by Nick.Darnell@Nick.Darnell_Dev on 2015/02/13 09:56:08
UE-9790 - Fixing widget reflector to not crash on UMG widgets that have no associated blueprint asset.

	#lockdown Matt.Kuhlenschmidt

[CL 2449857 by Matthew Griffin in Main branch]
2015-02-18 05:30:41 -05:00
Wes Hunt
97dbc7c4e2 Fixed WidgetReflector source navigation functionality. #BUN
* Removed SWidget:: GetCreatedInFile, GetCreatedInFileFName, GetCreatedInLineNumber.
* Added GetCreatedInLocation() -> FName as a non-redundant replacement, updated all code usages.
* This shrinks SWidget size by 16 bytes and reduces ambiguity on which ones to use.
* Implemented ToString() in terms of GetReadableLocation().
#codereview:max.preussner

[CL 2430545 by Wes Hunt in Main branch]
2015-02-03 16:41:52 -05:00
Peter Sauerbrei
392b4a54c8 CIS fix for Mac and Slate Stats
#mac

[CL 2417522 by Peter Sauerbrei in Main branch]
2015-01-23 19:08:15 -05:00
Wes Hunt
cc4ba94e58 Fix a block of code not surrounded by SLATE_STATS
#codereview peter.sauerbrei

[CL 2417484 by Wes Hunt in Main branch]
2015-01-23 18:32:55 -05:00
Wes Hunt
5e497c92d4 Added custom slate stats, removed all but top level UE4 slate stats. #BUN
* 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]
2015-01-23 16:49:16 -05:00
Nick Atamas
cceb9ce530 Mergin CL 2411459, 284248 from UE4-UT/... -> UE4/...
Slate : added DemoMode visualization of slate mouse events - draw a fuchsia ring around event location.

[CL 2411513 by Nick Atamas in Main branch]
2015-01-19 17:59:39 -05:00
Nick Atamas
f5e19bef14 Slate : RelativeLayoutScale is now computed in the SlatePrepass(). ComputeDesiredSize() now takes a float parameter. API-breaking change!
[CL 2406629 by Nick Atamas in Main branch]
2015-01-14 19:04:45 -05:00
Nick Darnell
2126fe2576 Editor - The widget reflector now caches most of the information off a widget so that if the widget is destroyed after you lose focus (menus), you can still navigate to the source file where it was defined without that data disappearing.
[CL 2404789 by Nick Darnell in Main branch]
2015-01-13 11:44:52 -05:00
Nick Darnell
90e793745c Slate - ESlateCheckBoxState has been renamed to ECheckBoxState.
[CL 2384008 by Nick Darnell in Main branch]
2014-12-10 14:24:09 -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
Jamie Dale
df8547d860 Atlas visualizer improvements, and added a font atlas visualizer
Moved the existing atlas visualizer out of the Slate RHI renderer and instead made the resource manager for each renderer implement the ISlateAtlasProvider interface to provide information about its current texture atlases. FSlateFontCache implements ISlateAtlasProvider for the font atlas viewer.

Improved the atlas visualizer and added support for zooming and panning of the atlas pages. This helps greatly when viewing font atlases as they can be as large as 2048x2048.

#codereview Matt.Kuhlenschmidt

[CL 2371483 by Jamie Dale in Main branch]
2014-11-27 07:36:04 -05:00
Jamie Dale
75900308d3 Fixed code relying on SLATE_TEXT_ATTRIBUTE for SHyperlink
Made sure everything was using FText rather than FString.

[CL 2370982 by Jamie Dale in Main branch]
2014-11-26 13:56:07 -05:00