Commit Graph

880 Commits

Author SHA1 Message Date
jamie dale
8abdd3b189 Fixed an assertion when shaping oddly formed RTL text
RTL text containing two different script types could sometimes lead to HarfBuzz returning non-monotonic cluster IDs, which could cause an assertion in the code that tries to count the number of graphemes and characters in each glyph.

This assertion can be prevented by moving the logic for performing that calculation to after each sub-section, as then the calculation is always bound to the correct character ranges from the source buffer.

Additionally this change prevents a transient FString being constructed by FSlateTextShaper::PerformHarfBuzzTextShaping each time it called HarfBuzzUtils::AppendStringToBuffer, as the shaper is working with a const TCHAR* rather than an FString (HarfBuzzUtils::AppendStringToBuffer now uses FStringView instead).

#jira UE-91619
[FYI] Matt.Kuhlenschmidt
#rb none

#ROBOMERGE-SOURCE: CL 12875935 in //UE4/Release-4.25/... via CL 12875938 via CL 12875940
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v681-12776863)

[CL 12875943 by jamie dale in Main branch]
2020-04-16 21:12:57 -04:00
nick darnell
d93dea0f15 Slate - Additional validation about every material we paint with to attempt to prevent GCed materials or materials we can't stop from being collected being drawn with.
#ROBOMERGE-SOURCE: CL 12488116 via CL 12488120 via CL 12488122 via CL 12488123
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v673-12478461)

[CL 12488124 by nick darnell in Main branch]
2020-03-30 13:04:53 -04:00
danny couture
a12b0e6984 Optimize Slate texture loading during startup
- 450ms to 111ms in warm
  - 2.5s to 378ms in cold (No AV exclusions)
  - 1.4s to 128ms in cold (AV exclusions on png files)

  - Cold cache = Cleared standby pages, mostly equivalent to a reboot
  - Warm cache = 2nd run of 2 consecutive runs

#rnx
#rb Matt.Kuhlenschmidt

#ROBOMERGE-OWNER: danny.couture
#ROBOMERGE-AUTHOR: danny.couture
#ROBOMERGE-SOURCE: CL 12486169 via CL 12486621 via CL 12486623 via CL 12486624
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v673-12478461)

[CL 12487559 by danny couture in Main branch]
2020-03-30 12:12:59 -04:00
kenzo terelst
9526926959 Check if fullscreen is supported when trying to swap to fullscreen in SlateRenderer (fixed D3D errors which could end up with Device lost crashes)
#jira UE-86062
#rb Emil.Persson

#ROBOMERGE-SOURCE: CL 12470734 in //UE4/Release-4.25/... via CL 12470736 via CL 12470747
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v672-12450963)

[CL 12470765 by kenzo terelst in Main branch]
2020-03-27 12:09:48 -04:00
nick darnell
319b1819f9 Slate - Adding additional SlateDebugger information for when the cursor changes, and who changes it.
#ROBOMERGE-SOURCE: CL 12189769 via CL 12190844 via CL 12196422
#ROBOMERGE-BOT: (v662-12191386)

[CL 12196756 by nick darnell in Main branch]
2020-03-16 09:03:39 -04:00
brooke hubert
0b387f3e7e Integrating CLs 11310084, 11341910, 11736184, 11751405 from //UE4/Dev-Editor
PIE sessions which launch a new standalone window no longer double render debug safe zones and all PIE options are more consistent with handling r.DebugSafeZone.XXXX cvars.

#Jira UE-89101 UE-89108 UE-87689
#rb lauren.barnes

#ROBOMERGE-SOURCE: CL 11968084 in //UE4/Release-4.25/... via CL 11968102
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v656-11643781)

[CL 11968114 by brooke hubert in Main branch]
2020-03-05 18:02:53 -05:00
matt kuhlenschmidt
4bbfdfd4aa Updated API for creating custom window title bars which will be used for future changes. Deprecated existing one
#ROBOMERGE-SOURCE: CL 11754291 via CL 11754409
#ROBOMERGE-BOT: (v656-11643781)

