2019-12-26 14:45:42 -05:00
// Copyright Epic Games, Inc. All Rights Reserved.
2015-11-04 16:14:13 -05:00
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3209340 on 2016/11/23 by Ben.Marsh
Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h.
Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms.
* Every header now includes everything it needs to compile.
* There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first.
* There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h.
* Every .cpp file includes its matching .h file first.
* This helps validate that each header is including everything it needs to compile.
* No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more.
* You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there.
* There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible.
* No engine code explicitly includes a precompiled header any more.
* We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies.
* PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files.
Tool used to generate this transform is at Engine\Source\Programs\IncludeTool.
[CL 3209342 by Ben Marsh in Main branch]
2016-11-23 15:48:37 -05:00
# include "Framework/Text/ShapedTextCache.h"
# include "Fonts/FontCache.h"
# include "Internationalization/IBreakIterator.h"
# include "Internationalization/BreakIterator.h"
2015-11-04 16:14:13 -05:00
FShapedGlyphSequencePtr FShapedTextCache : : FindShapedText ( const FCachedShapedTextKey & InKey ) const
{
FShapedGlyphSequencePtr ShapedText = CachedShapedText . FindRef ( InKey ) ;
if ( ShapedText . IsValid ( ) & & ! ShapedText - > IsDirty ( ) )
{
return ShapedText ;
}
return nullptr ;
}
2016-01-22 08:13:18 -05:00
FShapedGlyphSequenceRef FShapedTextCache : : AddShapedText ( const FCachedShapedTextKey & InKey , const TCHAR * InText )
2015-11-04 16:14:13 -05:00
{
Copying //UE4/Dev-Main to //UE4/Main (Source: //Portal/Main/Engine @ 4247640)
#rb none
#lockdown Nick.Penwarden
============================
MAJOR FEATURES & CHANGES
============================
Change 4247640 by Daniel.Lamb
BuildPatchTool: PackageChunks: Fixed issue with filenames not being set for chunkdbs in particular cases where the chunkdbs were small.
Change 4247246 by Leigh.Swift
BuildPatchTool: Adding support to BPT PackageChunks to filter by tagsets, and also split chunkdb output by them too.
Change 4173518 by Wes.Fudala
WebBrowser: Adding support to enable allowing net security expirations.
Change 4102451 by Leigh.Swift
BuildPatchTool: PackageChunks: Adding tool mode JSON output for listing created chunkdb files.
Change 4099951 by Leigh.Swift
BuildPatchTool: PackageChunks: Adding PrevManifestFile commandline support to BPT PackageChunks mode, allowing us to generate chunkdbs that only cover data required to perform an update.
Change 4051406 by Leigh.Swift
BuildPatchServices: Update default number of simultaneous downloads for an installer to 16 which is now well proven in the wild.
Change 4036807 by Leigh.Swift
BuildPatchServices: Added new message type for receiving updates about which files have been touched by the installation.
BuildPatchServices: Cloud enumeration is now threaded to improve speed.
Change 4036477 by Richard.Fawcett
Thirdparty: AWSSDK: Update AWS SDK to version 3.3 as speculative fix for object is used after being disposed error.
Confirmed this exception is being raised from within the AWS SDK, and _not_ in Epic code.
Advice by Amazon on AWS forums for people experiencing this exception is always to update to the latest version of the SDK in the first instance.
Change 3922493 by Justin.Sargent
Runtime: Added shortcircuit support to the ExpressionParser. More documentation to come.
AgreementExpressionEvaluator has been updated to use the shortcircuit logic so it now processes expressions lef to right as expected in all cases.
AgreementExpressionEvaluator was also updated to perform evaluation as a two pass system. The tow pass solution prevents over prompting eulas in certain scenarios where the expression would ultimately resolve true without them.
Change 3983713 by Barnabas.McManners
BuildPatchServices: Fix for verification logging error counts for unique runs. Solved the issue by using an external cache of the errors encountered each run to deduct from the total. Reporting only the delta.
Change 3966915 by Wes.Fudala
WebBrowser: CEF: Potential fix for a rare issue encountered when we attempting to release resources outside of the game thread.
Change 3955168 by Justin.Sargent
BuildPatchServices: Updated primary messaging of overall install status to now display Updating when patching an existing installation rather than Installing.
Change 3954610 by Leigh.Swift
BuildPatchServices: Fixing issue with Cloud Chunk Source which would erroneously conclude that it needed to re-download a chunk due to external system failure.
There is now an explicit concept of 'lost chunk' which is tracked and bubbled up by the system errors that cause the loss in the first place, so that each source knows exactly when it should be required to retrieve a chunk that it had already retrieved previously. Being explicit, these lost chunks can also now contribute to the total download required stat.
Also fixing some tracking that was missing to update the total download required stat if a local Install Chunk Source failed to load data from the files on disk and so these chunks needed to be additionally downloaded.
Change 3947928 by Chad.Garyet
UAT: Changing commandutils to attempt to find the Win8.1sdk signtool before the win10 one. There's currently a bug related to vs2017/server2012r2/win10sdk signtool that causes it to exit with an undefined error when signing from a service account. Using the win8.1sdk circumvents this issue.
Change 3942776 by Rob.Cannaday
Http: Fix for Mac sending up duplicate header strings
Change 3940306 by Leigh.Swift
BuildPatchServices: Refactor to isolate CoreUObject dependency and be able to compile out usage.
Change 3936655 by Justin.Sargent
Slate: Changed the invalid fontcache ensure in ShapedTextCache from always to only once to reduce ensure spamChange 3917840 by Leigh.Swift
BuildPatchTool: DiffManifests mode now also saves info for New, Removed, Changed, and Unchanged file to the output json file.
Change 3911756 by Justin.Sargent
WebBrowser: SWebBrowserView now ensures that it has a valid pointer to it's parent window in it's onpaint to avoid issues with the first frame being scaled incorrectly due to not being able to access the parent windows dpi scaling.
Change 3906670 by Justin.Sargent
Slate: Change the ShapedTextCache to hold a weakptr to the Slate FontCache instead of a reference. This will allow it to detect if the FontCache has become invalid since it was linked with the ShapedTextCache, thus making it able to avoid crashing.
Change 3889008 by Justin.Sargent
StandaloneRenderer: Made the SlateD3DRenderingPolicy more resilient to graphics device errors.
Change 3886969 by Justin.Sargent
StandaloneRenderer:Changed SlateD3DConstantBuffer to no longer check on a D3DDevice failure and instead soft fail, so the application can go through the process of attempting to re-establish the D3DDevice.
Change 3886960 by Justin.Sargent
WebBrowser: Made CEFWebBrowserWindow more resilient to issues with creating textures.
Change 3855821 by Barnabas.McManners
BuildPatchServices: Added logging of the configuration to the start of all installs.
Change 3839245 by Wes.Fudala
WebBrowser: Adding support for web browser drag regions. These are areas of a page tagged with -webkit-app-region: drag or -webkit-app-region: no-drag. The application can now pass a handler function to the browser to handle window drag events. This handler will be called if the browser detects mouse drag events inside of a tagged drag region.
Change 3835225 by Jacob.Hedges
Slate: Fix for SScrollBarTrack size issue
Change 3824320 by Wes.Fudala
WebBrowser: Fix for reported deadlock in WebBrowserSingleton. Associated with github pull request #4303.
#jira UE-53420 GitHub 4330 : Fixed deadlock in FWebBrowserSingleton
#4303
Change 3811191 by Barnabas.McManners
BuildPatchServices: Expanded MF01-X into MF01-X-X and MF02-X where X is the os error codes
Change 3807662 by Barnabas.McManners
BuildPatchServices: Broke down build verification errors into 4 new cases.
Change 3805698 by Leigh.Swift
BuildPatchServices: Speculative fixes for Unit test crashes / failures.
Change 3804175 by Wes.Fudala
ThirdParty: CEF: Adding browser locale pak files for es-MX, and es-ES as the typical mapping/fallback does not seem functional on mac browser. They are copies of es_419 and es respectively.
Change 3786628 by Leigh.Swift
WebBrowser: Exposing ability to customise tool tip widgets produced from SWebBrowserView.
Change 3775678 by Richard.Fawcett
BuildPatchServices: Allow a Prerequisite install only mode.
Change 3774365 by Justin.Sargent
BuildPatchServices: Updated Build Stat report that is logged after every installation to use FText::AsMemory instead of the UnitConversion logic, and now it outputs multiple unit types for convenience.
Change 3774361 by Justin.Sargent
Http: Remove Pragma: no-cache header from libcurl requests
Change 3774258 by Leigh.Swift
BuildPatchServices: Fix for destructive patch destroy files that contain useful data.
Change 3766156 by Barnabas.McManners
Http: Various lower changes to enable Hardware testing and to enable proxy configuration.
Change 3756723 by Leigh.Swift
BuildPatchServices: Hooking up disk chunk store operation states to the installer statistics.
BuildPatchServices: Memory chunk store statistics fix for booted chunks that have been reloaded.
Change 3756320 by Rob.Cannaday
Http: Add default headers added to every HTTP request.
Change 3741274 by Wes.Fudala
WebBrowser: Release CEF related references prior to CEF shutdown.
Change 3738003 by Leigh.Swift
BuildPatchServices: Fix-ups for install stats when failures are occurring
NumFilesOutdated now only set on first run, so it is not set to the number of files that are retried.
Total downloaded data and total download requirement stats fixed up for runtime as well as final values.
Initial chunk counters now only set for first run.
Moving the GetBytesDownloaded api from cloud source to download service so that it correctly accumulates.
InstallSource was multiply attempting, and counting, recycle failures, throwing that stat out of proportion.
Change 3729851 by Barnabas.McManners
BuildPatchServices: Changed the installer's MoveFile method to default to not retry. We currently only have uses of move file which already handle retry.
Change 3725611 by Leigh.Swift
Core: FText::AsMemory - Fix for numerical edges.
Added unit tests to check all edges up to full uint64 range.
Change 3725127 by Leigh.Swift
BuildPatchServices: ManifestDiff: Correcting string format padding for new data size output uints.
Change 3725126 by Leigh.Swift
Core: FText::AsMemory fix. Shifting (equivalent of divide 2 per shift) does not work for calculating SI units which are base 10.
Change 3721926 by Justin.Sargent
ThirdParty: LibCurl update performed by Simon Tourangeau.
We now have 100MB/sec download speed with libcurl on Win64, compared to 3MB/sec originally
Change 3700670 by Michael.Trepka
SlateReflector: Fixed mouse click highlighting in Widget Reflector's Demo Mode in high DPI
Change 3697526 by Leigh.Swift
BuildPatchServices: Exposing a suite of runtime statistics for BuildPatchInstallers.
Change 3686439 by Leigh.Swift
BuildPatchServices: Stop installers from always logging a shutdown error on destruction. This should only occur if the installer is actually running.
Change 3684747 by Leigh.Swift
BuildPatchTool: Fix file ignore list to parse using platform agnostic method.
Change 3643038 by Michael.Trepka
Core: Don't defer Cocoa calls in FMacWindow Show and Hide to make sure both actions complete before we exit these functions. This solves the problem with the blocks being called after window was destroyed.
Change 3639692 by Michael.Trepka
Fixes for a couple of issues found by address sanitizer
Change 3625568 by Leigh.Swift
BuildPatchServices: Fixing numerical limits problem with double -> uint64 in FStatsCollector::SecondsToCycles().
Change 3617948 by Leigh.Swift
BuildPatchServices: Disk space requirement can now be lower when patching if destructive patch mode is enabled. This mode will delete existing old files once they are not needed.
BuildPatchServices: Adding new installation mode setting on installer config.
BuildPatchServices: If destructive installation mode is enabled, the file constructor will delete old existing files after completing the new one.
BuildPatchServices: Adding missing file path length check for install location to cover situation where staging directory is outside the install directory.
Change 3593632 by Leigh.Swift
BuildPatchServices: Adding additional installation tracking to BuildPatchServices. See Engine/Source/Runtime/Online/BuildPatchServices/Public/Interfaces/IBuildInstaller.h
[CL 4273704 by Leigh Swift in Main branch]
2018-08-09 17:55:56 -04:00
const TSharedPtr < FSlateFontCache > FontCache = FontCachePtr . Pin ( ) ;
if ( ! FontCache . IsValid ( ) )
{
return MakeShareable ( new FShapedGlyphSequence ( ) ) ;
}
FShapedGlyphSequenceRef ShapedText = FontCache - > ShapeBidirectionalText (
2015-11-04 16:14:13 -05:00
InText ,
InKey . TextRange . BeginIndex ,
InKey . TextRange . Len ( ) ,
2016-01-22 08:13:18 -05:00
InKey . FontInfo ,
2015-11-04 16:14:13 -05:00
InKey . Scale ,
InKey . TextContext . BaseDirection ,
InKey . TextContext . TextShapingMethod
) ;
return AddShapedText ( InKey , ShapedText ) ;
}
2016-01-22 08:13:18 -05:00
FShapedGlyphSequenceRef FShapedTextCache : : AddShapedText ( const FCachedShapedTextKey & InKey , const TCHAR * InText , const TextBiDi : : ETextDirection InTextDirection )
2015-11-04 16:14:13 -05:00
{
Copying //UE4/Dev-Main to //UE4/Main (Source: //Portal/Main/Engine @ 4247640)
#rb none
#lockdown Nick.Penwarden
============================
MAJOR FEATURES & CHANGES
============================
Change 4247640 by Daniel.Lamb
BuildPatchTool: PackageChunks: Fixed issue with filenames not being set for chunkdbs in particular cases where the chunkdbs were small.
Change 4247246 by Leigh.Swift
BuildPatchTool: Adding support to BPT PackageChunks to filter by tagsets, and also split chunkdb output by them too.
Change 4173518 by Wes.Fudala
WebBrowser: Adding support to enable allowing net security expirations.
Change 4102451 by Leigh.Swift
BuildPatchTool: PackageChunks: Adding tool mode JSON output for listing created chunkdb files.
Change 4099951 by Leigh.Swift
BuildPatchTool: PackageChunks: Adding PrevManifestFile commandline support to BPT PackageChunks mode, allowing us to generate chunkdbs that only cover data required to perform an update.
Change 4051406 by Leigh.Swift
BuildPatchServices: Update default number of simultaneous downloads for an installer to 16 which is now well proven in the wild.
Change 4036807 by Leigh.Swift
BuildPatchServices: Added new message type for receiving updates about which files have been touched by the installation.
BuildPatchServices: Cloud enumeration is now threaded to improve speed.
Change 4036477 by Richard.Fawcett
Thirdparty: AWSSDK: Update AWS SDK to version 3.3 as speculative fix for object is used after being disposed error.
Confirmed this exception is being raised from within the AWS SDK, and _not_ in Epic code.
Advice by Amazon on AWS forums for people experiencing this exception is always to update to the latest version of the SDK in the first instance.
Change 3922493 by Justin.Sargent
Runtime: Added shortcircuit support to the ExpressionParser. More documentation to come.
AgreementExpressionEvaluator has been updated to use the shortcircuit logic so it now processes expressions lef to right as expected in all cases.
AgreementExpressionEvaluator was also updated to perform evaluation as a two pass system. The tow pass solution prevents over prompting eulas in certain scenarios where the expression would ultimately resolve true without them.
Change 3983713 by Barnabas.McManners
BuildPatchServices: Fix for verification logging error counts for unique runs. Solved the issue by using an external cache of the errors encountered each run to deduct from the total. Reporting only the delta.
Change 3966915 by Wes.Fudala
WebBrowser: CEF: Potential fix for a rare issue encountered when we attempting to release resources outside of the game thread.
Change 3955168 by Justin.Sargent
BuildPatchServices: Updated primary messaging of overall install status to now display Updating when patching an existing installation rather than Installing.
Change 3954610 by Leigh.Swift
BuildPatchServices: Fixing issue with Cloud Chunk Source which would erroneously conclude that it needed to re-download a chunk due to external system failure.
There is now an explicit concept of 'lost chunk' which is tracked and bubbled up by the system errors that cause the loss in the first place, so that each source knows exactly when it should be required to retrieve a chunk that it had already retrieved previously. Being explicit, these lost chunks can also now contribute to the total download required stat.
Also fixing some tracking that was missing to update the total download required stat if a local Install Chunk Source failed to load data from the files on disk and so these chunks needed to be additionally downloaded.
Change 3947928 by Chad.Garyet
UAT: Changing commandutils to attempt to find the Win8.1sdk signtool before the win10 one. There's currently a bug related to vs2017/server2012r2/win10sdk signtool that causes it to exit with an undefined error when signing from a service account. Using the win8.1sdk circumvents this issue.
Change 3942776 by Rob.Cannaday
Http: Fix for Mac sending up duplicate header strings
Change 3940306 by Leigh.Swift
BuildPatchServices: Refactor to isolate CoreUObject dependency and be able to compile out usage.
Change 3936655 by Justin.Sargent
Slate: Changed the invalid fontcache ensure in ShapedTextCache from always to only once to reduce ensure spamChange 3917840 by Leigh.Swift
BuildPatchTool: DiffManifests mode now also saves info for New, Removed, Changed, and Unchanged file to the output json file.
Change 3911756 by Justin.Sargent
WebBrowser: SWebBrowserView now ensures that it has a valid pointer to it's parent window in it's onpaint to avoid issues with the first frame being scaled incorrectly due to not being able to access the parent windows dpi scaling.
Change 3906670 by Justin.Sargent
Slate: Change the ShapedTextCache to hold a weakptr to the Slate FontCache instead of a reference. This will allow it to detect if the FontCache has become invalid since it was linked with the ShapedTextCache, thus making it able to avoid crashing.
Change 3889008 by Justin.Sargent
StandaloneRenderer: Made the SlateD3DRenderingPolicy more resilient to graphics device errors.
Change 3886969 by Justin.Sargent
StandaloneRenderer:Changed SlateD3DConstantBuffer to no longer check on a D3DDevice failure and instead soft fail, so the application can go through the process of attempting to re-establish the D3DDevice.
Change 3886960 by Justin.Sargent
WebBrowser: Made CEFWebBrowserWindow more resilient to issues with creating textures.
Change 3855821 by Barnabas.McManners
BuildPatchServices: Added logging of the configuration to the start of all installs.
Change 3839245 by Wes.Fudala
WebBrowser: Adding support for web browser drag regions. These are areas of a page tagged with -webkit-app-region: drag or -webkit-app-region: no-drag. The application can now pass a handler function to the browser to handle window drag events. This handler will be called if the browser detects mouse drag events inside of a tagged drag region.
Change 3835225 by Jacob.Hedges
Slate: Fix for SScrollBarTrack size issue
Change 3824320 by Wes.Fudala
WebBrowser: Fix for reported deadlock in WebBrowserSingleton. Associated with github pull request #4303.
#jira UE-53420 GitHub 4330 : Fixed deadlock in FWebBrowserSingleton
#4303
Change 3811191 by Barnabas.McManners
BuildPatchServices: Expanded MF01-X into MF01-X-X and MF02-X where X is the os error codes
Change 3807662 by Barnabas.McManners
BuildPatchServices: Broke down build verification errors into 4 new cases.
Change 3805698 by Leigh.Swift
BuildPatchServices: Speculative fixes for Unit test crashes / failures.
Change 3804175 by Wes.Fudala
ThirdParty: CEF: Adding browser locale pak files for es-MX, and es-ES as the typical mapping/fallback does not seem functional on mac browser. They are copies of es_419 and es respectively.
Change 3786628 by Leigh.Swift
WebBrowser: Exposing ability to customise tool tip widgets produced from SWebBrowserView.
Change 3775678 by Richard.Fawcett
BuildPatchServices: Allow a Prerequisite install only mode.
Change 3774365 by Justin.Sargent
BuildPatchServices: Updated Build Stat report that is logged after every installation to use FText::AsMemory instead of the UnitConversion logic, and now it outputs multiple unit types for convenience.
Change 3774361 by Justin.Sargent
Http: Remove Pragma: no-cache header from libcurl requests
Change 3774258 by Leigh.Swift
BuildPatchServices: Fix for destructive patch destroy files that contain useful data.
Change 3766156 by Barnabas.McManners
Http: Various lower changes to enable Hardware testing and to enable proxy configuration.
Change 3756723 by Leigh.Swift
BuildPatchServices: Hooking up disk chunk store operation states to the installer statistics.
BuildPatchServices: Memory chunk store statistics fix for booted chunks that have been reloaded.
Change 3756320 by Rob.Cannaday
Http: Add default headers added to every HTTP request.
Change 3741274 by Wes.Fudala
WebBrowser: Release CEF related references prior to CEF shutdown.
Change 3738003 by Leigh.Swift
BuildPatchServices: Fix-ups for install stats when failures are occurring
NumFilesOutdated now only set on first run, so it is not set to the number of files that are retried.
Total downloaded data and total download requirement stats fixed up for runtime as well as final values.
Initial chunk counters now only set for first run.
Moving the GetBytesDownloaded api from cloud source to download service so that it correctly accumulates.
InstallSource was multiply attempting, and counting, recycle failures, throwing that stat out of proportion.
Change 3729851 by Barnabas.McManners
BuildPatchServices: Changed the installer's MoveFile method to default to not retry. We currently only have uses of move file which already handle retry.
Change 3725611 by Leigh.Swift
Core: FText::AsMemory - Fix for numerical edges.
Added unit tests to check all edges up to full uint64 range.
Change 3725127 by Leigh.Swift
BuildPatchServices: ManifestDiff: Correcting string format padding for new data size output uints.
Change 3725126 by Leigh.Swift
Core: FText::AsMemory fix. Shifting (equivalent of divide 2 per shift) does not work for calculating SI units which are base 10.
Change 3721926 by Justin.Sargent
ThirdParty: LibCurl update performed by Simon Tourangeau.
We now have 100MB/sec download speed with libcurl on Win64, compared to 3MB/sec originally
Change 3700670 by Michael.Trepka
SlateReflector: Fixed mouse click highlighting in Widget Reflector's Demo Mode in high DPI
Change 3697526 by Leigh.Swift
BuildPatchServices: Exposing a suite of runtime statistics for BuildPatchInstallers.
Change 3686439 by Leigh.Swift
BuildPatchServices: Stop installers from always logging a shutdown error on destruction. This should only occur if the installer is actually running.
Change 3684747 by Leigh.Swift
BuildPatchTool: Fix file ignore list to parse using platform agnostic method.
Change 3643038 by Michael.Trepka
Core: Don't defer Cocoa calls in FMacWindow Show and Hide to make sure both actions complete before we exit these functions. This solves the problem with the blocks being called after window was destroyed.
Change 3639692 by Michael.Trepka
Fixes for a couple of issues found by address sanitizer
Change 3625568 by Leigh.Swift
BuildPatchServices: Fixing numerical limits problem with double -> uint64 in FStatsCollector::SecondsToCycles().
Change 3617948 by Leigh.Swift
BuildPatchServices: Disk space requirement can now be lower when patching if destructive patch mode is enabled. This mode will delete existing old files once they are not needed.
BuildPatchServices: Adding new installation mode setting on installer config.
BuildPatchServices: If destructive installation mode is enabled, the file constructor will delete old existing files after completing the new one.
BuildPatchServices: Adding missing file path length check for install location to cover situation where staging directory is outside the install directory.
Change 3593632 by Leigh.Swift
BuildPatchServices: Adding additional installation tracking to BuildPatchServices. See Engine/Source/Runtime/Online/BuildPatchServices/Public/Interfaces/IBuildInstaller.h
[CL 4273704 by Leigh Swift in Main branch]
2018-08-09 17:55:56 -04:00
const TSharedPtr < FSlateFontCache > FontCache = FontCachePtr . Pin ( ) ;
if ( ! FontCache . IsValid ( ) )
{
return MakeShareable ( new FShapedGlyphSequence ( ) ) ;
}
FShapedGlyphSequenceRef ShapedText = FontCache - > ShapeUnidirectionalText (
2015-11-04 16:14:13 -05:00
InText ,
InKey . TextRange . BeginIndex ,
InKey . TextRange . Len ( ) ,
2016-01-22 08:13:18 -05:00
InKey . FontInfo ,
2015-11-04 16:14:13 -05:00
InKey . Scale ,
InTextDirection ,
InKey . TextContext . TextShapingMethod
) ;
return AddShapedText ( InKey , ShapedText ) ;
}
FShapedGlyphSequenceRef FShapedTextCache : : AddShapedText ( const FCachedShapedTextKey & InKey , FShapedGlyphSequenceRef InShapedText )
{
CachedShapedText . Add ( InKey , InShapedText ) ;
return InShapedText ;
}
2016-01-22 08:13:18 -05:00
FShapedGlyphSequenceRef FShapedTextCache : : FindOrAddShapedText ( const FCachedShapedTextKey & InKey , const TCHAR * InText )
2015-11-04 16:14:13 -05:00
{
FShapedGlyphSequencePtr ShapedText = FindShapedText ( InKey ) ;
if ( ! ShapedText . IsValid ( ) )
{
2016-01-22 08:13:18 -05:00
ShapedText = AddShapedText ( InKey , InText ) ;
2015-11-04 16:14:13 -05:00
}
return ShapedText . ToSharedRef ( ) ;
}
2016-01-22 08:13:18 -05:00
FShapedGlyphSequenceRef FShapedTextCache : : FindOrAddShapedText ( const FCachedShapedTextKey & InKey , const TCHAR * InText , const TextBiDi : : ETextDirection InTextDirection )
2015-11-04 16:14:13 -05:00
{
FShapedGlyphSequencePtr ShapedText = FindShapedText ( InKey ) ;
if ( ! ShapedText . IsValid ( ) )
{
2016-01-22 08:13:18 -05:00
ShapedText = AddShapedText ( InKey , InText , InTextDirection ) ;
2015-11-04 16:14:13 -05:00
}
return ShapedText . ToSharedRef ( ) ;
}
2022-05-26 21:24:41 -04:00
FShapedGlyphSequenceRef FShapedTextCache : : FindOrAddOverflowEllipsisText ( const float InScale , const FShapedTextContext & InTextContext , const FSlateFontInfo & InFontInfo )
{
FCachedShapedTextKey Key = FCachedShapedTextKey ( FTextRange ( ) , InScale , InTextContext , InFontInfo ) ;
FShapedGlyphSequencePtr ShapedText = FindShapedText ( Key ) ;
if ( ShapedText )
{
return ShapedText . ToSharedRef ( ) ;
}
const TSharedPtr < FSlateFontCache > FontCache = FontCachePtr . Pin ( ) ;
if ( FontCache . IsValid ( ) )
{
return FontCache - > ShapeOverflowEllipsisText ( InFontInfo , InScale ) ;
}
return MakeShareable ( new FShapedGlyphSequence ( ) ) ;
}
2015-11-04 16:14:13 -05:00
void FShapedTextCache : : Clear ( )
{
CachedShapedText . Reset ( ) ;
}
2016-01-22 08:13:18 -05:00
FVector2D ShapedTextCacheUtil : : MeasureShapedText ( const FShapedTextCacheRef & InShapedTextCache , const FCachedShapedTextKey & InRunKey , const FTextRange & InMeasureRange , const TCHAR * InText )
2015-11-04 16:14:13 -05:00
{
// Get the shaped text for the entire run and try and take a sub-measurement from it - this can help minimize the amount of text shaping that needs to be done when measuring text
2016-01-22 08:13:18 -05:00
FShapedGlyphSequenceRef ShapedText = InShapedTextCache - > FindOrAddShapedText ( InRunKey , InText ) ;
2015-11-04 16:14:13 -05:00
TOptional < int32 > MeasuredWidth = ShapedText - > GetMeasuredWidth ( InMeasureRange . BeginIndex , InMeasureRange . EndIndex ) ;
if ( ! MeasuredWidth . IsSet ( ) )
{
FCachedShapedTextKey MeasureKey = InRunKey ;
MeasureKey . TextRange = InMeasureRange ;
// Couldn't measure the sub-range, try and measure from a shape of the specified range
2016-01-22 08:13:18 -05:00
ShapedText = InShapedTextCache - > FindOrAddShapedText ( MeasureKey , InText ) ;
2015-11-04 16:14:13 -05:00
MeasuredWidth = ShapedText - > GetMeasuredWidth ( ) ;
}
check ( MeasuredWidth . IsSet ( ) ) ;
return FVector2D ( MeasuredWidth . GetValue ( ) , ShapedText - > GetMaxTextHeight ( ) ) ;
}
2016-01-22 08:13:18 -05:00
int32 ShapedTextCacheUtil : : FindCharacterIndexAtOffset ( const FShapedTextCacheRef & InShapedTextCache , const FCachedShapedTextKey & InRunKey , const FTextRange & InTextRange , const TCHAR * InText , const int32 InHorizontalOffset )
{
Copying //UE4/Dev-Main to //UE4/Main (Source: //Portal/Main/Engine @ 4247640)
#rb none
#lockdown Nick.Penwarden
============================
MAJOR FEATURES & CHANGES
============================
Change 4247640 by Daniel.Lamb
BuildPatchTool: PackageChunks: Fixed issue with filenames not being set for chunkdbs in particular cases where the chunkdbs were small.
Change 4247246 by Leigh.Swift
BuildPatchTool: Adding support to BPT PackageChunks to filter by tagsets, and also split chunkdb output by them too.
Change 4173518 by Wes.Fudala
WebBrowser: Adding support to enable allowing net security expirations.
Change 4102451 by Leigh.Swift
BuildPatchTool: PackageChunks: Adding tool mode JSON output for listing created chunkdb files.
Change 4099951 by Leigh.Swift
BuildPatchTool: PackageChunks: Adding PrevManifestFile commandline support to BPT PackageChunks mode, allowing us to generate chunkdbs that only cover data required to perform an update.
Change 4051406 by Leigh.Swift
BuildPatchServices: Update default number of simultaneous downloads for an installer to 16 which is now well proven in the wild.
Change 4036807 by Leigh.Swift
BuildPatchServices: Added new message type for receiving updates about which files have been touched by the installation.
BuildPatchServices: Cloud enumeration is now threaded to improve speed.
Change 4036477 by Richard.Fawcett
Thirdparty: AWSSDK: Update AWS SDK to version 3.3 as speculative fix for object is used after being disposed error.
Confirmed this exception is being raised from within the AWS SDK, and _not_ in Epic code.
Advice by Amazon on AWS forums for people experiencing this exception is always to update to the latest version of the SDK in the first instance.
Change 3922493 by Justin.Sargent
Runtime: Added shortcircuit support to the ExpressionParser. More documentation to come.
AgreementExpressionEvaluator has been updated to use the shortcircuit logic so it now processes expressions lef to right as expected in all cases.
AgreementExpressionEvaluator was also updated to perform evaluation as a two pass system. The tow pass solution prevents over prompting eulas in certain scenarios where the expression would ultimately resolve true without them.
Change 3983713 by Barnabas.McManners
BuildPatchServices: Fix for verification logging error counts for unique runs. Solved the issue by using an external cache of the errors encountered each run to deduct from the total. Reporting only the delta.
Change 3966915 by Wes.Fudala
WebBrowser: CEF: Potential fix for a rare issue encountered when we attempting to release resources outside of the game thread.
Change 3955168 by Justin.Sargent
BuildPatchServices: Updated primary messaging of overall install status to now display Updating when patching an existing installation rather than Installing.
Change 3954610 by Leigh.Swift
BuildPatchServices: Fixing issue with Cloud Chunk Source which would erroneously conclude that it needed to re-download a chunk due to external system failure.
There is now an explicit concept of 'lost chunk' which is tracked and bubbled up by the system errors that cause the loss in the first place, so that each source knows exactly when it should be required to retrieve a chunk that it had already retrieved previously. Being explicit, these lost chunks can also now contribute to the total download required stat.
Also fixing some tracking that was missing to update the total download required stat if a local Install Chunk Source failed to load data from the files on disk and so these chunks needed to be additionally downloaded.
Change 3947928 by Chad.Garyet
UAT: Changing commandutils to attempt to find the Win8.1sdk signtool before the win10 one. There's currently a bug related to vs2017/server2012r2/win10sdk signtool that causes it to exit with an undefined error when signing from a service account. Using the win8.1sdk circumvents this issue.
Change 3942776 by Rob.Cannaday
Http: Fix for Mac sending up duplicate header strings
Change 3940306 by Leigh.Swift
BuildPatchServices: Refactor to isolate CoreUObject dependency and be able to compile out usage.
Change 3936655 by Justin.Sargent
Slate: Changed the invalid fontcache ensure in ShapedTextCache from always to only once to reduce ensure spamChange 3917840 by Leigh.Swift
BuildPatchTool: DiffManifests mode now also saves info for New, Removed, Changed, and Unchanged file to the output json file.
Change 3911756 by Justin.Sargent
WebBrowser: SWebBrowserView now ensures that it has a valid pointer to it's parent window in it's onpaint to avoid issues with the first frame being scaled incorrectly due to not being able to access the parent windows dpi scaling.
Change 3906670 by Justin.Sargent
Slate: Change the ShapedTextCache to hold a weakptr to the Slate FontCache instead of a reference. This will allow it to detect if the FontCache has become invalid since it was linked with the ShapedTextCache, thus making it able to avoid crashing.
Change 3889008 by Justin.Sargent
StandaloneRenderer: Made the SlateD3DRenderingPolicy more resilient to graphics device errors.
Change 3886969 by Justin.Sargent
StandaloneRenderer:Changed SlateD3DConstantBuffer to no longer check on a D3DDevice failure and instead soft fail, so the application can go through the process of attempting to re-establish the D3DDevice.
Change 3886960 by Justin.Sargent
WebBrowser: Made CEFWebBrowserWindow more resilient to issues with creating textures.
Change 3855821 by Barnabas.McManners
BuildPatchServices: Added logging of the configuration to the start of all installs.
Change 3839245 by Wes.Fudala
WebBrowser: Adding support for web browser drag regions. These are areas of a page tagged with -webkit-app-region: drag or -webkit-app-region: no-drag. The application can now pass a handler function to the browser to handle window drag events. This handler will be called if the browser detects mouse drag events inside of a tagged drag region.
Change 3835225 by Jacob.Hedges
Slate: Fix for SScrollBarTrack size issue
Change 3824320 by Wes.Fudala
WebBrowser: Fix for reported deadlock in WebBrowserSingleton. Associated with github pull request #4303.
#jira UE-53420 GitHub 4330 : Fixed deadlock in FWebBrowserSingleton
#4303
Change 3811191 by Barnabas.McManners
BuildPatchServices: Expanded MF01-X into MF01-X-X and MF02-X where X is the os error codes
Change 3807662 by Barnabas.McManners
BuildPatchServices: Broke down build verification errors into 4 new cases.
Change 3805698 by Leigh.Swift
BuildPatchServices: Speculative fixes for Unit test crashes / failures.
Change 3804175 by Wes.Fudala
ThirdParty: CEF: Adding browser locale pak files for es-MX, and es-ES as the typical mapping/fallback does not seem functional on mac browser. They are copies of es_419 and es respectively.
Change 3786628 by Leigh.Swift
WebBrowser: Exposing ability to customise tool tip widgets produced from SWebBrowserView.
Change 3775678 by Richard.Fawcett
BuildPatchServices: Allow a Prerequisite install only mode.
Change 3774365 by Justin.Sargent
BuildPatchServices: Updated Build Stat report that is logged after every installation to use FText::AsMemory instead of the UnitConversion logic, and now it outputs multiple unit types for convenience.
Change 3774361 by Justin.Sargent
Http: Remove Pragma: no-cache header from libcurl requests
Change 3774258 by Leigh.Swift
BuildPatchServices: Fix for destructive patch destroy files that contain useful data.
Change 3766156 by Barnabas.McManners
Http: Various lower changes to enable Hardware testing and to enable proxy configuration.
Change 3756723 by Leigh.Swift
BuildPatchServices: Hooking up disk chunk store operation states to the installer statistics.
BuildPatchServices: Memory chunk store statistics fix for booted chunks that have been reloaded.
Change 3756320 by Rob.Cannaday
Http: Add default headers added to every HTTP request.
Change 3741274 by Wes.Fudala
WebBrowser: Release CEF related references prior to CEF shutdown.
Change 3738003 by Leigh.Swift
BuildPatchServices: Fix-ups for install stats when failures are occurring
NumFilesOutdated now only set on first run, so it is not set to the number of files that are retried.
Total downloaded data and total download requirement stats fixed up for runtime as well as final values.
Initial chunk counters now only set for first run.
Moving the GetBytesDownloaded api from cloud source to download service so that it correctly accumulates.
InstallSource was multiply attempting, and counting, recycle failures, throwing that stat out of proportion.
Change 3729851 by Barnabas.McManners
BuildPatchServices: Changed the installer's MoveFile method to default to not retry. We currently only have uses of move file which already handle retry.
Change 3725611 by Leigh.Swift
Core: FText::AsMemory - Fix for numerical edges.
Added unit tests to check all edges up to full uint64 range.
Change 3725127 by Leigh.Swift
BuildPatchServices: ManifestDiff: Correcting string format padding for new data size output uints.
Change 3725126 by Leigh.Swift
Core: FText::AsMemory fix. Shifting (equivalent of divide 2 per shift) does not work for calculating SI units which are base 10.
Change 3721926 by Justin.Sargent
ThirdParty: LibCurl update performed by Simon Tourangeau.
We now have 100MB/sec download speed with libcurl on Win64, compared to 3MB/sec originally
Change 3700670 by Michael.Trepka
SlateReflector: Fixed mouse click highlighting in Widget Reflector's Demo Mode in high DPI
Change 3697526 by Leigh.Swift
BuildPatchServices: Exposing a suite of runtime statistics for BuildPatchInstallers.
Change 3686439 by Leigh.Swift
BuildPatchServices: Stop installers from always logging a shutdown error on destruction. This should only occur if the installer is actually running.
Change 3684747 by Leigh.Swift
BuildPatchTool: Fix file ignore list to parse using platform agnostic method.
Change 3643038 by Michael.Trepka
Core: Don't defer Cocoa calls in FMacWindow Show and Hide to make sure both actions complete before we exit these functions. This solves the problem with the blocks being called after window was destroyed.
Change 3639692 by Michael.Trepka
Fixes for a couple of issues found by address sanitizer
Change 3625568 by Leigh.Swift
BuildPatchServices: Fixing numerical limits problem with double -> uint64 in FStatsCollector::SecondsToCycles().
Change 3617948 by Leigh.Swift
BuildPatchServices: Disk space requirement can now be lower when patching if destructive patch mode is enabled. This mode will delete existing old files once they are not needed.
BuildPatchServices: Adding new installation mode setting on installer config.
BuildPatchServices: If destructive installation mode is enabled, the file constructor will delete old existing files after completing the new one.
BuildPatchServices: Adding missing file path length check for install location to cover situation where staging directory is outside the install directory.
Change 3593632 by Leigh.Swift
BuildPatchServices: Adding additional installation tracking to BuildPatchServices. See Engine/Source/Runtime/Online/BuildPatchServices/Public/Interfaces/IBuildInstaller.h
[CL 4273704 by Leigh Swift in Main branch]
2018-08-09 17:55:56 -04:00
TSharedPtr < FSlateFontCache > FontCache = InShapedTextCache - > GetFontCache ( ) ;
if ( ! FontCache . IsValid ( ) )
{
return INDEX_NONE ;
}
2016-01-22 08:13:18 -05:00
// Get the shaped text for the entire run and try and take a sub-measurement from it - this can help minimize the amount of text shaping that needs to be done when measuring text
FShapedGlyphSequenceRef ShapedText = InShapedTextCache - > FindOrAddShapedText ( InRunKey , InText ) ;
Copying //UE4/Dev-Main to //UE4/Main (Source: //Portal/Main/Engine @ 4247640)
#rb none
#lockdown Nick.Penwarden
============================
MAJOR FEATURES & CHANGES
============================
Change 4247640 by Daniel.Lamb
BuildPatchTool: PackageChunks: Fixed issue with filenames not being set for chunkdbs in particular cases where the chunkdbs were small.
Change 4247246 by Leigh.Swift
BuildPatchTool: Adding support to BPT PackageChunks to filter by tagsets, and also split chunkdb output by them too.
Change 4173518 by Wes.Fudala
WebBrowser: Adding support to enable allowing net security expirations.
Change 4102451 by Leigh.Swift
BuildPatchTool: PackageChunks: Adding tool mode JSON output for listing created chunkdb files.
Change 4099951 by Leigh.Swift
BuildPatchTool: PackageChunks: Adding PrevManifestFile commandline support to BPT PackageChunks mode, allowing us to generate chunkdbs that only cover data required to perform an update.
Change 4051406 by Leigh.Swift
BuildPatchServices: Update default number of simultaneous downloads for an installer to 16 which is now well proven in the wild.
Change 4036807 by Leigh.Swift
BuildPatchServices: Added new message type for receiving updates about which files have been touched by the installation.
BuildPatchServices: Cloud enumeration is now threaded to improve speed.
Change 4036477 by Richard.Fawcett
Thirdparty: AWSSDK: Update AWS SDK to version 3.3 as speculative fix for object is used after being disposed error.
Confirmed this exception is being raised from within the AWS SDK, and _not_ in Epic code.
Advice by Amazon on AWS forums for people experiencing this exception is always to update to the latest version of the SDK in the first instance.
Change 3922493 by Justin.Sargent
Runtime: Added shortcircuit support to the ExpressionParser. More documentation to come.
AgreementExpressionEvaluator has been updated to use the shortcircuit logic so it now processes expressions lef to right as expected in all cases.
AgreementExpressionEvaluator was also updated to perform evaluation as a two pass system. The tow pass solution prevents over prompting eulas in certain scenarios where the expression would ultimately resolve true without them.
Change 3983713 by Barnabas.McManners
BuildPatchServices: Fix for verification logging error counts for unique runs. Solved the issue by using an external cache of the errors encountered each run to deduct from the total. Reporting only the delta.
Change 3966915 by Wes.Fudala
WebBrowser: CEF: Potential fix for a rare issue encountered when we attempting to release resources outside of the game thread.
Change 3955168 by Justin.Sargent
BuildPatchServices: Updated primary messaging of overall install status to now display Updating when patching an existing installation rather than Installing.
Change 3954610 by Leigh.Swift
BuildPatchServices: Fixing issue with Cloud Chunk Source which would erroneously conclude that it needed to re-download a chunk due to external system failure.
There is now an explicit concept of 'lost chunk' which is tracked and bubbled up by the system errors that cause the loss in the first place, so that each source knows exactly when it should be required to retrieve a chunk that it had already retrieved previously. Being explicit, these lost chunks can also now contribute to the total download required stat.
Also fixing some tracking that was missing to update the total download required stat if a local Install Chunk Source failed to load data from the files on disk and so these chunks needed to be additionally downloaded.
Change 3947928 by Chad.Garyet
UAT: Changing commandutils to attempt to find the Win8.1sdk signtool before the win10 one. There's currently a bug related to vs2017/server2012r2/win10sdk signtool that causes it to exit with an undefined error when signing from a service account. Using the win8.1sdk circumvents this issue.
Change 3942776 by Rob.Cannaday
Http: Fix for Mac sending up duplicate header strings
Change 3940306 by Leigh.Swift
BuildPatchServices: Refactor to isolate CoreUObject dependency and be able to compile out usage.
Change 3936655 by Justin.Sargent
Slate: Changed the invalid fontcache ensure in ShapedTextCache from always to only once to reduce ensure spamChange 3917840 by Leigh.Swift
BuildPatchTool: DiffManifests mode now also saves info for New, Removed, Changed, and Unchanged file to the output json file.
Change 3911756 by Justin.Sargent
WebBrowser: SWebBrowserView now ensures that it has a valid pointer to it's parent window in it's onpaint to avoid issues with the first frame being scaled incorrectly due to not being able to access the parent windows dpi scaling.
Change 3906670 by Justin.Sargent
Slate: Change the ShapedTextCache to hold a weakptr to the Slate FontCache instead of a reference. This will allow it to detect if the FontCache has become invalid since it was linked with the ShapedTextCache, thus making it able to avoid crashing.
Change 3889008 by Justin.Sargent
StandaloneRenderer: Made the SlateD3DRenderingPolicy more resilient to graphics device errors.
Change 3886969 by Justin.Sargent
StandaloneRenderer:Changed SlateD3DConstantBuffer to no longer check on a D3DDevice failure and instead soft fail, so the application can go through the process of attempting to re-establish the D3DDevice.
Change 3886960 by Justin.Sargent
WebBrowser: Made CEFWebBrowserWindow more resilient to issues with creating textures.
Change 3855821 by Barnabas.McManners
BuildPatchServices: Added logging of the configuration to the start of all installs.
Change 3839245 by Wes.Fudala
WebBrowser: Adding support for web browser drag regions. These are areas of a page tagged with -webkit-app-region: drag or -webkit-app-region: no-drag. The application can now pass a handler function to the browser to handle window drag events. This handler will be called if the browser detects mouse drag events inside of a tagged drag region.
Change 3835225 by Jacob.Hedges
Slate: Fix for SScrollBarTrack size issue
Change 3824320 by Wes.Fudala
WebBrowser: Fix for reported deadlock in WebBrowserSingleton. Associated with github pull request #4303.
#jira UE-53420 GitHub 4330 : Fixed deadlock in FWebBrowserSingleton
#4303
Change 3811191 by Barnabas.McManners
BuildPatchServices: Expanded MF01-X into MF01-X-X and MF02-X where X is the os error codes
Change 3807662 by Barnabas.McManners
BuildPatchServices: Broke down build verification errors into 4 new cases.
Change 3805698 by Leigh.Swift
BuildPatchServices: Speculative fixes for Unit test crashes / failures.
Change 3804175 by Wes.Fudala
ThirdParty: CEF: Adding browser locale pak files for es-MX, and es-ES as the typical mapping/fallback does not seem functional on mac browser. They are copies of es_419 and es respectively.
Change 3786628 by Leigh.Swift
WebBrowser: Exposing ability to customise tool tip widgets produced from SWebBrowserView.
Change 3775678 by Richard.Fawcett
BuildPatchServices: Allow a Prerequisite install only mode.
Change 3774365 by Justin.Sargent
BuildPatchServices: Updated Build Stat report that is logged after every installation to use FText::AsMemory instead of the UnitConversion logic, and now it outputs multiple unit types for convenience.
Change 3774361 by Justin.Sargent
Http: Remove Pragma: no-cache header from libcurl requests
Change 3774258 by Leigh.Swift
BuildPatchServices: Fix for destructive patch destroy files that contain useful data.
Change 3766156 by Barnabas.McManners
Http: Various lower changes to enable Hardware testing and to enable proxy configuration.
Change 3756723 by Leigh.Swift
BuildPatchServices: Hooking up disk chunk store operation states to the installer statistics.
BuildPatchServices: Memory chunk store statistics fix for booted chunks that have been reloaded.
Change 3756320 by Rob.Cannaday
Http: Add default headers added to every HTTP request.
Change 3741274 by Wes.Fudala
WebBrowser: Release CEF related references prior to CEF shutdown.
Change 3738003 by Leigh.Swift
BuildPatchServices: Fix-ups for install stats when failures are occurring
NumFilesOutdated now only set on first run, so it is not set to the number of files that are retried.
Total downloaded data and total download requirement stats fixed up for runtime as well as final values.
Initial chunk counters now only set for first run.
Moving the GetBytesDownloaded api from cloud source to download service so that it correctly accumulates.
InstallSource was multiply attempting, and counting, recycle failures, throwing that stat out of proportion.
Change 3729851 by Barnabas.McManners
BuildPatchServices: Changed the installer's MoveFile method to default to not retry. We currently only have uses of move file which already handle retry.
Change 3725611 by Leigh.Swift
Core: FText::AsMemory - Fix for numerical edges.
Added unit tests to check all edges up to full uint64 range.
Change 3725127 by Leigh.Swift
BuildPatchServices: ManifestDiff: Correcting string format padding for new data size output uints.
Change 3725126 by Leigh.Swift
Core: FText::AsMemory fix. Shifting (equivalent of divide 2 per shift) does not work for calculating SI units which are base 10.
Change 3721926 by Justin.Sargent
ThirdParty: LibCurl update performed by Simon Tourangeau.
We now have 100MB/sec download speed with libcurl on Win64, compared to 3MB/sec originally
Change 3700670 by Michael.Trepka
SlateReflector: Fixed mouse click highlighting in Widget Reflector's Demo Mode in high DPI
Change 3697526 by Leigh.Swift
BuildPatchServices: Exposing a suite of runtime statistics for BuildPatchInstallers.
Change 3686439 by Leigh.Swift
BuildPatchServices: Stop installers from always logging a shutdown error on destruction. This should only occur if the installer is actually running.
Change 3684747 by Leigh.Swift
BuildPatchTool: Fix file ignore list to parse using platform agnostic method.
Change 3643038 by Michael.Trepka
Core: Don't defer Cocoa calls in FMacWindow Show and Hide to make sure both actions complete before we exit these functions. This solves the problem with the blocks being called after window was destroyed.
Change 3639692 by Michael.Trepka
Fixes for a couple of issues found by address sanitizer
Change 3625568 by Leigh.Swift
BuildPatchServices: Fixing numerical limits problem with double -> uint64 in FStatsCollector::SecondsToCycles().
Change 3617948 by Leigh.Swift
BuildPatchServices: Disk space requirement can now be lower when patching if destructive patch mode is enabled. This mode will delete existing old files once they are not needed.
BuildPatchServices: Adding new installation mode setting on installer config.
BuildPatchServices: If destructive installation mode is enabled, the file constructor will delete old existing files after completing the new one.
BuildPatchServices: Adding missing file path length check for install location to cover situation where staging directory is outside the install directory.
Change 3593632 by Leigh.Swift
BuildPatchServices: Adding additional installation tracking to BuildPatchServices. See Engine/Source/Runtime/Online/BuildPatchServices/Public/Interfaces/IBuildInstaller.h
[CL 4273704 by Leigh Swift in Main branch]
2018-08-09 17:55:56 -04:00
TOptional < FShapedGlyphSequence : : FGlyphOffsetResult > GlyphOffsetResult = ShapedText - > GetGlyphAtOffset ( * FontCache , InTextRange . BeginIndex , InTextRange . EndIndex , InHorizontalOffset ) ;
2016-01-22 08:13:18 -05:00
if ( ! GlyphOffsetResult . IsSet ( ) )
{
FCachedShapedTextKey IndexAtOffsetKey = InRunKey ;
IndexAtOffsetKey . TextRange = InTextRange ;
// Couldn't search the sub-range, try and search from a shape of the specified range
ShapedText = InShapedTextCache - > FindOrAddShapedText ( IndexAtOffsetKey , InText ) ;
Copying //UE4/Dev-Main to //UE4/Main (Source: //Portal/Main/Engine @ 4247640)
#rb none
#lockdown Nick.Penwarden
============================
MAJOR FEATURES & CHANGES
============================
Change 4247640 by Daniel.Lamb
BuildPatchTool: PackageChunks: Fixed issue with filenames not being set for chunkdbs in particular cases where the chunkdbs were small.
Change 4247246 by Leigh.Swift
BuildPatchTool: Adding support to BPT PackageChunks to filter by tagsets, and also split chunkdb output by them too.
Change 4173518 by Wes.Fudala
WebBrowser: Adding support to enable allowing net security expirations.
Change 4102451 by Leigh.Swift
BuildPatchTool: PackageChunks: Adding tool mode JSON output for listing created chunkdb files.
Change 4099951 by Leigh.Swift
BuildPatchTool: PackageChunks: Adding PrevManifestFile commandline support to BPT PackageChunks mode, allowing us to generate chunkdbs that only cover data required to perform an update.
Change 4051406 by Leigh.Swift
BuildPatchServices: Update default number of simultaneous downloads for an installer to 16 which is now well proven in the wild.
Change 4036807 by Leigh.Swift
BuildPatchServices: Added new message type for receiving updates about which files have been touched by the installation.
BuildPatchServices: Cloud enumeration is now threaded to improve speed.
Change 4036477 by Richard.Fawcett
Thirdparty: AWSSDK: Update AWS SDK to version 3.3 as speculative fix for object is used after being disposed error.
Confirmed this exception is being raised from within the AWS SDK, and _not_ in Epic code.
Advice by Amazon on AWS forums for people experiencing this exception is always to update to the latest version of the SDK in the first instance.
Change 3922493 by Justin.Sargent
Runtime: Added shortcircuit support to the ExpressionParser. More documentation to come.
AgreementExpressionEvaluator has been updated to use the shortcircuit logic so it now processes expressions lef to right as expected in all cases.
AgreementExpressionEvaluator was also updated to perform evaluation as a two pass system. The tow pass solution prevents over prompting eulas in certain scenarios where the expression would ultimately resolve true without them.
Change 3983713 by Barnabas.McManners
BuildPatchServices: Fix for verification logging error counts for unique runs. Solved the issue by using an external cache of the errors encountered each run to deduct from the total. Reporting only the delta.
Change 3966915 by Wes.Fudala
WebBrowser: CEF: Potential fix for a rare issue encountered when we attempting to release resources outside of the game thread.
Change 3955168 by Justin.Sargent
BuildPatchServices: Updated primary messaging of overall install status to now display Updating when patching an existing installation rather than Installing.
Change 3954610 by Leigh.Swift
BuildPatchServices: Fixing issue with Cloud Chunk Source which would erroneously conclude that it needed to re-download a chunk due to external system failure.
There is now an explicit concept of 'lost chunk' which is tracked and bubbled up by the system errors that cause the loss in the first place, so that each source knows exactly when it should be required to retrieve a chunk that it had already retrieved previously. Being explicit, these lost chunks can also now contribute to the total download required stat.
Also fixing some tracking that was missing to update the total download required stat if a local Install Chunk Source failed to load data from the files on disk and so these chunks needed to be additionally downloaded.
Change 3947928 by Chad.Garyet
UAT: Changing commandutils to attempt to find the Win8.1sdk signtool before the win10 one. There's currently a bug related to vs2017/server2012r2/win10sdk signtool that causes it to exit with an undefined error when signing from a service account. Using the win8.1sdk circumvents this issue.
Change 3942776 by Rob.Cannaday
Http: Fix for Mac sending up duplicate header strings
Change 3940306 by Leigh.Swift
BuildPatchServices: Refactor to isolate CoreUObject dependency and be able to compile out usage.
Change 3936655 by Justin.Sargent
Slate: Changed the invalid fontcache ensure in ShapedTextCache from always to only once to reduce ensure spamChange 3917840 by Leigh.Swift
BuildPatchTool: DiffManifests mode now also saves info for New, Removed, Changed, and Unchanged file to the output json file.
Change 3911756 by Justin.Sargent
WebBrowser: SWebBrowserView now ensures that it has a valid pointer to it's parent window in it's onpaint to avoid issues with the first frame being scaled incorrectly due to not being able to access the parent windows dpi scaling.
Change 3906670 by Justin.Sargent
Slate: Change the ShapedTextCache to hold a weakptr to the Slate FontCache instead of a reference. This will allow it to detect if the FontCache has become invalid since it was linked with the ShapedTextCache, thus making it able to avoid crashing.
Change 3889008 by Justin.Sargent
StandaloneRenderer: Made the SlateD3DRenderingPolicy more resilient to graphics device errors.
Change 3886969 by Justin.Sargent
StandaloneRenderer:Changed SlateD3DConstantBuffer to no longer check on a D3DDevice failure and instead soft fail, so the application can go through the process of attempting to re-establish the D3DDevice.
Change 3886960 by Justin.Sargent
WebBrowser: Made CEFWebBrowserWindow more resilient to issues with creating textures.
Change 3855821 by Barnabas.McManners
BuildPatchServices: Added logging of the configuration to the start of all installs.
Change 3839245 by Wes.Fudala
WebBrowser: Adding support for web browser drag regions. These are areas of a page tagged with -webkit-app-region: drag or -webkit-app-region: no-drag. The application can now pass a handler function to the browser to handle window drag events. This handler will be called if the browser detects mouse drag events inside of a tagged drag region.
Change 3835225 by Jacob.Hedges
Slate: Fix for SScrollBarTrack size issue
Change 3824320 by Wes.Fudala
WebBrowser: Fix for reported deadlock in WebBrowserSingleton. Associated with github pull request #4303.
#jira UE-53420 GitHub 4330 : Fixed deadlock in FWebBrowserSingleton
#4303
Change 3811191 by Barnabas.McManners
BuildPatchServices: Expanded MF01-X into MF01-X-X and MF02-X where X is the os error codes
Change 3807662 by Barnabas.McManners
BuildPatchServices: Broke down build verification errors into 4 new cases.
Change 3805698 by Leigh.Swift
BuildPatchServices: Speculative fixes for Unit test crashes / failures.
Change 3804175 by Wes.Fudala
ThirdParty: CEF: Adding browser locale pak files for es-MX, and es-ES as the typical mapping/fallback does not seem functional on mac browser. They are copies of es_419 and es respectively.
Change 3786628 by Leigh.Swift
WebBrowser: Exposing ability to customise tool tip widgets produced from SWebBrowserView.
Change 3775678 by Richard.Fawcett
BuildPatchServices: Allow a Prerequisite install only mode.
Change 3774365 by Justin.Sargent
BuildPatchServices: Updated Build Stat report that is logged after every installation to use FText::AsMemory instead of the UnitConversion logic, and now it outputs multiple unit types for convenience.
Change 3774361 by Justin.Sargent
Http: Remove Pragma: no-cache header from libcurl requests
Change 3774258 by Leigh.Swift
BuildPatchServices: Fix for destructive patch destroy files that contain useful data.
Change 3766156 by Barnabas.McManners
Http: Various lower changes to enable Hardware testing and to enable proxy configuration.
Change 3756723 by Leigh.Swift
BuildPatchServices: Hooking up disk chunk store operation states to the installer statistics.
BuildPatchServices: Memory chunk store statistics fix for booted chunks that have been reloaded.
Change 3756320 by Rob.Cannaday
Http: Add default headers added to every HTTP request.
Change 3741274 by Wes.Fudala
WebBrowser: Release CEF related references prior to CEF shutdown.
Change 3738003 by Leigh.Swift
BuildPatchServices: Fix-ups for install stats when failures are occurring
NumFilesOutdated now only set on first run, so it is not set to the number of files that are retried.
Total downloaded data and total download requirement stats fixed up for runtime as well as final values.
Initial chunk counters now only set for first run.
Moving the GetBytesDownloaded api from cloud source to download service so that it correctly accumulates.
InstallSource was multiply attempting, and counting, recycle failures, throwing that stat out of proportion.
Change 3729851 by Barnabas.McManners
BuildPatchServices: Changed the installer's MoveFile method to default to not retry. We currently only have uses of move file which already handle retry.
Change 3725611 by Leigh.Swift
Core: FText::AsMemory - Fix for numerical edges.
Added unit tests to check all edges up to full uint64 range.
Change 3725127 by Leigh.Swift
BuildPatchServices: ManifestDiff: Correcting string format padding for new data size output uints.
Change 3725126 by Leigh.Swift
Core: FText::AsMemory fix. Shifting (equivalent of divide 2 per shift) does not work for calculating SI units which are base 10.
Change 3721926 by Justin.Sargent
ThirdParty: LibCurl update performed by Simon Tourangeau.
We now have 100MB/sec download speed with libcurl on Win64, compared to 3MB/sec originally
Change 3700670 by Michael.Trepka
SlateReflector: Fixed mouse click highlighting in Widget Reflector's Demo Mode in high DPI
Change 3697526 by Leigh.Swift
BuildPatchServices: Exposing a suite of runtime statistics for BuildPatchInstallers.
Change 3686439 by Leigh.Swift
BuildPatchServices: Stop installers from always logging a shutdown error on destruction. This should only occur if the installer is actually running.
Change 3684747 by Leigh.Swift
BuildPatchTool: Fix file ignore list to parse using platform agnostic method.
Change 3643038 by Michael.Trepka
Core: Don't defer Cocoa calls in FMacWindow Show and Hide to make sure both actions complete before we exit these functions. This solves the problem with the blocks being called after window was destroyed.
Change 3639692 by Michael.Trepka
Fixes for a couple of issues found by address sanitizer
Change 3625568 by Leigh.Swift
BuildPatchServices: Fixing numerical limits problem with double -> uint64 in FStatsCollector::SecondsToCycles().
Change 3617948 by Leigh.Swift
BuildPatchServices: Disk space requirement can now be lower when patching if destructive patch mode is enabled. This mode will delete existing old files once they are not needed.
BuildPatchServices: Adding new installation mode setting on installer config.
BuildPatchServices: If destructive installation mode is enabled, the file constructor will delete old existing files after completing the new one.
BuildPatchServices: Adding missing file path length check for install location to cover situation where staging directory is outside the install directory.
Change 3593632 by Leigh.Swift
BuildPatchServices: Adding additional installation tracking to BuildPatchServices. See Engine/Source/Runtime/Online/BuildPatchServices/Public/Interfaces/IBuildInstaller.h
[CL 4273704 by Leigh Swift in Main branch]
2018-08-09 17:55:56 -04:00
GlyphOffsetResult = ShapedText - > GetGlyphAtOffset ( * FontCache , InHorizontalOffset ) ;
2016-01-22 08:13:18 -05:00
}
check ( GlyphOffsetResult . IsSet ( ) ) ;
// We need to handle the fact that the found glyph may have been a ligature, and if so, we need to measure each part of the ligature to find the best character index match
const FShapedGlyphSequence : : FGlyphOffsetResult & GlyphOffsetResultValue = GlyphOffsetResult . GetValue ( ) ;
2016-04-07 16:16:52 -04:00
if ( GlyphOffsetResultValue . Glyph & & GlyphOffsetResultValue . Glyph - > NumGraphemeClustersInGlyph > 1 )
2016-01-22 08:13:18 -05:00
{
2016-04-07 16:16:52 -04:00
// Process each grapheme cluster within the ligature
const FString LigatureString = FString ( GlyphOffsetResultValue . Glyph - > NumCharactersInGlyph , InText + GlyphOffsetResultValue . Glyph - > SourceIndex ) ;
TSharedRef < IBreakIterator > GraphemeBreakIterator = FBreakIterator : : CreateCharacterBoundaryIterator ( ) ;
GraphemeBreakIterator - > SetString ( LigatureString ) ;
FCachedShapedTextKey LigatureKey = InRunKey ;
LigatureKey . TextRange = FTextRange ( 0 , LigatureString . Len ( ) ) ;
2016-01-22 08:13:18 -05:00
int32 CurrentOffset = GlyphOffsetResultValue . GlyphOffset ;
2016-04-07 16:16:52 -04:00
if ( GlyphOffsetResultValue . Glyph - > TextDirection = = TextBiDi : : ETextDirection : : LeftToRight )
2016-04-07 14:58:54 -04:00
{
2016-04-07 16:16:52 -04:00
int32 PrevCharIndex = GraphemeBreakIterator - > ResetToBeginning ( ) ;
for ( int32 CurrentCharIndex = GraphemeBreakIterator - > MoveToNext ( ) ; CurrentCharIndex ! = INDEX_NONE ; CurrentCharIndex = GraphemeBreakIterator - > MoveToNext ( ) )
2016-04-07 14:58:54 -04:00
{
2016-04-07 16:16:52 -04:00
FShapedGlyphSequenceRef GraphemeShapedText = GetShapedTextSubSequence ( InShapedTextCache , LigatureKey , FTextRange ( PrevCharIndex , CurrentCharIndex ) , * LigatureString , GlyphOffsetResultValue . Glyph - > TextDirection ) ;
Copying //UE4/Dev-Main to //UE4/Main (Source: //Portal/Main/Engine @ 4247640)
#rb none
#lockdown Nick.Penwarden
============================
MAJOR FEATURES & CHANGES
============================
Change 4247640 by Daniel.Lamb
BuildPatchTool: PackageChunks: Fixed issue with filenames not being set for chunkdbs in particular cases where the chunkdbs were small.
Change 4247246 by Leigh.Swift
BuildPatchTool: Adding support to BPT PackageChunks to filter by tagsets, and also split chunkdb output by them too.
Change 4173518 by Wes.Fudala
WebBrowser: Adding support to enable allowing net security expirations.
Change 4102451 by Leigh.Swift
BuildPatchTool: PackageChunks: Adding tool mode JSON output for listing created chunkdb files.
Change 4099951 by Leigh.Swift
BuildPatchTool: PackageChunks: Adding PrevManifestFile commandline support to BPT PackageChunks mode, allowing us to generate chunkdbs that only cover data required to perform an update.
Change 4051406 by Leigh.Swift
BuildPatchServices: Update default number of simultaneous downloads for an installer to 16 which is now well proven in the wild.
Change 4036807 by Leigh.Swift
BuildPatchServices: Added new message type for receiving updates about which files have been touched by the installation.
BuildPatchServices: Cloud enumeration is now threaded to improve speed.
Change 4036477 by Richard.Fawcett
Thirdparty: AWSSDK: Update AWS SDK to version 3.3 as speculative fix for object is used after being disposed error.
Confirmed this exception is being raised from within the AWS SDK, and _not_ in Epic code.
Advice by Amazon on AWS forums for people experiencing this exception is always to update to the latest version of the SDK in the first instance.
Change 3922493 by Justin.Sargent
Runtime: Added shortcircuit support to the ExpressionParser. More documentation to come.
AgreementExpressionEvaluator has been updated to use the shortcircuit logic so it now processes expressions lef to right as expected in all cases.
AgreementExpressionEvaluator was also updated to perform evaluation as a two pass system. The tow pass solution prevents over prompting eulas in certain scenarios where the expression would ultimately resolve true without them.
Change 3983713 by Barnabas.McManners
BuildPatchServices: Fix for verification logging error counts for unique runs. Solved the issue by using an external cache of the errors encountered each run to deduct from the total. Reporting only the delta.
Change 3966915 by Wes.Fudala
WebBrowser: CEF: Potential fix for a rare issue encountered when we attempting to release resources outside of the game thread.
Change 3955168 by Justin.Sargent
BuildPatchServices: Updated primary messaging of overall install status to now display Updating when patching an existing installation rather than Installing.
Change 3954610 by Leigh.Swift
BuildPatchServices: Fixing issue with Cloud Chunk Source which would erroneously conclude that it needed to re-download a chunk due to external system failure.
There is now an explicit concept of 'lost chunk' which is tracked and bubbled up by the system errors that cause the loss in the first place, so that each source knows exactly when it should be required to retrieve a chunk that it had already retrieved previously. Being explicit, these lost chunks can also now contribute to the total download required stat.
Also fixing some tracking that was missing to update the total download required stat if a local Install Chunk Source failed to load data from the files on disk and so these chunks needed to be additionally downloaded.
Change 3947928 by Chad.Garyet
UAT: Changing commandutils to attempt to find the Win8.1sdk signtool before the win10 one. There's currently a bug related to vs2017/server2012r2/win10sdk signtool that causes it to exit with an undefined error when signing from a service account. Using the win8.1sdk circumvents this issue.
Change 3942776 by Rob.Cannaday
Http: Fix for Mac sending up duplicate header strings
Change 3940306 by Leigh.Swift
BuildPatchServices: Refactor to isolate CoreUObject dependency and be able to compile out usage.
Change 3936655 by Justin.Sargent
Slate: Changed the invalid fontcache ensure in ShapedTextCache from always to only once to reduce ensure spamChange 3917840 by Leigh.Swift
BuildPatchTool: DiffManifests mode now also saves info for New, Removed, Changed, and Unchanged file to the output json file.
Change 3911756 by Justin.Sargent
WebBrowser: SWebBrowserView now ensures that it has a valid pointer to it's parent window in it's onpaint to avoid issues with the first frame being scaled incorrectly due to not being able to access the parent windows dpi scaling.
Change 3906670 by Justin.Sargent
Slate: Change the ShapedTextCache to hold a weakptr to the Slate FontCache instead of a reference. This will allow it to detect if the FontCache has become invalid since it was linked with the ShapedTextCache, thus making it able to avoid crashing.
Change 3889008 by Justin.Sargent
StandaloneRenderer: Made the SlateD3DRenderingPolicy more resilient to graphics device errors.
Change 3886969 by Justin.Sargent
StandaloneRenderer:Changed SlateD3DConstantBuffer to no longer check on a D3DDevice failure and instead soft fail, so the application can go through the process of attempting to re-establish the D3DDevice.
Change 3886960 by Justin.Sargent
WebBrowser: Made CEFWebBrowserWindow more resilient to issues with creating textures.
Change 3855821 by Barnabas.McManners
BuildPatchServices: Added logging of the configuration to the start of all installs.
Change 3839245 by Wes.Fudala
WebBrowser: Adding support for web browser drag regions. These are areas of a page tagged with -webkit-app-region: drag or -webkit-app-region: no-drag. The application can now pass a handler function to the browser to handle window drag events. This handler will be called if the browser detects mouse drag events inside of a tagged drag region.
Change 3835225 by Jacob.Hedges
Slate: Fix for SScrollBarTrack size issue
Change 3824320 by Wes.Fudala
WebBrowser: Fix for reported deadlock in WebBrowserSingleton. Associated with github pull request #4303.
#jira UE-53420 GitHub 4330 : Fixed deadlock in FWebBrowserSingleton
#4303
Change 3811191 by Barnabas.McManners
BuildPatchServices: Expanded MF01-X into MF01-X-X and MF02-X where X is the os error codes
Change 3807662 by Barnabas.McManners
BuildPatchServices: Broke down build verification errors into 4 new cases.
Change 3805698 by Leigh.Swift
BuildPatchServices: Speculative fixes for Unit test crashes / failures.
Change 3804175 by Wes.Fudala
ThirdParty: CEF: Adding browser locale pak files for es-MX, and es-ES as the typical mapping/fallback does not seem functional on mac browser. They are copies of es_419 and es respectively.
Change 3786628 by Leigh.Swift
WebBrowser: Exposing ability to customise tool tip widgets produced from SWebBrowserView.
Change 3775678 by Richard.Fawcett
BuildPatchServices: Allow a Prerequisite install only mode.
Change 3774365 by Justin.Sargent
BuildPatchServices: Updated Build Stat report that is logged after every installation to use FText::AsMemory instead of the UnitConversion logic, and now it outputs multiple unit types for convenience.
Change 3774361 by Justin.Sargent
Http: Remove Pragma: no-cache header from libcurl requests
Change 3774258 by Leigh.Swift
BuildPatchServices: Fix for destructive patch destroy files that contain useful data.
Change 3766156 by Barnabas.McManners
Http: Various lower changes to enable Hardware testing and to enable proxy configuration.
Change 3756723 by Leigh.Swift
BuildPatchServices: Hooking up disk chunk store operation states to the installer statistics.
BuildPatchServices: Memory chunk store statistics fix for booted chunks that have been reloaded.
Change 3756320 by Rob.Cannaday
Http: Add default headers added to every HTTP request.
Change 3741274 by Wes.Fudala
WebBrowser: Release CEF related references prior to CEF shutdown.
Change 3738003 by Leigh.Swift
BuildPatchServices: Fix-ups for install stats when failures are occurring
NumFilesOutdated now only set on first run, so it is not set to the number of files that are retried.
Total downloaded data and total download requirement stats fixed up for runtime as well as final values.
Initial chunk counters now only set for first run.
Moving the GetBytesDownloaded api from cloud source to download service so that it correctly accumulates.
InstallSource was multiply attempting, and counting, recycle failures, throwing that stat out of proportion.
Change 3729851 by Barnabas.McManners
BuildPatchServices: Changed the installer's MoveFile method to default to not retry. We currently only have uses of move file which already handle retry.
Change 3725611 by Leigh.Swift
Core: FText::AsMemory - Fix for numerical edges.
Added unit tests to check all edges up to full uint64 range.
Change 3725127 by Leigh.Swift
BuildPatchServices: ManifestDiff: Correcting string format padding for new data size output uints.
Change 3725126 by Leigh.Swift
Core: FText::AsMemory fix. Shifting (equivalent of divide 2 per shift) does not work for calculating SI units which are base 10.
Change 3721926 by Justin.Sargent
ThirdParty: LibCurl update performed by Simon Tourangeau.
We now have 100MB/sec download speed with libcurl on Win64, compared to 3MB/sec originally
Change 3700670 by Michael.Trepka
SlateReflector: Fixed mouse click highlighting in Widget Reflector's Demo Mode in high DPI
Change 3697526 by Leigh.Swift
BuildPatchServices: Exposing a suite of runtime statistics for BuildPatchInstallers.
Change 3686439 by Leigh.Swift
BuildPatchServices: Stop installers from always logging a shutdown error on destruction. This should only occur if the installer is actually running.
Change 3684747 by Leigh.Swift
BuildPatchTool: Fix file ignore list to parse using platform agnostic method.
Change 3643038 by Michael.Trepka
Core: Don't defer Cocoa calls in FMacWindow Show and Hide to make sure both actions complete before we exit these functions. This solves the problem with the blocks being called after window was destroyed.
Change 3639692 by Michael.Trepka
Fixes for a couple of issues found by address sanitizer
Change 3625568 by Leigh.Swift
BuildPatchServices: Fixing numerical limits problem with double -> uint64 in FStatsCollector::SecondsToCycles().
Change 3617948 by Leigh.Swift
BuildPatchServices: Disk space requirement can now be lower when patching if destructive patch mode is enabled. This mode will delete existing old files once they are not needed.
BuildPatchServices: Adding new installation mode setting on installer config.
BuildPatchServices: If destructive installation mode is enabled, the file constructor will delete old existing files after completing the new one.
BuildPatchServices: Adding missing file path length check for install location to cover situation where staging directory is outside the install directory.
Change 3593632 by Leigh.Swift
BuildPatchServices: Adding additional installation tracking to BuildPatchServices. See Engine/Source/Runtime/Online/BuildPatchServices/Public/Interfaces/IBuildInstaller.h
[CL 4273704 by Leigh Swift in Main branch]
2018-08-09 17:55:56 -04:00
const FShapedGlyphSequence : : FGlyphOffsetResult GraphemeOffsetResult = GraphemeShapedText - > GetGlyphAtOffset ( * FontCache , InHorizontalOffset , CurrentOffset ) ;
2016-04-07 16:16:52 -04:00
if ( GraphemeOffsetResult . Glyph )
2016-04-07 14:58:54 -04:00
{
2016-04-07 16:16:52 -04:00
return GlyphOffsetResultValue . Glyph - > SourceIndex + GraphemeOffsetResult . CharacterIndex ;
2016-04-07 14:58:54 -04:00
}
2016-04-07 16:16:52 -04:00
PrevCharIndex = CurrentCharIndex ;
CurrentOffset + = GraphemeShapedText - > GetMeasuredWidth ( ) ;
2016-04-07 14:58:54 -04:00
}
2016-04-07 16:16:52 -04:00
return GlyphOffsetResultValue . Glyph - > SourceIndex + GlyphOffsetResultValue . Glyph - > NumCharactersInGlyph ;
2016-01-22 08:13:18 -05:00
}
else
{
2016-04-07 16:16:52 -04:00
int32 PrevCharIndex = GraphemeBreakIterator - > ResetToEnd ( ) ;
for ( int32 CurrentCharIndex = GraphemeBreakIterator - > MoveToPrevious ( ) ; CurrentCharIndex ! = INDEX_NONE ; CurrentCharIndex = GraphemeBreakIterator - > MoveToPrevious ( ) )
2016-01-22 08:13:18 -05:00
{
2016-04-07 16:16:52 -04:00
FShapedGlyphSequenceRef GraphemeShapedText = GetShapedTextSubSequence ( InShapedTextCache , LigatureKey , FTextRange ( CurrentCharIndex , PrevCharIndex ) , * LigatureString , GlyphOffsetResultValue . Glyph - > TextDirection ) ;
Copying //UE4/Dev-Main to //UE4/Main (Source: //Portal/Main/Engine @ 4247640)
#rb none
#lockdown Nick.Penwarden
============================
MAJOR FEATURES & CHANGES
============================
Change 4247640 by Daniel.Lamb
BuildPatchTool: PackageChunks: Fixed issue with filenames not being set for chunkdbs in particular cases where the chunkdbs were small.
Change 4247246 by Leigh.Swift
BuildPatchTool: Adding support to BPT PackageChunks to filter by tagsets, and also split chunkdb output by them too.
Change 4173518 by Wes.Fudala
WebBrowser: Adding support to enable allowing net security expirations.
Change 4102451 by Leigh.Swift
BuildPatchTool: PackageChunks: Adding tool mode JSON output for listing created chunkdb files.
Change 4099951 by Leigh.Swift
BuildPatchTool: PackageChunks: Adding PrevManifestFile commandline support to BPT PackageChunks mode, allowing us to generate chunkdbs that only cover data required to perform an update.
Change 4051406 by Leigh.Swift
BuildPatchServices: Update default number of simultaneous downloads for an installer to 16 which is now well proven in the wild.
Change 4036807 by Leigh.Swift
BuildPatchServices: Added new message type for receiving updates about which files have been touched by the installation.
BuildPatchServices: Cloud enumeration is now threaded to improve speed.
Change 4036477 by Richard.Fawcett
Thirdparty: AWSSDK: Update AWS SDK to version 3.3 as speculative fix for object is used after being disposed error.
Confirmed this exception is being raised from within the AWS SDK, and _not_ in Epic code.
Advice by Amazon on AWS forums for people experiencing this exception is always to update to the latest version of the SDK in the first instance.
Change 3922493 by Justin.Sargent
Runtime: Added shortcircuit support to the ExpressionParser. More documentation to come.
AgreementExpressionEvaluator has been updated to use the shortcircuit logic so it now processes expressions lef to right as expected in all cases.
AgreementExpressionEvaluator was also updated to perform evaluation as a two pass system. The tow pass solution prevents over prompting eulas in certain scenarios where the expression would ultimately resolve true without them.
Change 3983713 by Barnabas.McManners
BuildPatchServices: Fix for verification logging error counts for unique runs. Solved the issue by using an external cache of the errors encountered each run to deduct from the total. Reporting only the delta.
Change 3966915 by Wes.Fudala
WebBrowser: CEF: Potential fix for a rare issue encountered when we attempting to release resources outside of the game thread.
Change 3955168 by Justin.Sargent
BuildPatchServices: Updated primary messaging of overall install status to now display Updating when patching an existing installation rather than Installing.
Change 3954610 by Leigh.Swift
BuildPatchServices: Fixing issue with Cloud Chunk Source which would erroneously conclude that it needed to re-download a chunk due to external system failure.
There is now an explicit concept of 'lost chunk' which is tracked and bubbled up by the system errors that cause the loss in the first place, so that each source knows exactly when it should be required to retrieve a chunk that it had already retrieved previously. Being explicit, these lost chunks can also now contribute to the total download required stat.
Also fixing some tracking that was missing to update the total download required stat if a local Install Chunk Source failed to load data from the files on disk and so these chunks needed to be additionally downloaded.
Change 3947928 by Chad.Garyet
UAT: Changing commandutils to attempt to find the Win8.1sdk signtool before the win10 one. There's currently a bug related to vs2017/server2012r2/win10sdk signtool that causes it to exit with an undefined error when signing from a service account. Using the win8.1sdk circumvents this issue.
Change 3942776 by Rob.Cannaday
Http: Fix for Mac sending up duplicate header strings
Change 3940306 by Leigh.Swift
BuildPatchServices: Refactor to isolate CoreUObject dependency and be able to compile out usage.
Change 3936655 by Justin.Sargent
Slate: Changed the invalid fontcache ensure in ShapedTextCache from always to only once to reduce ensure spamChange 3917840 by Leigh.Swift
BuildPatchTool: DiffManifests mode now also saves info for New, Removed, Changed, and Unchanged file to the output json file.
Change 3911756 by Justin.Sargent
WebBrowser: SWebBrowserView now ensures that it has a valid pointer to it's parent window in it's onpaint to avoid issues with the first frame being scaled incorrectly due to not being able to access the parent windows dpi scaling.
Change 3906670 by Justin.Sargent
Slate: Change the ShapedTextCache to hold a weakptr to the Slate FontCache instead of a reference. This will allow it to detect if the FontCache has become invalid since it was linked with the ShapedTextCache, thus making it able to avoid crashing.
Change 3889008 by Justin.Sargent
StandaloneRenderer: Made the SlateD3DRenderingPolicy more resilient to graphics device errors.
Change 3886969 by Justin.Sargent
StandaloneRenderer:Changed SlateD3DConstantBuffer to no longer check on a D3DDevice failure and instead soft fail, so the application can go through the process of attempting to re-establish the D3DDevice.
Change 3886960 by Justin.Sargent
WebBrowser: Made CEFWebBrowserWindow more resilient to issues with creating textures.
Change 3855821 by Barnabas.McManners
BuildPatchServices: Added logging of the configuration to the start of all installs.
Change 3839245 by Wes.Fudala
WebBrowser: Adding support for web browser drag regions. These are areas of a page tagged with -webkit-app-region: drag or -webkit-app-region: no-drag. The application can now pass a handler function to the browser to handle window drag events. This handler will be called if the browser detects mouse drag events inside of a tagged drag region.
Change 3835225 by Jacob.Hedges
Slate: Fix for SScrollBarTrack size issue
Change 3824320 by Wes.Fudala
WebBrowser: Fix for reported deadlock in WebBrowserSingleton. Associated with github pull request #4303.
#jira UE-53420 GitHub 4330 : Fixed deadlock in FWebBrowserSingleton
#4303
Change 3811191 by Barnabas.McManners
BuildPatchServices: Expanded MF01-X into MF01-X-X and MF02-X where X is the os error codes
Change 3807662 by Barnabas.McManners
BuildPatchServices: Broke down build verification errors into 4 new cases.
Change 3805698 by Leigh.Swift
BuildPatchServices: Speculative fixes for Unit test crashes / failures.
Change 3804175 by Wes.Fudala
ThirdParty: CEF: Adding browser locale pak files for es-MX, and es-ES as the typical mapping/fallback does not seem functional on mac browser. They are copies of es_419 and es respectively.
Change 3786628 by Leigh.Swift
WebBrowser: Exposing ability to customise tool tip widgets produced from SWebBrowserView.
Change 3775678 by Richard.Fawcett
BuildPatchServices: Allow a Prerequisite install only mode.
Change 3774365 by Justin.Sargent
BuildPatchServices: Updated Build Stat report that is logged after every installation to use FText::AsMemory instead of the UnitConversion logic, and now it outputs multiple unit types for convenience.
Change 3774361 by Justin.Sargent
Http: Remove Pragma: no-cache header from libcurl requests
Change 3774258 by Leigh.Swift
BuildPatchServices: Fix for destructive patch destroy files that contain useful data.
Change 3766156 by Barnabas.McManners
Http: Various lower changes to enable Hardware testing and to enable proxy configuration.
Change 3756723 by Leigh.Swift
BuildPatchServices: Hooking up disk chunk store operation states to the installer statistics.
BuildPatchServices: Memory chunk store statistics fix for booted chunks that have been reloaded.
Change 3756320 by Rob.Cannaday
Http: Add default headers added to every HTTP request.
Change 3741274 by Wes.Fudala
WebBrowser: Release CEF related references prior to CEF shutdown.
Change 3738003 by Leigh.Swift
BuildPatchServices: Fix-ups for install stats when failures are occurring
NumFilesOutdated now only set on first run, so it is not set to the number of files that are retried.
Total downloaded data and total download requirement stats fixed up for runtime as well as final values.
Initial chunk counters now only set for first run.
Moving the GetBytesDownloaded api from cloud source to download service so that it correctly accumulates.
InstallSource was multiply attempting, and counting, recycle failures, throwing that stat out of proportion.
Change 3729851 by Barnabas.McManners
BuildPatchServices: Changed the installer's MoveFile method to default to not retry. We currently only have uses of move file which already handle retry.
Change 3725611 by Leigh.Swift
Core: FText::AsMemory - Fix for numerical edges.
Added unit tests to check all edges up to full uint64 range.
Change 3725127 by Leigh.Swift
BuildPatchServices: ManifestDiff: Correcting string format padding for new data size output uints.
Change 3725126 by Leigh.Swift
Core: FText::AsMemory fix. Shifting (equivalent of divide 2 per shift) does not work for calculating SI units which are base 10.
Change 3721926 by Justin.Sargent
ThirdParty: LibCurl update performed by Simon Tourangeau.
We now have 100MB/sec download speed with libcurl on Win64, compared to 3MB/sec originally
Change 3700670 by Michael.Trepka
SlateReflector: Fixed mouse click highlighting in Widget Reflector's Demo Mode in high DPI
Change 3697526 by Leigh.Swift
BuildPatchServices: Exposing a suite of runtime statistics for BuildPatchInstallers.
Change 3686439 by Leigh.Swift
BuildPatchServices: Stop installers from always logging a shutdown error on destruction. This should only occur if the installer is actually running.
Change 3684747 by Leigh.Swift
BuildPatchTool: Fix file ignore list to parse using platform agnostic method.
Change 3643038 by Michael.Trepka
Core: Don't defer Cocoa calls in FMacWindow Show and Hide to make sure both actions complete before we exit these functions. This solves the problem with the blocks being called after window was destroyed.
Change 3639692 by Michael.Trepka
Fixes for a couple of issues found by address sanitizer
Change 3625568 by Leigh.Swift
BuildPatchServices: Fixing numerical limits problem with double -> uint64 in FStatsCollector::SecondsToCycles().
Change 3617948 by Leigh.Swift
BuildPatchServices: Disk space requirement can now be lower when patching if destructive patch mode is enabled. This mode will delete existing old files once they are not needed.
BuildPatchServices: Adding new installation mode setting on installer config.
BuildPatchServices: If destructive installation mode is enabled, the file constructor will delete old existing files after completing the new one.
BuildPatchServices: Adding missing file path length check for install location to cover situation where staging directory is outside the install directory.
Change 3593632 by Leigh.Swift
BuildPatchServices: Adding additional installation tracking to BuildPatchServices. See Engine/Source/Runtime/Online/BuildPatchServices/Public/Interfaces/IBuildInstaller.h
[CL 4273704 by Leigh Swift in Main branch]
2018-08-09 17:55:56 -04:00
const FShapedGlyphSequence : : FGlyphOffsetResult GraphemeOffsetResult = GraphemeShapedText - > GetGlyphAtOffset ( * FontCache , InHorizontalOffset , CurrentOffset ) ;
2016-04-07 16:16:52 -04:00
if ( GraphemeOffsetResult . Glyph )
2016-01-22 08:13:18 -05:00
{
2016-04-07 16:16:52 -04:00
return GlyphOffsetResultValue . Glyph - > SourceIndex + ( ( PrevCharIndex ! = INDEX_NONE ) ? PrevCharIndex : GraphemeOffsetResult . CharacterIndex ) ;
2016-01-22 08:13:18 -05:00
}
2016-04-07 16:16:52 -04:00
PrevCharIndex = CurrentCharIndex ;
CurrentOffset + = GraphemeShapedText - > GetMeasuredWidth ( ) ;
2016-01-22 08:13:18 -05:00
}
2016-04-07 16:16:52 -04:00
return GlyphOffsetResultValue . Glyph - > SourceIndex ;
2016-01-22 08:13:18 -05:00
}
}
return GlyphOffsetResultValue . CharacterIndex ;
}
int8 ShapedTextCacheUtil : : GetShapedGlyphKerning ( const FShapedTextCacheRef & InShapedTextCache , const FCachedShapedTextKey & InRunKey , const int32 InGlyphIndex , const TCHAR * InText )
2015-11-04 16:14:13 -05:00
{
// Get the shaped text for the entire run and try and get the kerning from it - this can help minimize the amount of text shaping that needs to be done when calculating kerning
2016-01-22 08:13:18 -05:00
FShapedGlyphSequenceRef ShapedText = InShapedTextCache - > FindOrAddShapedText ( InRunKey , InText ) ;
2015-11-04 16:14:13 -05:00
TOptional < int8 > Kerning = ShapedText - > GetKerning ( InGlyphIndex ) ;
if ( ! Kerning . IsSet ( ) )
{
FCachedShapedTextKey KerningKey = InRunKey ;
KerningKey . TextRange = FTextRange ( InGlyphIndex , InGlyphIndex + 2 ) ;
// Couldn't get the kerning from the main run data, try and get the kerning from a shape of the specified range
2016-01-22 08:13:18 -05:00
ShapedText = InShapedTextCache - > FindOrAddShapedText ( KerningKey , InText ) ;
2015-11-04 16:14:13 -05:00
Kerning = ShapedText - > GetKerning ( InGlyphIndex ) ;
}
return Kerning . Get ( 0 ) ;
}
2016-01-22 08:13:18 -05:00
FShapedGlyphSequenceRef ShapedTextCacheUtil : : GetShapedTextSubSequence ( const FShapedTextCacheRef & InShapedTextCache , const FCachedShapedTextKey & InRunKey , const FTextRange & InTextRange , const TCHAR * InText , const TextBiDi : : ETextDirection InTextDirection )
2015-11-04 16:14:13 -05:00
{
// Get the shaped text for the entire run and try and make a sub-sequence from it - this can help minimize the amount of text shaping that needs to be done when drawing text
2016-01-22 08:13:18 -05:00
FShapedGlyphSequencePtr ShapedText = InShapedTextCache - > FindOrAddShapedText ( InRunKey , InText ) ;
2015-11-04 16:14:13 -05:00
if ( InRunKey . TextRange ! = InTextRange )
{
FCachedShapedTextKey SubSequenceKey = InRunKey ;
SubSequenceKey . TextRange = InTextRange ;
// Do we already have a cached entry for this? We don't use FindOrAdd here as if it's missing, we first want to try and extract it from our run of shaped text
FShapedGlyphSequencePtr FoundShapedText = InShapedTextCache - > FindShapedText ( SubSequenceKey ) ;
if ( FoundShapedText . IsValid ( ) )
{
ShapedText = FoundShapedText ;
}
else
{
// Didn't find it in the cache, so first try and extract a sub-sequence from the run of shaped text
ShapedText = ShapedText - > GetSubSequence ( InTextRange . BeginIndex , InTextRange . EndIndex ) ;
if ( ShapedText . IsValid ( ) )
{
// Add this new sub-sequence to the cache
InShapedTextCache - > AddShapedText ( SubSequenceKey , ShapedText . ToSharedRef ( ) ) ;
}
else
{
// Couldn't get the sub-sequence, try and make a new shape for it instead
2016-01-22 08:13:18 -05:00
ShapedText = InShapedTextCache - > FindOrAddShapedText ( SubSequenceKey , InText , InTextDirection ) ;
2015-11-04 16:14:13 -05:00
}
}
}
check ( ShapedText . IsValid ( ) ) ;
return ShapedText . ToSharedRef ( ) ;
}