Commit Graph

86 Commits

Author SHA1 Message Date
nicholas howe
bf6c97a19f FSlateInvalidationRoot::PaintFastPath_UpdateNextWidget returns true when the widget it is updating needs painting.
#jira UE-147724
#rb patrick.boutot
#preflight 6245deede434babd8af68f21

#ROBOMERGE-AUTHOR: nicholas.howe
#ROBOMERGE-SOURCE: CL 19575678 via CL 19577897 via CL 19578889 via CL 19579168
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v938-19570697)

[CL 19580668 by nicholas howe in ue5-main branch]
2022-03-31 19:26:24 -04:00
nicholas howe
a94fbd1aff Fix a bug where a volatile widget redraws at an offset within its retainer box, by caching the view offset it was painted with on the slow path and reusing it on the fast path.
#jira UE-147231
#rb patrick.boutot
#preflight 623def94361866e20fdfc878

#ROBOMERGE-AUTHOR: nicholas.howe
#ROBOMERGE-SOURCE: CL 19516539 via CL 19517660 via CL 19517679 via CL 19517697
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v937-19513599)

[CL 19519486 by nicholas howe in ue5-main branch]
2022-03-25 18:28:47 -04:00
patrick boutot
9d38d6eea0 Slate: Update the LayerId in invalidation when the widget painted more elements than the previous paint. Disable by default. You can enable it with the cvar `Slate.InvalidationList.EnableReindexLayerId. This occurs when a child-widget was collapsed and is now visible. The sibling of the widget may have the same LayerId as the child-widget. That would affect how the elements are rendered.
#jira UE-136046, UE-106162
#rb vincent.gauthier
#preglight 61f94bb6a6632a34f372935a

#ROBOMERGE-AUTHOR: patrick.boutot
#ROBOMERGE-SOURCE: CL 18810476 via CL 18810478 via CL 18810490 via CL 18821442 via CL 18822953
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v910-18824042)

[CL 18825126 by patrick boutot in ue5-main branch]
2022-02-02 08:23:10 -05:00
patrick boutot
8cd8502185 Slate: Add test to see if widgets have a valid LayerId.
#rb vincent.gauthier
#preflight 61d6ebac932a02483cd2e7d3

#ROBOMERGE-AUTHOR: patrick.boutot
#ROBOMERGE-SOURCE: CL 18532890 via CL 18532895 via CL 18532903 via CL 18533472 via CL 18533989
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18534183 by patrick boutot in ue5-release-engine-test branch]
2022-01-06 14:19:18 -05:00
patrick boutot
e0000a5a02 Slate: Add debug functionnality to the InvalidationWidgetList. Use CVar instead of the reference variable when disabling an InvalidationRoot test.
#rb vincent.gauthier
#preflight 61d6f3584c252480ca275bcb

#ROBOMERGE-AUTHOR: patrick.boutot
#ROBOMERGE-SOURCE: CL 18531793 via CL 18531811 via CL 18531814 via CL 18532301 via CL 18533883
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18534091 by patrick boutot in ue5-release-engine-test branch]
2022-01-06 14:15:32 -05:00
Marc Audy
0c3be2b6ad Merge Release-Engine-Staging to Test @ CL# 18240298
[CL 18241953 by Marc Audy in ue5-release-engine-test branch]
2021-11-18 14:37:34 -05:00
aurel cordonnier
fc542f6cfd Merge from Release-Engine-Staging @ 18081189 to Release-Engine-Test
This represents UE4/Main @18073326, Release-5.0 @18081140 and Dev-PerfTest @18045971

[CL 18081471 by aurel cordonnier in ue5-release-engine-test branch]
2021-11-07 23:43:01 -05:00
aurel cordonnier
a6e741e007 Merge from Release-Engine-Staging @ 17915896 to Release-Engine-Test
This represents UE4/Main @17911760, Release-5.0 @17915875 and Dev-PerfTest @17914035

[CL 17918595 by aurel cordonnier in ue5-release-engine-test branch]
2021-10-25 20:05:28 -04:00
aurel cordonnier
a12d56ff31 Merge from Release-Engine-Staging @ 17791557 to Release-Engine-Test
This represents UE4/Main @17774255, Release-5.0 @17791557 and Dev-PerfTest @17789485

[CL 17794212 by aurel cordonnier in ue5-release-engine-test branch]
2021-10-12 21:21:22 -04:00
patrick boutot
5b7b62ffd1 Slate: Fix bad merge. Assign GSlateIsOnFastProcessInvalidation on FSlateInvalidationRoot::ProcessInvalidation.
#rb none

#ROBOMERGE-AUTHOR: patrick.boutot
#ROBOMERGE-SOURCE: CL 17753505 via CL 17753529 via CL 17753539 via CL 17753545 via CL 17758230
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v879-17706426)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17758269 by patrick boutot in ue5-release-engine-test branch]
2021-10-07 22:26:10 -04:00
patrick boutot
9e71256897 SlateInsight: Add timing to Widget Update
#rb none
#preflight 615f2757f0ee840001c30af7

#ROBOMERGE-AUTHOR: patrick.boutot
#ROBOMERGE-SOURCE: CL 17753497 via CL 17753522 via CL 17753535 via CL 17753543 via CL 17758226
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v879-17706426)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17758268 by patrick boutot in ue5-release-engine-test branch]
2021-10-07 22:26:03 -04:00
aurel cordonnier
7f517562d5 Merge from Release-Engine-Staging @ 17438845 to Release-Engine-Test
This represents UE4/Main @17430120 and Dev-PerfTest @17437669

[CL 17439044 by aurel cordonnier in ue5-release-engine-test branch]
2021-09-06 12:23:53 -04:00
patrick boutot
bdddc321aa Slate: Prevent access to an invalided widget after we process its child order.
[FYI] aurel.cordonnier

#ROBOMERGE-SOURCE: CL 16882761 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16882766 by patrick boutot in ue5-release-engine-test branch]
2021-07-19 08:45:55 -04:00
aurel cordonnier
0d424a6583 Temporary workaround: demoting assert to warning to unblock FastCook build tests.
[FYI] Patrick.Boutot
#rnx

#ROBOMERGE-SOURCE: CL 16878388 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16878389 by aurel cordonnier in ue5-release-engine-test branch]
2021-07-17 15:40:43 -04:00
patrick boutot
b77910dde2 Slate: Add check to see if the InvalidationWidget is still valid after a child order. Add debug command to verify that relationship between widgets parent/children.
#jira UE-119316
#rb vincent.gauthier
#preflight 60f043cacaf0590001d99ab9

#ROBOMERGE-SOURCE: CL 16863185 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16863208 by patrick boutot in ue5-release-engine-test branch]
2021-07-15 11:53:04 -04:00
patrick boutot
c68b8db743 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.
#ROBOMERGE-SOURCE: CL 16653867 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v833-16641396)

[CL 16653870 by patrick boutot in ue5-release-engine-test branch]
2021-06-13 10:26:15 -04:00
patrick boutot
99f73e8cf2 Slate: Split the Invalidation update loop for better performance tracking.
#preflight 60c108e31ab0310001892cca

#ROBOMERGE-SOURCE: CL 16612339 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v828-16531559)

[CL 16612364 by patrick boutot in ue5-release-engine-test branch]
2021-06-09 16:50:02 -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
7c759e1ee6 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

#ROBOMERGE-SOURCE: CL 16314926 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v804-16311228)

[CL 16314952 by ionut matasaru in ue5-release-engine-test branch]
2021-05-13 13:13:34 -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