[CL 11867346 by matt kuhlenschmidt in Main branch]
2020-03-03 10:30:33 -05:00
lukasz furman
1a33ae7203 fixed crash on rebuilding UI invalidation path
[FYI] Nick.Darnell


#ROBOMERGE-SOURCE: CL 11459874 via CL 11459877 via CL 11459880
#ROBOMERGE-BOT: (v654-11333218)

[CL 11459881 by lukasz furman in Main branch]
2020-02-17 10:37:19 -05:00
Rolando Caloca
5b82f15def Copying //UE4/Dev-RenderPlat-Staging@11388153 to //UE4/Main
#rb none
#rnx

[CL 11388545 by Rolando Caloca in Main branch]
2020-02-12 13:27:19 -05:00
dave belanger
e81e86fb8d Remove TEXT_STYLE_NDC logs
#rb none
[FYI] Bob.Telez


#ROBOMERGE-SOURCE: CL 11307498 via CL 11307502
#ROBOMERGE-BOT: (v653-11302973)

[CL 11307504 by dave belanger in Main branch]
2020-02-10 13:21:44 -05:00
dave belanger
bf3aeb9c14 Logging to track text style NDC issue.
#rb Nick.Darnell


#ROBOMERGE-SOURCE: CL 11299792 via CL 11299795
#ROBOMERGE-BOT: (v647-11244347)

[CL 11299796 by dave belanger in Main branch]
2020-02-07 21:56:02 -05:00
josh gross
871052a863 Wiget::SetUserFocus: If we're able to set focus immediately, cancel any focus request that's waiting to be processed in the LocalPlayer's SlateOperations.
#rb [at]Dan.Hertzka



#ROBOMERGE-SOURCE: CL 11294962 via CL 11294963 via CL 11296120 via CL 11296175
#ROBOMERGE-BOT: (v647-11244347)

[CL 11296220 by josh gross in Main branch]
2020-02-07 16:36:51 -05:00
nick darnell
eaf38dd043 Slate - When prepassing children, if a child is collapsed we invalidate its prepass (so that we know we need to do it later), and we give that child its new scale, so that when it does prepass it prepasses when it becomes visible, with the new layout scale it missed because it was collapsed, this corrects issues with layout scale changing and collapsed text fields missing out on the new scale for prepass/CDS purposes - usually revealing themselves in rich text now correctly laying out, large gaps between blocks, or several overlapping blocks.
Slate - Deprecating float GetRelativeLayoutScale(const FSlotBase& Child, float LayoutScaleMultiplier), Long Live float GetRelativeLayoutScale(const int32 ChildIndex, float LayoutScaleMultiplier), you must also set bHasRelativeLayoutScale to true in your constructor for your SWidget if you need this function called.  This removes 2 virtual calls from almost every widget's prepass, and only now requires 1 for every widget that needs to implement GetRelativeLayoutScale, which very few actually do.

Matt.Kuhlenschmidt


#ROBOMERGE-SOURCE: CL 11291134 via CL 11291179 via CL 11291189 via CL 11291196
#ROBOMERGE-BOT: (v647-11244347)

[CL 11291217 by nick darnell in Main branch]
2020-02-07 09:51:26 -05:00
marc audy
ee7b1c0410 Allow slate events to bind lambdas which take additional parameters.
Add a move function for assigning a delegate to a slate event.
#jira
#rb Matt.Kuhlenschmidt, Steve.Robb


#ROBOMERGE-SOURCE: CL 11219715 via CL 11219751
#ROBOMERGE-BOT: (v644-11213502)

[CL 11241060 by marc audy in Main branch]
2020-02-04 22:20:51 -05:00
Chris Gagnon
c3f9a18841 Merge from Main in prep for Dev-Tools-Staging Copy up
#rb none

