Patrick Boutot
2ed0275040
Slate: Re-introduce SlateAttribute.OnValueChanged(). N.B. You are only allowed to invalidate attribute in the callback that doesn't affect the child order or the visibility of the widget.
...
[CL 16653867 by Patrick Boutot in ue5-main branch]
2021-06-13 10:22:57 -04:00
Patrick Boutot
35e97f55a6
Slate: Split the Invalidation update loop for better performance tracking.
...
#preflight 60c108e31ab0310001892cca
[CL 16612339 by Patrick Boutot in ue5-main branch]
2021-06-09 16:49:03 -04:00
PJ Kack
1072f325a7
Slate: Fix memory access write violation caused by 16276861 where WidgetsNeedingPrepassUpdate could be writing to an already reset FastWidgetPathList.
...
Reset all arrays in FSlateInvalidationRoot::InvalidateRootChildOrder (code by Patrick.Boutot)
#jira UE-116075, UE-116402
#rb Patrick.Boutot
#rnx
[CL 16569962 by PJ Kack in ue5-main branch]
2021-06-07 10:02:33 -04:00
Patrick Boutot
370cfaa4ca
Slate: Remove some shared ptr copy. Fix slot access in FChildren and add a ForEach function.
...
#jira UE-115497
#rb vincent.gauthier
#preflight 60b524a6f45a940001e24a28
[CL 16510610 by Patrick Boutot in ue5-main branch]
2021-05-31 15:42:59 -04:00
ionut matasaru
be0c084a13
Fixed errors re format string / parameter list for various UE_LOGs:
...
- number of supplied parameters less or more than the number of specifiers used in format string
- invalid format string specifiers used
Also changed text of two UE_LOG error messages to match the other ones.
#rb Patrick.Boutot
[CL 16314926 by ionut matasaru in ue5-main branch]
2021-05-13 13:12:04 -04:00
Patrick Boutot
097426f18c
Slate: Add update flag for volatile prepass. These widgets always need a prepass in fastpath. Fix issue with collapsed, the desired size was not updated when a parent was also collapsed. Fix the wrong position of elements inside a Retainer when the Retainer moves. Keep an array of all widgets that always need to be updated (tick, timer, paint). That prevents notifying the proxy and the final list once the widget got painted and ensure that all elements are updated.
...
#preflight 609aa2bc8f637500016ce3f2
[CL 16276861 by Patrick Boutot in ue5-main branch]
2021-05-11 14:15:32 -04:00
Patrick Boutot
ebd1952e28
Slate: Add option to verify if a widget is already in the invalidaiton heap. Enabled with "Slate.InvalidationRoot.VerifyWidgetHeapContains"
...
#fyi matt.kuhlenschmidt
#preflight 6093f053e707620001c2d23e
[CL 16220501 by Patrick Boutot in ue5-main branch]
2021-05-06 10:25:51 -04:00
Patrick Boutot
120469e3b5
Slate: Rename "Collapsed" SlateAttribute to "AffectVisibility". It represent more the intention. If the parent is collapsed, the child SlateAttribute was not updated even if they were marked as "update when collapsed". Update the widget reflector to show the name of the SlateAttribute (only if the widget is live). Call GetRelativeLayoutScale after the attribute are updated.
...
#preflight 60801fe317b40800013076ce
[CL 16072465 by Patrick Boutot in ue5-main branch]
2021-04-21 09:41:28 -04:00
Patrick Boutot
f46af25282
Slate: Fix attributes update order in GlobalInvalidation.
...
[CL 16050094 by Patrick Boutot in ue5-main branch]
2021-04-19 09:03:16 -04:00
Patrick Boutot
120fa81941
Slate: Add an option to update the attributes and cache the invalidation for later. Update the visibility attribute before doing layout out of the regular SWidget paint path.
...
#jira UE-113307
#preflight 607993474af1c70001f7ae8e
[CL 16033397 by Patrick Boutot in ue5-main branch]
2021-04-16 10:07:05 -04:00
Patrick Boutot
ee9c7f8dcb
Slate: Move visibility flag to WidgetProxy. Keep track of the Collapsed and the Visible state to update the Attribute as in SlowPath. Convert RenderTransform and RenderTransformPivot to SlateAttribute. Make the Visibility attribute update first (needs more work in the SlateAttributeInitializer to enforce it). Update Attribute in 2 steps. Update the Collapsed first (that can change the visibility), then update the "not collapsed" attribute.
...
#fyi mikko.mononen, sebastian.nordgren, lauren.barnes
#review-16007738 vincent.gauthier
[CL 16007736 by Patrick Boutot in ue5-main branch]
2021-04-14 12:59:44 -04:00
Patrick Boutot
a722a0fcc2
Slate: Add option to prevent Slate Attributes from being called automatically on the SWidget. It is useful when the owner of the widget controls the invalidation (ie. ScrollBox).
...
Add PrePass invalidaiton. It implies a Layout and replaces the InvalidatePrepass function.
#rb vincent.gauthier
#preflight 606b119eed8446000130de45
[CL 15929257 by Patrick Boutot in ue5-main branch]
2021-04-06 08:35:28 -04:00
Patrick Boutot
653f4981cf
Slate: Remove duplicated UpdateFlag in WidgetProxy.
...
#jira UE-107822
#rb vincent.gauthier
#preflight 605ce693a8aabd00017a707d
[CL 15834996 by Patrick Boutot in ue5-main branch]
2021-03-25 19:05:43 -04:00
Patrick Boutot
73f1355ee0
Slate: Fix bugs with GlobalInvalidation and SlateAttributes.
...
Rework the PreInvalidate algo to make it more clear the order of the different invalidations should be processed.
Add a flag to FWidgetAttributeIterator since MoveToWidgeIndexOnNextAdvance was using Invalid as the invalid state and the last element.
Rework the failed condition for the "Slate.InvalidationRoot.Verify*" to stop the process and only output once the error.
Only add the widget to the FinalUpdateList if an update is needed.
#preflight 605b7fb2d88d2d0001be8520
[CL 15805546 by Patrick Boutot in ue5-main branch]
2021-03-24 15:05:05 -04:00
Patrick Boutot
ebf7687505
Slate: Fix crash when the attribute array index is not the same array as the childorder array index.
...
#jira UE-110923
#rb none
#rbn
[CL 15737751 by Patrick Boutot in ue5-main branch]
2021-03-18 10:28:33 -04:00
Patrick Boutot
1c37ba149e
Slate: Fix crash with SlateAttribute and GlobalInvalidation when the ChildOrder is bigger than the itterator index.
...
#jira UE-109133
#rb matt.peters
[CL 15493747 by Patrick Boutot in ue5-main branch]
2021-02-22 16:27:49 -04:00
Patrick Boutot
7892f94351
Slate: Update SlateAttribute when building the SlateInvalidtionWidgetList since SWidget may changes their visibility. That implies that the AttributeIterator now needs to move at the end of the newly built array. The code will be moved into a utility function once we do the visibility optimization (visibility flags are not on the FWidgetProxy). Confirmed the correct use of bPauseAttributeInvalidation in SlateAttributeMetadata.
...
[CL 15472642 by Patrick Boutot in ue5-main branch]
2021-02-19 12:34:56 -04:00
Patrick Boutot
410221a779
Slate: Fix incorrect use of array index when fixng the itterator slate attribute.
...
#jira UE-106514
#rb vincent.gauthier
[CL 15432872 by Patrick Boutot in ue5-main branch]
2021-02-17 07:27:35 -04:00
Patrick Boutot
4e0d784c3f
Slate: Update child order invalidation in order similar to other invalidation. It create a path for other invalidations to be processed in that same order. It reduce the number of Layout invalidation that are already processed by the child order invalidation. Add Slate Attribute InvalidationWidgetReason. For FastUpdate, add list of attributes that need to be updated each frame.
...
[CL 15398555 by Patrick Boutot in ue5-main branch]
2021-02-12 14:16:03 -04:00
Marc Audy
bf80889353
UE5/Release-Engine-Staging to UE5/Main
...
This represents UE4/Main up to CL# 14958402
[CL 15028197 by Marc Audy in ue5-main branch]
2021-01-08 19:56:07 -04:00
Marc Audy
ada7c144fa
Merge //UE5/Release-Engine-Staging @14903491 to //UE5/Main
...
[CL 14906022 by Marc Audy in ue5-main branch]
2020-12-11 14:21:20 -04:00
Jon Nabozny
ec76b247ac
Remove "#pragma once" from SlateInvalidationWidgetList.cpp
...
#fyi Patrick.Boutot
#rb None
#jira None
[CL 14796380 by Jon Nabozny in ue5-main branch]
2020-11-20 12:04:53 -04:00
Patrick Boutot
c8b2ae9472
Slate: Add SlateInvalidationWidgetList a container, similar to a paged array, that can update the fast path list faster. It uses 2 indexes instead of one. It only rebuilds the elements that are affected by the update. Use FSlateInvalidationWidgetIndex and FSlateInvalidationWidgetSortIndex. FWidgetProxy is currently used but will be phase out soon to remove duplication and improve performance.
...
#jira UE-99527, UETOOL-2349
[CL 14795597 by Patrick Boutot in ue5-main branch]
2020-11-20 08:38:28 -04:00
Marc Audy
50a3d7d368
Merge Release-Engine-Staging to Main @ CL# 14467590
...
This represents UE4/Main @ 14432125 + some cherrypick fixes
[CL 14468207 by Marc Audy in ue5-main branch]
2020-10-09 22:42:26 -04:00
Marcus Wassmer
3b81cf8201
Merging using //UE5/Main_to_//UE5/Release-Engine-Staging @14384769
...
autoresolved files
#rb none
[CL 14384911 by Marcus Wassmer in ue5-main branch]
2020-09-24 00:43:27 -04:00