Commit Graph

17 Commits

Author SHA1 Message Date
Dan Hertzka
1ce19a5ffa Full rename of the Slate "active tick" system to "active timer"
[CL 2394301 by Dan Hertzka in Main branch]
2014-12-19 17:44:49 -05:00
Dan Hertzka
c042ddcb94 ---- Merging with SlateDev branch ----
Introduces the concept of "Active Ticking" to allow Slate to go to sleep when there is no need to update the UI.

While asleep, Slate will skip the Tick & Paint pass for that frame entirely.
- There are TWO ways to "wake" Slate and cause a Tick/Paint pass:
    1. Provide some sort of input (mouse movement, clicks, and key presses). Slate will always tick when the user is active.
        - Therefore, if the logic in a given widget's Tick is only relevant in response to user action, there is no need to register an active tick.
    2. Register an Active Tick. Currently this is an all-or-nothing situation, so if a single active tick needs to execute, all of Slate will be ticked.

- The purpose of an Active Tick is to allow a widget to "drive" Slate and guarantee a Tick/Paint pass in the absence of any user action.
    - Examples include animation, async operations that update periodically, progress updates, loading bars, etc.

- An empty active tick is registered for viewports when they are real-time, so game project widgets are unaffected by this change and should continue to work as before.

- An Active Tick is registered by creating an FWidgetActiveTickDelegate and passing it to SWidget::RegisterActiveTick()
    - There are THREE ways to unregister an active tick:
        1. Return EActiveTickReturnType::StopTicking from the active tick function
        2. Pass the FActiveTickHandle returned by RegisterActiveTick() to SWidget::UnregisterActiveTick()
        3. Destroy the widget responsible for the active tick

- Sleeping is currently disabled, can be enabled with Slate.AllowSlateToSleep cvar
- There is currently a little buffer time during which Slate continues to tick following any input. Long-term, this is planned to be removed.
    - The duration of the buffer can be adjusted using Slate.SleepBufferPostInput cvar (defaults to 1.0f)

- The FCurveSequence API has been updated to work with the active tick system
    - Playing a curve sequence now requires that you pass the widget being animated by the sequence
    - The active tick will automatically be registered on behalf of the widget and unregister when the sequence is complete
    - GetLerpLooping() has been removed. Instead, pass true as the second param to Play() to indicate that the animation will loop. This causes the active tick to be registered indefinitely until paused or jumped to the start/end.

[CL 2391669 by Dan Hertzka in Main branch]
2014-12-17 16:07:57 -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
Max Preussner
9f8430a6d8 Settings: Slightly rephrased checkout notice message
[CL 2341648 by Max Preussner in Main branch]
2014-10-27 18:13:37 -04:00
Wes Hunt
31e2bb00ac Removed a bunch of stuff from Slate standard include, created SlateBasics.h
* 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]
2014-10-14 22:50:06 -04:00
Andrew Rodham
140cd8d78f CIS fix for mac
Clang does not allow multiple implicit type conversions. Also added a "checking file state..." message to the notice.

[CL 2308119 by Andrew Rodham in Main branch]
2014-09-24 05:43:44 -04:00
Andrew Rodham
c6d472f665 Updated checkout warning styles
Checkout warnings now have a yellow-orange background to highlight the error, and checked-out/writable notices now have no color to reduce noise.

[CL 2308034 by Andrew Rodham in Main branch]
2014-09-24 03:43:14 -04:00
Andrew Rodham
2642c17127 Tidied up ini file checkout warnings.
The colored background has been removed in favor of a less intrusive coloration on the icon itself. Updated the padlock icons.

[CL 2305418 by Andrew Rodham in Main branch]
2014-09-22 09:44:45 -04:00
Andrew Rodham
525b290de8 More work to tidy up the target hardware section of the project settings
Applied settings are now written as a string rather than an int
Also added UObject::GetDefaultConfigFilename()

[CL 2305291 by Andrew Rodham in Main branch]
2014-09-22 09:41:38 -04:00
Michael Noland
859c0fe02a Editor: Various settings editor fixes
- Fix SSettingsEditor reload config object regression
- Remove double-padding when editing a settings page that has a checkout prompt
- Fix pending hardware targeting settings not showing up if you change pages and come back
- Fix height pop in SSetingsEditorCheckoutNotice when status query finishes

[CL 2303657 by Michael Noland in Main branch]
2014-09-19 00:46:17 -04:00
Michael Noland
f9a1a1361f Editor: Update hardware targetting to use SSettingsEditorCheckoutNotice and devolved much of the bookkeeping in SSettingsEditor into SSettingsEditorCheckoutNotice
#codereview andrew.rodham

[CL 2303634 by Michael Noland in Main branch]
2014-09-19 00:01:10 -04:00
Michael Noland
afce366747 Editor: Start extracting SSettingsEditorCheckoutNotice out as a standalone widget (WIP)
[CL 2303546 by Michael Noland in Main branch]
2014-09-18 23:05:52 -04:00
Michael Noland
7dde40c236 Editor: Some small improvements to project settings dialog
- Change checkout notice for settings ini files to go green when they are editable
- Reworded messages to include the actual ini file name
- Hid 'reset to default' and 'set as default' options when editing a default ini file, since they make no sense in this context and were always disabled
#codereview max.preussner

[CL 2301866 by Michael Noland in Main branch]
2014-09-17 19:13:07 -04:00
Chris Babcock
66f4e50964 Changed default Android depth buffer precision to 24 and added Android platform setting to choose preference.
#Android
#TTP 334728

[CL 2120147 by Chris Babcock in Main branch]
2014-06-27 17:59:00 -04: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
Max Preussner
b63129a60c Slate: Refactored core Slate implementation into SlateCore module in preparation for UMG.
Other Updates:
- The WidgetReflector is now in its own module as well. It will be converted to a plug-in later.
- The Public API of both Slate and SlateCore has largely been reorganized for better discoverabilty. More cleanup work is needed.
- Added a lot of missing API documentation and fixed existing ones. More and better documentation is needed.
- Removed dead code, fixed a couple things I stubled upon, and conformed to coding guidelines (NULL vs nullptr, line breaks, etc.)

Upgrade Notes:
- The Slate Remote Server is currently disabled - will be re-enabled shortly!
- If your module previously had a module dependency to 'Slate', it now also needs a PrivateModuleDependency to 'SlateCore' in its Build.cs file.
- If your module exposes in any of its Public header files types that are now declared in SlateCore, it needs a PublicModuleDependency to 'SlateCore'
- The ToolTip property type on SWidget has changed from SToolTip to IToolTip; change local variables to TSharedPtr<IToolTip> instead of TSharedPtr<SToolTip> where needed
- IToolTip is not a widget. If you need access to the actual widget that represents the tool tip, use IToolTip::AsWidget(); If you need access to the tool tip's content, use IToolTip::GetContentWidget()

Troubleshooting:
- After syncing to this changelist you may have to clean your /Engine/Intermediate/Build/ directory and rebuild your entire project
- If in your project you are getting linker errors for unresolved types that are now declared in SlateCore, you may be missing a dependency to 'SlateCore'
- If in the Engine code you are getting linker errors for unresolved types that are now declared in SlateCore, you may need to rebuild the entire Engine

[CL 2057118 by Max Preussner in Main branch]
2014-04-26 15:07:24 -04:00
Tim Sweeney
324683ce78 Engine source (Main branch up to CL 2026164) 2014-03-14 14:13:41 -04:00