[CL 11221539 by Chris Gagnon in Dev-Tools-Staging branch]
2020-02-04 17:00:31 -05:00
Rolando Caloca
f63a3e857e Merging //UE4/Main@11178322 to Dev-RenderPlat-Staging
#rnx
#rb none

[CL 11195678 by Rolando Caloca in Dev-RenderPlat-Staging branch]
2020-01-31 10:34:10 -05:00
Jason Stasik
ed4ac80586 Revert 10883777, clamping negative scales in Slate layouts
#jira UE-87712
#rb none
#fyi vincent.gauthier

[CL 11189019 by Jason Stasik in Dev-Tools-Staging branch]
2020-01-30 18:00:40 -05:00
Chris Gagnon
76c6bcbfeb UE4 Main merged to Dev-Tools-Staging at CL 11164391
#rb none

[CL 11171981 by Chris Gagnon in Dev-Tools-Staging branch]
2020-01-29 20:39:37 -05:00
jordan cristiano
a3aa978f36 Changed spammy "Resetting cached element data" from a normal log to Verbose.
#rb andrew.ladenberger


#ROBOMERGE-SOURCE: CL 11162764 via CL 11162767 via CL 11162770
#ROBOMERGE-BOT: (v640-11091645)

[CL 11164921 by jordan cristiano in Main branch]
2020-01-29 14:14:26 -05:00
Max Chen
b4881d8bf8 Copying //UE4/Dev-Editor to Dev-Tools-Staging (//UE4/Dev-Tools-Staging) @11123875
#rb none
#jira none

[CL 11123880 by Max Chen in Dev-Tools-Staging branch]
2020-01-27 20:11:15 -05:00
nick darnell
12f10b22eb Slate - Faster and safer draw element submitting for invalidation painting. This should fix issues with difficult to reproduce crashes involving cached element lists that have been deleted but are being accessed (suspected).
Improved CSV stats we're tracking for cached elements.  This version should fix the issue with weakptrs getting corrupted.

Removing memstacks and using inline allocators with enough slack, the memstacks don't work as expected over multiple frames.

Cleaning up cached lists from the new array when the corresponding widget's handle is cleaned up.

#author Matt.Kuhlenschmidt
#editor Nick.Darnell
#rb Nick.Darnell
[FYI] Matt.Kuhlenschmidt, Andrew.Ladenberger




#ROBOMERGE-SOURCE: CL 11068394 via CL 11068413 via CL 11068420
#ROBOMERGE-BOT: (v637-11041722)

[CL 11068429 by nick darnell in Main branch]
2020-01-20 16:30:39 -05:00
JeanMichel Dignard
7130d293f2 Merging main @ cl 11028482
#rb none
#rnx

[CL 11029060 by JeanMichel Dignard in Dev-Tools-Staging branch]
2020-01-16 10:24:38 -05:00
bob tellez
2f797bdf39 Back out changelist 10981122. Client crash
[FYI] Nick.Darnell


#ROBOMERGE-SOURCE: CL 11025062 via CL 11025214 via CL 11025315
#ROBOMERGE-BOT: (v633-10983880)

[CL 11025423 by bob tellez in Main branch]
2020-01-16 00:43:13 -05:00
jamie dale
0e7bcbbe75 Fixed fonts that contain both scalable and bitmap font data incorrectly applying extra scale to advance and kerning data
#jira UE-86704
#rb Matt.Kuhlenschmidt
#lockdown Cristina.Riveron

#ROBOMERGE-SOURCE: CL 10985791 in //UE4/Release-4.24/...
#ROBOMERGE-BOT: RELEASE (Release-4.24 -> Main) (v632-10940481)

[CL 10985793 by jamie dale in Main branch]
2020-01-14 15:06:26 -05:00
JeanMichel Dignard
99b55fb883 Merged main @ cl 10981486
#rb none
#rnx

[CL 10985598 by JeanMichel Dignard in Dev-Tools-Staging branch]
2020-01-14 14:45:07 -05:00