Files
UnrealEngineUWP/Engine/Source/Programs/UnrealBuildTool/System/FileSystemReference.cs

843 lines
27 KiB
C#
Raw Normal View History

// Copyright 1998-2016 Epic Games, Inc. All Rights Reserved.
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace UnrealBuildTool
{
/// <summary>
/// Base class for file system objects (files or directories).
/// </summary>
[Serializable]
public abstract class FileSystemReference
{
/// <summary>
/// The path to this object. Stored as an absolute path, with O/S preferred separator characters, and no trailing slash for directories.
/// </summary>
public readonly string FullName;
/// <summary>
/// The canonical full name for this object.
/// </summary>
public readonly string CanonicalName;
/// <summary>
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3075869) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3059740 on 2016/07/21 by Ben.Marsh Format license violations on separate lines rather than as a single multi-line string, so they can be parsed out correctly by the EC log parser. Change 3063115 on 2016/07/25 by Ben.Marsh Add missing projects to Mono AutomationTool solution. Change 3067125 on 2016/07/27 by Ben.Marsh Clean up and document the engine versioning system. * Version.h has a summary of all the different versioning concepts in UE4, as well as an explanation of what all the macros do. * VersionLocked.h has been removed. ENGINE_NET_VERSION and ENGINE_REPLAY_VERSION can be overriden directly in Version.h if necessary. * Added explicit macros for ENGINE_CURRENT_CL_VERSION And ENGINE_COMPATIBLE_CL_VERSION. The MODULE_API_VERSION macro is now defined to be the same as ENGINE_COMPATIBLE_CL_VERSION. * Build/Build.version now includes the compatible CL version, so it can be determined without having to parse header files inside MacToolChain.cs. * UpdateLocalVersion UAT command now exposes a -CompatibleCL=... argument to update ENGINE_COMPATIBLE_CL_VERSION and the CompatibleChange property in Build.version. * SetVersion BuildGraph task now has a CompatibleChange="" attribute to update ENGINE_COMPATIBLE_CL_VERSION and the CompatibleChange property in Build.version. * VersionFileUpdater now makes an effort to parse tokens matching the macros it's going to overwrite, rather than requiring exact matches in whitespace in Version.h. * Running UpdateLocalVersion now syncs files to revision 0 before writing if P4 is enabled, similarly to UGS, or fails if they are not writable. Change 3067242 on 2016/07/27 by Ben.Marsh Fix UGS showing a build failure/warning dialog immediately if you submit while the build is yellow/red. Now ignores builds before your last submitted CL. Change 3068116 on 2016/07/28 by Ben.Marsh Add a small Windows utility to terminate all running processes under a given root directory, and run it before and after every sync. Mean to fix instances where zombie editor processes do not terminate correctly and cause subsequent syncs to fail. Change 3068246 on 2016/07/28 by Ben.Marsh UGS: Improvements to 'Clean Workspace' dialog - empty folders are now set to be deleted by default, and added a context menu to select all/none/empty/default for a subtree, as well as to open Windows explorer at that location. Change 3068573 on 2016/07/28 by Ben.Marsh Attempt to fix AppDomain unload errors; suspect caused by delay to terminate child processes when managed exception is thrown on child threads. Now waits for the currently running threads to finish executing before quitting. Change 3068575 on 2016/07/28 by Ben.Marsh Respect the -noxge command-line argument when compiling UHT. Change 3068665 on 2016/07/28 by Ben.Marsh Delete any DLLs in output folders which share names with build products. The Windows loader reads DLLs from the first location it finds a file with a matching name, so we need to ensure that it doesn't load stale DLLs when output directories are changed (moving a module into a plugin, for example). Change 3073316 on 2016/08/02 by Ben.Marsh CoreUObject: Replace header guards with #pragma once directives. Change 3073325 on 2016/08/02 by Ben.Marsh CoreUObject: Manually untangle a few circular includes around ObjectBase.h and Class.h to allow making them into IWYU-style headers. Change 3074391 on 2016/08/02 by Ben.Marsh GitHub #2646: Always allow programs to build as part of non-game solution configurations. Change 3075123 on 2016/08/03 by Richard.Fawcett Ensure that zip files created outside of Ionic Zip can be unzipped with CommandUtils.UnzipFiles Zip files created with 7-zip, WinRAR, and Windows Explorer all contain entities for directories, not just the files in them. Code in CommandUtils.UnzipFiles made the assumption that all entities in the zip file were files, and an exception was being thrown on encountering a directory. Change 3075848 on 2016/08/03 by Ben.Marsh UBT: Fix a few cases where it's possible to construct a non-canonical DirectoryReference - root directories on Windows must always have a terminating slash, but any other directories must note. DirectoryInfo and Path.GetFullPath() do not enforce this requirement. Change 3075850 on 2016/08/03 by Ben.Marsh UBT: Fix UHT failures when running with -nopch. Change 3077058 by Ben.Marsh UHT: Remove the auto-generated ObjectBase.h include from generated header files. Was originally added to allow doxygen to parse headers more easily, but was switched to parsing the file only as part of parent files instead. [CL 3077308 by Ben Marsh in Main branch]
2016-08-04 10:41:07 -04:00
/// Direct constructor for a path
/// </summary>
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3075869) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3059740 on 2016/07/21 by Ben.Marsh Format license violations on separate lines rather than as a single multi-line string, so they can be parsed out correctly by the EC log parser. Change 3063115 on 2016/07/25 by Ben.Marsh Add missing projects to Mono AutomationTool solution. Change 3067125 on 2016/07/27 by Ben.Marsh Clean up and document the engine versioning system. * Version.h has a summary of all the different versioning concepts in UE4, as well as an explanation of what all the macros do. * VersionLocked.h has been removed. ENGINE_NET_VERSION and ENGINE_REPLAY_VERSION can be overriden directly in Version.h if necessary. * Added explicit macros for ENGINE_CURRENT_CL_VERSION And ENGINE_COMPATIBLE_CL_VERSION. The MODULE_API_VERSION macro is now defined to be the same as ENGINE_COMPATIBLE_CL_VERSION. * Build/Build.version now includes the compatible CL version, so it can be determined without having to parse header files inside MacToolChain.cs. * UpdateLocalVersion UAT command now exposes a -CompatibleCL=... argument to update ENGINE_COMPATIBLE_CL_VERSION and the CompatibleChange property in Build.version. * SetVersion BuildGraph task now has a CompatibleChange="" attribute to update ENGINE_COMPATIBLE_CL_VERSION and the CompatibleChange property in Build.version. * VersionFileUpdater now makes an effort to parse tokens matching the macros it's going to overwrite, rather than requiring exact matches in whitespace in Version.h. * Running UpdateLocalVersion now syncs files to revision 0 before writing if P4 is enabled, similarly to UGS, or fails if they are not writable. Change 3067242 on 2016/07/27 by Ben.Marsh Fix UGS showing a build failure/warning dialog immediately if you submit while the build is yellow/red. Now ignores builds before your last submitted CL. Change 3068116 on 2016/07/28 by Ben.Marsh Add a small Windows utility to terminate all running processes under a given root directory, and run it before and after every sync. Mean to fix instances where zombie editor processes do not terminate correctly and cause subsequent syncs to fail. Change 3068246 on 2016/07/28 by Ben.Marsh UGS: Improvements to 'Clean Workspace' dialog - empty folders are now set to be deleted by default, and added a context menu to select all/none/empty/default for a subtree, as well as to open Windows explorer at that location. Change 3068573 on 2016/07/28 by Ben.Marsh Attempt to fix AppDomain unload errors; suspect caused by delay to terminate child processes when managed exception is thrown on child threads. Now waits for the currently running threads to finish executing before quitting. Change 3068575 on 2016/07/28 by Ben.Marsh Respect the -noxge command-line argument when compiling UHT. Change 3068665 on 2016/07/28 by Ben.Marsh Delete any DLLs in output folders which share names with build products. The Windows loader reads DLLs from the first location it finds a file with a matching name, so we need to ensure that it doesn't load stale DLLs when output directories are changed (moving a module into a plugin, for example). Change 3073316 on 2016/08/02 by Ben.Marsh CoreUObject: Replace header guards with #pragma once directives. Change 3073325 on 2016/08/02 by Ben.Marsh CoreUObject: Manually untangle a few circular includes around ObjectBase.h and Class.h to allow making them into IWYU-style headers. Change 3074391 on 2016/08/02 by Ben.Marsh GitHub #2646: Always allow programs to build as part of non-game solution configurations. Change 3075123 on 2016/08/03 by Richard.Fawcett Ensure that zip files created outside of Ionic Zip can be unzipped with CommandUtils.UnzipFiles Zip files created with 7-zip, WinRAR, and Windows Explorer all contain entities for directories, not just the files in them. Code in CommandUtils.UnzipFiles made the assumption that all entities in the zip file were files, and an exception was being thrown on encountering a directory. Change 3075848 on 2016/08/03 by Ben.Marsh UBT: Fix a few cases where it's possible to construct a non-canonical DirectoryReference - root directories on Windows must always have a terminating slash, but any other directories must note. DirectoryInfo and Path.GetFullPath() do not enforce this requirement. Change 3075850 on 2016/08/03 by Ben.Marsh UBT: Fix UHT failures when running with -nopch. Change 3077058 by Ben.Marsh UHT: Remove the auto-generated ObjectBase.h include from generated header files. Was originally added to allow doxygen to parse headers more easily, but was switched to parsing the file only as part of parent files instead. [CL 3077308 by Ben Marsh in Main branch]
2016-08-04 10:41:07 -04:00
protected FileSystemReference(string InFullName)
{
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3075869) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3059740 on 2016/07/21 by Ben.Marsh Format license violations on separate lines rather than as a single multi-line string, so they can be parsed out correctly by the EC log parser. Change 3063115 on 2016/07/25 by Ben.Marsh Add missing projects to Mono AutomationTool solution. Change 3067125 on 2016/07/27 by Ben.Marsh Clean up and document the engine versioning system. * Version.h has a summary of all the different versioning concepts in UE4, as well as an explanation of what all the macros do. * VersionLocked.h has been removed. ENGINE_NET_VERSION and ENGINE_REPLAY_VERSION can be overriden directly in Version.h if necessary. * Added explicit macros for ENGINE_CURRENT_CL_VERSION And ENGINE_COMPATIBLE_CL_VERSION. The MODULE_API_VERSION macro is now defined to be the same as ENGINE_COMPATIBLE_CL_VERSION. * Build/Build.version now includes the compatible CL version, so it can be determined without having to parse header files inside MacToolChain.cs. * UpdateLocalVersion UAT command now exposes a -CompatibleCL=... argument to update ENGINE_COMPATIBLE_CL_VERSION and the CompatibleChange property in Build.version. * SetVersion BuildGraph task now has a CompatibleChange="" attribute to update ENGINE_COMPATIBLE_CL_VERSION and the CompatibleChange property in Build.version. * VersionFileUpdater now makes an effort to parse tokens matching the macros it's going to overwrite, rather than requiring exact matches in whitespace in Version.h. * Running UpdateLocalVersion now syncs files to revision 0 before writing if P4 is enabled, similarly to UGS, or fails if they are not writable. Change 3067242 on 2016/07/27 by Ben.Marsh Fix UGS showing a build failure/warning dialog immediately if you submit while the build is yellow/red. Now ignores builds before your last submitted CL. Change 3068116 on 2016/07/28 by Ben.Marsh Add a small Windows utility to terminate all running processes under a given root directory, and run it before and after every sync. Mean to fix instances where zombie editor processes do not terminate correctly and cause subsequent syncs to fail. Change 3068246 on 2016/07/28 by Ben.Marsh UGS: Improvements to 'Clean Workspace' dialog - empty folders are now set to be deleted by default, and added a context menu to select all/none/empty/default for a subtree, as well as to open Windows explorer at that location. Change 3068573 on 2016/07/28 by Ben.Marsh Attempt to fix AppDomain unload errors; suspect caused by delay to terminate child processes when managed exception is thrown on child threads. Now waits for the currently running threads to finish executing before quitting. Change 3068575 on 2016/07/28 by Ben.Marsh Respect the -noxge command-line argument when compiling UHT. Change 3068665 on 2016/07/28 by Ben.Marsh Delete any DLLs in output folders which share names with build products. The Windows loader reads DLLs from the first location it finds a file with a matching name, so we need to ensure that it doesn't load stale DLLs when output directories are changed (moving a module into a plugin, for example). Change 3073316 on 2016/08/02 by Ben.Marsh CoreUObject: Replace header guards with #pragma once directives. Change 3073325 on 2016/08/02 by Ben.Marsh CoreUObject: Manually untangle a few circular includes around ObjectBase.h and Class.h to allow making them into IWYU-style headers. Change 3074391 on 2016/08/02 by Ben.Marsh GitHub #2646: Always allow programs to build as part of non-game solution configurations. Change 3075123 on 2016/08/03 by Richard.Fawcett Ensure that zip files created outside of Ionic Zip can be unzipped with CommandUtils.UnzipFiles Zip files created with 7-zip, WinRAR, and Windows Explorer all contain entities for directories, not just the files in them. Code in CommandUtils.UnzipFiles made the assumption that all entities in the zip file were files, and an exception was being thrown on encountering a directory. Change 3075848 on 2016/08/03 by Ben.Marsh UBT: Fix a few cases where it's possible to construct a non-canonical DirectoryReference - root directories on Windows must always have a terminating slash, but any other directories must note. DirectoryInfo and Path.GetFullPath() do not enforce this requirement. Change 3075850 on 2016/08/03 by Ben.Marsh UBT: Fix UHT failures when running with -nopch. Change 3077058 by Ben.Marsh UHT: Remove the auto-generated ObjectBase.h include from generated header files. Was originally added to allow doxygen to parse headers more easily, but was switched to parsing the file only as part of parent files instead. [CL 3077308 by Ben Marsh in Main branch]
2016-08-04 10:41:07 -04:00
FullName = InFullName;
CanonicalName = InFullName.ToLowerInvariant();
}
/// <summary>
/// Direct constructor for a path
/// </summary>
protected FileSystemReference(string InFullName, string InCanonicalName)
{
FullName = InFullName;
CanonicalName = InCanonicalName;
}
/// <summary>
/// Create a full path by concatenating multiple strings
/// </summary>
/// <returns></returns>
static protected string CombineStrings(DirectoryReference BaseDirectory, params string[] Fragments)
{
// Get the initial string to append to, and strip any root directory suffix from it
StringBuilder NewFullName = new StringBuilder(BaseDirectory.FullName);
if (NewFullName.Length > 0 && NewFullName[NewFullName.Length - 1] == Path.DirectorySeparatorChar)
{
NewFullName.Remove(NewFullName.Length - 1, 1);
}
// Scan through the fragments to append, appending them to a string and updating the base length as we go
foreach (string Fragment in Fragments)
{
// Check if this fragment is an absolute path
if ((Fragment.Length >= 2 && Fragment[1] == ':') || (Fragment.Length >= 1 && (Fragment[0] == '\\' || Fragment[0] == '/')))
{
// It is. Reset the new name to the full version of this path.
NewFullName.Clear();
Copying //UE4/Orion-Staging to //UE4/Main (Source: //Orion/Dev-General @ 2912736) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2912513 on 2016/03/16 by David.Ratti attempted cook fix #rb none #tests compile Change 2912456 on 2016/03/16 by Zak.Middleton #ue4 - Move Replay client interpolation mode check to OnRegister(), out of TickComponent() so we don't check it constantly. #rb John.Pollard #tests Replays and MultiPIE vs AI Change 2912386 on 2016/03/16 by Ben.Marsh BuildGraph: Add quotes around custom build node lists, so we can support node names with spaces. Change 2912378 on 2016/03/16 by Ben.Marsh BuildGraph: Fix format of custom build arguments when running with buildgraph. Change 2912318 on 2016/03/16 by Marcus.Wassmer Fix mallocleakdetection false positives, and hash collision data corruption. #rb none #test leak finding on goldenpath Change 2912242 on 2016/03/16 by Lukasz.Furman CIS fix #rb none #tests none Change 2912239 on 2016/03/16 by Ben.Marsh UBT: Include the project "Build" folder in the generated project files. It's pretty common to want to edit configuration data that's stored there. #rb none #tests generated project files using UGS after making change Change 2912211 on 2016/03/16 by Ben.Marsh BuildFarm: Allow disabling the local DDC by setting the DDC override environment variable to "None". Testing performance of just using shared DDC for builders. #rb none #codereview Wes.Hunt #tests none Change 2912196 on 2016/03/16 by Mieszko.Zielinski Added a missing #pragma once to GameplayDebuggerCompat.h #Orion #rb Lukasz.Furman #test none Change 2912165 on 2016/03/16 by Lukasz.Furman new gameplay debugger and some replication fixes (disabled by default) uncommment debugger's setup line in FOrionGameModule::StartupModule to enable #orion #rb none #tests yes, a lot. #codereview Mieszko.Zielinski Change 2912065 on 2016/03/16 by Jason.Bestimt [AUTOMERGE] #ORION_MAIN - Copy of DevUI (POST MERGE) @ CL 2912016 #RB:none #Tests:none #CodeReview: matt.schembari -------- Integrated using branch //Orion/Main_to_//Orion/Dev-General of change#2912060 by Jason.Bestimt on 2016/03/16 15:32:56. Change 2912045 on 2016/03/16 by David.Ratti Add support for gameplay cues retrieiving the ability or gameplay effect level of the thing that instigated them. Also added level requirement settings in the addition particle system options in gameplay cues #rb DanY #tests PIE Change 2912030 on 2016/03/16 by Alex.Fennell Merging //Portal/Dev-LibCurl_update/Engine/Source/Runtime/Online/... to //Orion/Dev-General/Engine/Source/Runtime/Online/... support for cookies across curl easy handles in libcurl #TESTS: cookie support confirmed by using the http test targetting google.com #RB: david.nikdel #codereview: david.nikdel, jason.bestimt Change 2911870 on 2016/03/16 by Laurent.Delayen - Added FBranchingPointNotifyPayload used in AnimNotify and AnimNotifyState notifications. - FBranchingPointNotifyPayload includes MontageInstance InstanceID to uniquely identify which Montage it came from. - New notifications are backwards compatible with old. - Added bIsNativeBranchingPoint flag to notify classes to force them into branching points. #rb martin.wilson, frank.gigliotti #tests Kuro VS Rampage abilities in networked PIE Change 2911763 on 2016/03/16 by Nick.Atamas Prevents a re-entrancy crash caused by potentially complex thumbnail generators. In general, we should not be doing heavy lifting in the asset browser until the user has released their mouse. This is especially true when a user is clicking on the content browser tab to bring it to front for the first time. This is probably a good change regardless of the re-entrancy issue. #rb none #test Editor does not crash. #codereview Matt.Kuhlenschmidt Change 2911631 on 2016/03/16 by Dmitry.Rekman Fix AvgPing perfcounter being occasionally NaN (FORT-20523) - Prevent division by zero. #rb none [CL 2917701 by Andrew Grant in Main branch]
2016-03-21 21:11:39 -04:00
NewFullName.Append(Path.GetFullPath(Fragment).TrimEnd(Path.DirectorySeparatorChar));
}
else
{
// Append all the parts of this fragment to the end of the existing path.
int StartIdx = 0;
while (StartIdx < Fragment.Length)
{
// Find the end of this fragment. We may have been passed multiple paths in the same string.
int EndIdx = StartIdx;
while (EndIdx < Fragment.Length && Fragment[EndIdx] != '\\' && Fragment[EndIdx] != '/')
{
EndIdx++;
}
// Ignore any empty sections, like leading or trailing slashes, and '.' directory references.
int Length = EndIdx - StartIdx;
if (Length == 0)
{
// Multiple directory separators in a row; illegal.
throw new ArgumentException("Path fragment '{0}' contains invalid directory separators.");
}
else if (Length == 2 && Fragment[StartIdx] == '.' && Fragment[StartIdx + 1] == '.')
{
// Remove the last directory name
for (int SeparatorIdx = NewFullName.Length - 1; SeparatorIdx >= 0; SeparatorIdx--)
{
if (NewFullName[SeparatorIdx] == Path.DirectorySeparatorChar)
{
NewFullName.Remove(SeparatorIdx, NewFullName.Length - SeparatorIdx);
break;
}
}
}
else if (Length != 1 || Fragment[StartIdx] != '.')
{
// Append this fragment
NewFullName.Append(Path.DirectorySeparatorChar);
NewFullName.Append(Fragment, StartIdx, Length);
}
// Move to the next part
StartIdx = EndIdx + 1;
}
}
}
// Append the directory separator
if (NewFullName.Length == 0 || (NewFullName.Length == 2 && NewFullName[1] == ':'))
{
NewFullName.Append(Path.DirectorySeparatorChar);
}
// Set the new path variables
return NewFullName.ToString();
}
/// <summary>
/// Checks whether this name has the given extension.
/// </summary>
/// <param name="Extension">The extension to check</param>
/// <returns>True if this name has the given extension, false otherwise</returns>
public bool HasExtension(string Extension)
{
if (Extension.Length > 0 && Extension[0] != '.')
{
return HasExtension("." + Extension);
}
else
{
return CanonicalName.EndsWith(Extension.ToLowerInvariant());
}
}
/// <summary>
/// Determines if the given object is at or under the given directory
/// </summary>
/// <param name="Directory"></param>
/// <returns></returns>
public bool IsUnderDirectory(DirectoryReference Other)
{
return CanonicalName.StartsWith(Other.CanonicalName) && (CanonicalName.Length == Other.CanonicalName.Length || CanonicalName[Other.CanonicalName.Length] == Path.DirectorySeparatorChar);
}
/// <summary>
/// Creates a relative path from the given base directory
/// </summary>
/// <param name="Directory">The directory to create a relative path from</param>
/// <returns>A relative path from the given directory</returns>
public string MakeRelativeTo(DirectoryReference Directory)
{
// Find how much of the path is common between the two paths. This length does not include a trailing directory separator character.
int CommonDirectoryLength = -1;
for (int Idx = 0; ; Idx++)
{
if (Idx == CanonicalName.Length)
{
// The two paths are identical. Just return the "." character.
if (Idx == Directory.CanonicalName.Length)
{
return ".";
}
// Check if we're finishing on a complete directory name
if (Directory.CanonicalName[Idx] == Path.DirectorySeparatorChar)
{
CommonDirectoryLength = Idx;
}
break;
}
else if (Idx == Directory.CanonicalName.Length)
{
// Check whether the end of the directory name coincides with a boundary for the current name.
if (CanonicalName[Idx] == Path.DirectorySeparatorChar)
{
CommonDirectoryLength = Idx;
}
break;
}
else
{
// Check the two paths match, and bail if they don't. Increase the common directory length if we've reached a separator.
if (CanonicalName[Idx] != Directory.CanonicalName[Idx])
{
break;
}
if (CanonicalName[Idx] == Path.DirectorySeparatorChar)
{
CommonDirectoryLength = Idx;
}
}
}
// If there's no relative path, just return the absolute path
if (CommonDirectoryLength == -1)
{
return FullName;
}
// Append all the '..' separators to get back to the common directory, then the rest of the string to reach the target item
StringBuilder Result = new StringBuilder();
for (int Idx = CommonDirectoryLength + 1; Idx < Directory.CanonicalName.Length; Idx++)
{
// Move up a directory
Result.Append("..");
Result.Append(Path.DirectorySeparatorChar);
// Scan to the next directory separator
while (Idx < Directory.CanonicalName.Length && Directory.CanonicalName[Idx] != Path.DirectorySeparatorChar)
{
Idx++;
}
}
if (CommonDirectoryLength + 1 < FullName.Length)
{
Result.Append(FullName, CommonDirectoryLength + 1, FullName.Length - CommonDirectoryLength - 1);
}
return Result.ToString();
}
/// <summary>
/// Returns a string representation of this filesystem object
/// </summary>
/// <returns>Full path to the object</returns>
public override string ToString()
{
return FullName;
}
}
/// <summary>
/// Representation of an absolute directory path. Allows fast hashing and comparisons.
/// </summary>
[Serializable]
Copying //UE4/Orion-Staging to //UE4/Main (Source: //Orion/Dev-General @ 2949393) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2949393 on 2016/04/20 by Graeme.Thornton Orion non-pak file security. - Removed security bypass code from platform pak file - Added a delegate to pak file code which allows the game to decide whether a file should be allowed or not - Added an orion delegate which whitelists appropriate files #rb robert.manuszewski #tests win64 client + dedicated server. golden path. Change 2949232 on 2016/04/19 by david.nikdel #ROBOMERGE-AUTHOR: michael.noland Paragon: Added a distinct menu frame rate limit, currently set to 60 fps and not visible in settings (if the user sets a game frame rate limit of below 60, we also clamp the menu limit to that threshold, so they can go down but not up for menus) #jira OR-18017 #rb marcus.wassmer #tests Ran paragon and switched between gameplay, menus, and replays, observing t.MaxFPS at different points #ROBOMERGE-SOURCE: CL 2949231 in //Orion/Main/... #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2949032 on 2016/04/19 by Zak.Middleton #orion - Lower default NetUpdateFrequency for minions (10->6). Avoid excessive latency for some knockback/knockup abilities that would have noticeable lag by forcing an update sooner when they are triggered. This should have the following effects: 1. Reduce server CPU cost (we tick minions at the net frequency). 2. Reduce server bandwidth 3. Reduce client CPU cost (we move character capsules and perform overlaps when new positions are received). #rb Bart.Bressler, John.Pollard #codereview Dmitry.Rekman #tests MultiPIE AI lane, Replays Change 2948966 on 2016/04/19 by Lina.Halper Added log (check) of the asset info for Anim Per Track contains invalid format key #rb: Michael.Noland #code review: Martin.Wilson, Laurent.Delayen, Michael.Noland #tests: editor/ cooked and test with AI_Tests with 10 bots. Change 2948876 on 2016/04/19 by Michael.Noland PS4: Validate that the texture pool size is not set to automatic (-1, which will crash later on as an attempt to allocate too much memory) #rb none #codereview marcus.wassmer #tests Ran Paragon on PS4 Change 2948765 on 2016/04/19 by Daniel.Lamb Removed AssetImportData tag from cooked asset registry builds. #rb Andrew.Grant #test Cook orion Change 2948691 on 2016/04/19 by Marcus.Wassmer Fix copytoresolvetarget ensure #rb none #test pc agora Change 2948633 on 2016/04/19 by david.nikdel #ROBOMERGE-AUTHOR: jason.bestimt [AUTOMERGE] Fix copytoresolve crash and change validation to ensure. #test PC editor / PC golden path #rb none -------- Integrated using branch //Orion/Main_to_//Orion/Release-Next (reversed) of change#2948169 by Marcus.Wassmer on 2016/04/19 10:50:32. #ROBOMERGE-SOURCE: CL 2948632 in //Orion/Main/... #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2948507 on 2016/04/19 by david.nikdel #ROBOMERGE-AUTHOR: andrew.grant Merging 2937781 (Pak signing) using //Orion/Dev-General_to_Release #rb none #tests cooked client, checked game runs #ROBOMERGE-SOURCE: CL 2948497 in //Orion/Release-0.24.1/... via CL 2948506 #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2948431 on 2016/04/19 by Steve.Robb CL#s 2919775 and 2942793 integrated to prevent annotation map performance problems on shutdown and asserts in PIE. #codereview robert.manuszewski,bob.tellez #rb bob.tellez #tests Ran editor Change 2948408 on 2016/04/19 by Leslie.Nivison Adding .tps #rb none #test none Change 2948185 on 2016/04/19 by david.nikdel #ROBOMERGE-AUTHOR: chris.bunner Fix for HLOD visibility freeze. #tests Golden Path, Editor #rb rolando.caloca, michael.noland #lockdown andrew.grant #jira OR-19863 #ROBOMERGE-SOURCE: CL 2948182 in //Orion/Release-0.24.1/... via CL 2948183 #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2948149 on 2016/04/19 by Simon.Tovey Fixed crash. Collision rendering path was not dealing with mesh batch with 0 triangles where other paths do. #rb none #tests No more crash #codereview Marcus.Wassmer Change 2948129 on 2016/04/19 by Lukasz.Furman fixed gameplay debugger getting stuck with outdated data pack on client, changed names of AI related debug cvars #rb none #tests game, PIE #codereview Mieszko.Zielinski Change 2948027 on 2016/04/19 by david.nikdel #ROBOMERGE-AUTHOR: graeme.thornton Fix for OR-20033 - CRASH: Client will crash with FRCPassPostProcessCircleDOFSetup #rb none #tests checked game runs without crashing #ROBOMERGE-SOURCE: CL 2948017 in //Orion/Main/... #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2947558 on 2016/04/18 by Matt.Kuhlenschmidt Fix compile error #rb none, #tests none Change 2947509 on 2016/04/18 by Matt.Kuhlenschmidt Added more logging to track down https://jira.ol.epicgames.net/browse/OR-19841 #rb none, #tests none Change 2947412 on 2016/04/18 by Ryan.Gerleve Fix shadowed variable. #rb none #tests none Change 2947377 on 2016/04/18 by Jamie.Dale Gather paths are now sorted by fuzzy-ness, so that more specific includes beat less specific excludes #rb Matt.Kuhlenschmidt #tests Built for Windows. Ran a gather, and confirmed that explicitly included heroes were now gathered, and that generically excluded heroes were absent from the gather. Change 2947351 on 2016/04/18 by Ryan.Gerleve Allow overriding the demo.AsyncLoadWorld setting with a URL option when playing a replay. Store the entire URL in the demo net driver instead of just the map name, so that the options can be accessed later. #tests golden path, replays #rb john.pollard Change 2947103 on 2016/04/18 by david.nikdel #ROBOMERGE-AUTHOR: jason.bestimt #ORION_MAIN - Merge 24.1 @ CL 2947071 #RB:none #Tests:none #ROBOMERGE-SOURCE: CL 2947102 in //Orion/Main/... #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2947007 on 2016/04/18 by Zak.Middleton #ue4 - Improve linear smoothing in the presence of low net frequency updates. #rb Bart.Bressler #tests MultiPIE AI with lanes Change 2946994 on 2016/04/18 by Mieszko.Zielinski Improvements to NavigationSystem's "abstract navigation data" support #UE4 #rb Lukasz.Furman #test golden path Change 2946760 on 2016/04/18 by Chris.Bunner Fixing up bad merge, recommit of CL 2819472 - ForceLOD now clamps to available LODs on primitive, i.e. use MinLOD rather than not drawing at all. #tests Editor #rb None Change 2946745 on 2016/04/18 by david.nikdel #ROBOMERGE-AUTHOR: jason.bestimt #ORION_MAIN - Merge 24.1 @ CL 2946637 #RB:none #Tests:none #ROBOMERGE-SOURCE: CL 2946656 in //Orion/Main/... #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2946645 on 2016/04/18 by Richard.Fawcett When promoting a buidl to staged, prevent enumeration of files already in S3 Enumerating files in S3 is a slow process, and it turns out that simply uploading all chunks blindly is more efficient than enumerating existing chunks and selectively uploading only the new ones. #rb Leigh.Swift #tests This technique has already been used in launcher promotions for several months Change 2946622 on 2016/04/18 by Richard.Fawcett By default, when enumerating chunks from a manifest file, skip checking they exist on disk at enumeration time. This will fail anyway further down the line if the files don't exist, but will improve speed of stage promotions by around five minutes. In practice, we have NEVER seen a job fail at this point because of the existence check. #rb Leigh.Swift #tests Ensure that output of ExtractDataFilenamesFromManifest method is identical both with and without bSkipExistsCheck specified. Change 2945812 on 2016/04/15 by Daniel.Lamb Fixed error in diff cooked build commandlet. #rb ben.marsh #test Compile. Change 2945110 on 2016/04/15 by Matt.Kuhlenschmidt Fix crash exporting actors with non-scene components to fbx #rb none, #tests full scene exporting on maps that crashed #codereview alexis.matte Change 2945078 on 2016/04/15 by Simon.Tovey Fix for OR-19778 When some pooled systems are reused, on init they have a non zero lod level but the emitter instances are created at LOD 0 initially. So the component did not think it had to update it's LOD but the emitters were not at the correct LOD. Have forced a LOD set on init when the component LOD is non-zero. #rb none #tests Works in editor and game. #codereview Olaf.Piesche Change 2944664 on 2016/04/14 by Uriel.Doyon Fix to SM4 compilation issue #jira OR-19706 #rb marcus.wassmer #tests tested editor in SM4 and SM5 Change 2944642 on 2016/04/14 by Lukasz.Furman changed waypoint switch conditions in meta nav paths #rb none #tests PIE #codereview Mieszko.Zielinski Change 2944599 on 2016/04/14 by david.nikdel #ROBOMERGE-AUTHOR: andrew.grant Added sha1 to UnrealPak list output #rb none #tests listed content of pakfile #ROBOMERGE-SOURCE: CL 2944595 in //Orion/Release-0.24/... via CL 2944597 via CL 2944598 #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2944441 on 2016/04/14 by Marcus.Wassmer Duplicate change to output shader compiler errors. #rb none #test run PC and see errors. Change 2944437 on 2016/04/14 by John.Pollard Possible fix for https://jira.ol.epicgames.net/browse/OR-19614 #rb JoshM #codereview Josh.Markiewicz #tests Golden path matchmaking Change 2944430 on 2016/04/14 by david.nikdel #ROBOMERGE-AUTHOR: michael.noland Engine: Added support for more/fewer settings in individual categories to the editor scalability control widget #rb david.ratti #tests Tested in the editor #ROBOMERGE-SOURCE: CL 2944428 in //Orion/Main/... #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2944198 on 2016/04/14 by David.Ratti Paragon - register for slow/stun/root/silence callbacks on any tag count change, not just add/remove. This is so the UI will update if you get another stack of a stackable slow GE. Ability system - unify client stack count change code path with server. Client now properly update owner ASC's tag map and broadcasts all delegates there. #rb dayY #tests pie Change 2944124 on 2016/04/14 by Wes.Hunt Change the TPS redirects for DX modules to point to the proper DX redist TPS which is what packaged games will need. #codereview:leslie.nivison #rb none #tests ran UAT ListThirdPartySoftware <for Orion> Change 2944107 on 2016/04/14 by Wes.Hunt MeshUtilities now depends on new module nvTessLib to better track the third party dependency. #codereview:daniel.wright #rb none #tests build OrionClient/Editor for Win64 Change 2944102 on 2016/04/14 by Wes.Hunt Tweak to UBT -ListBuildFolders to do a distinct in a better place to cut down on duplicate module searches. #tests ran the UBT command #rb none Change 2943851 on 2016/04/14 by Ryan.Gerleve Fix the ForEachNetDriver helper function to get the world context directly off the world instead of going through the game instance. Ensures the correct net drivers will be used when there are multiple worlds but only one game instance. #rb john.pollard #tests golden path, replays, PIE Change 2943847 on 2016/04/14 by Ryan.Gerleve Fixes to support client replay recording & playback in another world: When recording a replay, only swap actor roles if the remote role is ROLE_Authority When loading a replay checkpoint, call NetworkRemapPath to make sure paths have the correct name in the GuidCache #rb john.pollard #tests golden path, replays, PIE Change 2943691 on 2016/04/14 by david.nikdel #ROBOMERGE-AUTHOR: jason.bestimt #ORION_24 - Fix for OR-19609, OR-19610, and OR-19611 #RB:none #Tests:none #ROBOMERGE-SOURCE: CL 2943687 in //Orion/Release-0.24/... via CL 2943688 #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2943508 on 2016/04/14 by Richard.Fawcett Automation: Add support for multipart file uploads to Amazon S3 to increase speed of large file uploads. #jira OPPBUILD-44 #rb Leigh.Swift #tests Uploaded files to S3 using the new routines, downlaoded via AWS management console and ensured downloaded files identical to uploaded ones Change 2943274 on 2016/04/13 by jason.bestimt #ORION_MAIN - Merge 24 @ CL 2943257 #RB:none #Tests:none #ROBOMERGE-SOURCE: CL 2943271 in //Orion/Main/... #ROBOMERGE-BOT: ORION (Main -> Dev-General) #ROBOMERGE-SAYS: Beep boop! I couldn't merge this change. Please do it yourself, human. #CodeReview: david.nikdel, jason.bestimt Change 2943178 on 2016/04/13 by Olaf.Piesche Bumping size of the particle curve texture to 512x512 #rb martin.mittring #tests PC Editor, Game Change 2943174 on 2016/04/13 by Aaron.McLeran OR-19392 Ensure condition failed: (*RequiresInitialization == 0) on loading into PVP match - Removing ensure since there is a rare edge case where it's possible for a sound looping node may get ResetChildren called twice. - Condition is when a child random node o fa looping node has a blank entry and results in no sound chosen in a given frame (which results in ResetChildren getting called). Later in the frame, if a sound had previously been playing with an active sound, it will have stop called on it, which will call NotifyWaveInstanceFinished and hit the ensure. Simply using the branch to check if the looping node has been initialized will work fine in this and other cases. #codereview Bob.Tellez #rb Bob.Tellez #tests ran orion with this change testing problematic sound cue Change 2943042 on 2016/04/13 by Rob.Cannaday Fix crash in HTTP completion delegates on shutdown Stop ticking HTTP retry manager after FOnlineSubsystemImpl::Shutdown has been called #rb josh.markiewicz #tests shutting down multiple times Change 2942913 on 2016/04/13 by Lukasz.Furman added meta navmesh paths #orion #rb Mieszko.Zielinski #tests PIE Change 2942132 on 2016/04/13 by Wes.Hunt Enable UBT -ListBuildFolders to operate on Mac and iOS platforms without having to fully set up the remote environment. #codereview:leslie.nivison #rb peter.sauerbrei #tests running UBT with and without -listbuildfolders Change 2941651 on 2016/04/12 by Jason.Bestimt #ORION_DG - Merge MAIN @ CL 2941645 #RB:none #Tests:none Change 2941539 on 2016/04/12 by Laurent.Delayen FABRIK: Normalize outgoing rotations. Fixes Chains Q ability crashing. #rb none #tests Chains not crashing Change 2941469 on 2016/04/12 by Wes.Hunt Fix UBT -ListBuildFolders to not prep target for deployment. #codereview:leslie.nivison #rb none #tests tested -ListBuildFolders for Android Change 2941434 on 2016/04/12 by Leslie.Nivison Adding/cleaning up .tps files #rb none #test none Change 2941241 on 2016/04/12 by Daniel.Lamb Removed shadername from the shader code to fix deterministic material cooking issue. #jira UE-29320 #codereview Marcus.Wassmer #rb Marcus.Wassmer #test Running editor, cooking orion. Change 2941046 on 2016/04/12 by Laurent.Delayen Added safety net for non state AnimNotifies having a non-zero EndTriggerTimeOffset. Fixes Twinblast double shot for the left primary attack. #rb benn.gallagher #codereview lina.halper, ray.arnett, aaron.eady #tests twinblast's LMB Change 2941032 on 2016/04/12 by Jason.Bestimt #ORION_24 - Merge MAIN @ CL 2940950 #RB:none #Tests:none [CL 2952833 by Andrew Grant in Main branch]
2016-04-22 11:21:10 -04:00
public class DirectoryReference : FileSystemReference, IEquatable<DirectoryReference>
{
/// <summary>
/// Default constructor.
/// </summary>
/// <param name="InPath">Path to this directory.</param>
public DirectoryReference(string InPath)
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3075869) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3059740 on 2016/07/21 by Ben.Marsh Format license violations on separate lines rather than as a single multi-line string, so they can be parsed out correctly by the EC log parser. Change 3063115 on 2016/07/25 by Ben.Marsh Add missing projects to Mono AutomationTool solution. Change 3067125 on 2016/07/27 by Ben.Marsh Clean up and document the engine versioning system. * Version.h has a summary of all the different versioning concepts in UE4, as well as an explanation of what all the macros do. * VersionLocked.h has been removed. ENGINE_NET_VERSION and ENGINE_REPLAY_VERSION can be overriden directly in Version.h if necessary. * Added explicit macros for ENGINE_CURRENT_CL_VERSION And ENGINE_COMPATIBLE_CL_VERSION. The MODULE_API_VERSION macro is now defined to be the same as ENGINE_COMPATIBLE_CL_VERSION. * Build/Build.version now includes the compatible CL version, so it can be determined without having to parse header files inside MacToolChain.cs. * UpdateLocalVersion UAT command now exposes a -CompatibleCL=... argument to update ENGINE_COMPATIBLE_CL_VERSION and the CompatibleChange property in Build.version. * SetVersion BuildGraph task now has a CompatibleChange="" attribute to update ENGINE_COMPATIBLE_CL_VERSION and the CompatibleChange property in Build.version. * VersionFileUpdater now makes an effort to parse tokens matching the macros it's going to overwrite, rather than requiring exact matches in whitespace in Version.h. * Running UpdateLocalVersion now syncs files to revision 0 before writing if P4 is enabled, similarly to UGS, or fails if they are not writable. Change 3067242 on 2016/07/27 by Ben.Marsh Fix UGS showing a build failure/warning dialog immediately if you submit while the build is yellow/red. Now ignores builds before your last submitted CL. Change 3068116 on 2016/07/28 by Ben.Marsh Add a small Windows utility to terminate all running processes under a given root directory, and run it before and after every sync. Mean to fix instances where zombie editor processes do not terminate correctly and cause subsequent syncs to fail. Change 3068246 on 2016/07/28 by Ben.Marsh UGS: Improvements to 'Clean Workspace' dialog - empty folders are now set to be deleted by default, and added a context menu to select all/none/empty/default for a subtree, as well as to open Windows explorer at that location. Change 3068573 on 2016/07/28 by Ben.Marsh Attempt to fix AppDomain unload errors; suspect caused by delay to terminate child processes when managed exception is thrown on child threads. Now waits for the currently running threads to finish executing before quitting. Change 3068575 on 2016/07/28 by Ben.Marsh Respect the -noxge command-line argument when compiling UHT. Change 3068665 on 2016/07/28 by Ben.Marsh Delete any DLLs in output folders which share names with build products. The Windows loader reads DLLs from the first location it finds a file with a matching name, so we need to ensure that it doesn't load stale DLLs when output directories are changed (moving a module into a plugin, for example). Change 3073316 on 2016/08/02 by Ben.Marsh CoreUObject: Replace header guards with #pragma once directives. Change 3073325 on 2016/08/02 by Ben.Marsh CoreUObject: Manually untangle a few circular includes around ObjectBase.h and Class.h to allow making them into IWYU-style headers. Change 3074391 on 2016/08/02 by Ben.Marsh GitHub #2646: Always allow programs to build as part of non-game solution configurations. Change 3075123 on 2016/08/03 by Richard.Fawcett Ensure that zip files created outside of Ionic Zip can be unzipped with CommandUtils.UnzipFiles Zip files created with 7-zip, WinRAR, and Windows Explorer all contain entities for directories, not just the files in them. Code in CommandUtils.UnzipFiles made the assumption that all entities in the zip file were files, and an exception was being thrown on encountering a directory. Change 3075848 on 2016/08/03 by Ben.Marsh UBT: Fix a few cases where it's possible to construct a non-canonical DirectoryReference - root directories on Windows must always have a terminating slash, but any other directories must note. DirectoryInfo and Path.GetFullPath() do not enforce this requirement. Change 3075850 on 2016/08/03 by Ben.Marsh UBT: Fix UHT failures when running with -nopch. Change 3077058 by Ben.Marsh UHT: Remove the auto-generated ObjectBase.h include from generated header files. Was originally added to allow doxygen to parse headers more easily, but was switched to parsing the file only as part of parent files instead. [CL 3077308 by Ben Marsh in Main branch]
2016-08-04 10:41:07 -04:00
: base(FixTrailingPathSeparator(Path.GetFullPath(InPath)))
{
}
/// <summary>
/// Construct a DirectoryReference from a DirectoryInfo object.
/// </summary>
/// <param name="InInfo">Path to this file</param>
public DirectoryReference(DirectoryInfo InInfo)
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3075869) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3059740 on 2016/07/21 by Ben.Marsh Format license violations on separate lines rather than as a single multi-line string, so they can be parsed out correctly by the EC log parser. Change 3063115 on 2016/07/25 by Ben.Marsh Add missing projects to Mono AutomationTool solution. Change 3067125 on 2016/07/27 by Ben.Marsh Clean up and document the engine versioning system. * Version.h has a summary of all the different versioning concepts in UE4, as well as an explanation of what all the macros do. * VersionLocked.h has been removed. ENGINE_NET_VERSION and ENGINE_REPLAY_VERSION can be overriden directly in Version.h if necessary. * Added explicit macros for ENGINE_CURRENT_CL_VERSION And ENGINE_COMPATIBLE_CL_VERSION. The MODULE_API_VERSION macro is now defined to be the same as ENGINE_COMPATIBLE_CL_VERSION. * Build/Build.version now includes the compatible CL version, so it can be determined without having to parse header files inside MacToolChain.cs. * UpdateLocalVersion UAT command now exposes a -CompatibleCL=... argument to update ENGINE_COMPATIBLE_CL_VERSION and the CompatibleChange property in Build.version. * SetVersion BuildGraph task now has a CompatibleChange="" attribute to update ENGINE_COMPATIBLE_CL_VERSION and the CompatibleChange property in Build.version. * VersionFileUpdater now makes an effort to parse tokens matching the macros it's going to overwrite, rather than requiring exact matches in whitespace in Version.h. * Running UpdateLocalVersion now syncs files to revision 0 before writing if P4 is enabled, similarly to UGS, or fails if they are not writable. Change 3067242 on 2016/07/27 by Ben.Marsh Fix UGS showing a build failure/warning dialog immediately if you submit while the build is yellow/red. Now ignores builds before your last submitted CL. Change 3068116 on 2016/07/28 by Ben.Marsh Add a small Windows utility to terminate all running processes under a given root directory, and run it before and after every sync. Mean to fix instances where zombie editor processes do not terminate correctly and cause subsequent syncs to fail. Change 3068246 on 2016/07/28 by Ben.Marsh UGS: Improvements to 'Clean Workspace' dialog - empty folders are now set to be deleted by default, and added a context menu to select all/none/empty/default for a subtree, as well as to open Windows explorer at that location. Change 3068573 on 2016/07/28 by Ben.Marsh Attempt to fix AppDomain unload errors; suspect caused by delay to terminate child processes when managed exception is thrown on child threads. Now waits for the currently running threads to finish executing before quitting. Change 3068575 on 2016/07/28 by Ben.Marsh Respect the -noxge command-line argument when compiling UHT. Change 3068665 on 2016/07/28 by Ben.Marsh Delete any DLLs in output folders which share names with build products. The Windows loader reads DLLs from the first location it finds a file with a matching name, so we need to ensure that it doesn't load stale DLLs when output directories are changed (moving a module into a plugin, for example). Change 3073316 on 2016/08/02 by Ben.Marsh CoreUObject: Replace header guards with #pragma once directives. Change 3073325 on 2016/08/02 by Ben.Marsh CoreUObject: Manually untangle a few circular includes around ObjectBase.h and Class.h to allow making them into IWYU-style headers. Change 3074391 on 2016/08/02 by Ben.Marsh GitHub #2646: Always allow programs to build as part of non-game solution configurations. Change 3075123 on 2016/08/03 by Richard.Fawcett Ensure that zip files created outside of Ionic Zip can be unzipped with CommandUtils.UnzipFiles Zip files created with 7-zip, WinRAR, and Windows Explorer all contain entities for directories, not just the files in them. Code in CommandUtils.UnzipFiles made the assumption that all entities in the zip file were files, and an exception was being thrown on encountering a directory. Change 3075848 on 2016/08/03 by Ben.Marsh UBT: Fix a few cases where it's possible to construct a non-canonical DirectoryReference - root directories on Windows must always have a terminating slash, but any other directories must note. DirectoryInfo and Path.GetFullPath() do not enforce this requirement. Change 3075850 on 2016/08/03 by Ben.Marsh UBT: Fix UHT failures when running with -nopch. Change 3077058 by Ben.Marsh UHT: Remove the auto-generated ObjectBase.h include from generated header files. Was originally added to allow doxygen to parse headers more easily, but was switched to parsing the file only as part of parent files instead. [CL 3077308 by Ben Marsh in Main branch]
2016-08-04 10:41:07 -04:00
: base(FixTrailingPathSeparator(InInfo.FullName))
{
}
/// <summary>
/// Constructor for creating a directory object directly from two strings.
/// </summary>
/// <param name="InFullName"></param>
/// <param name="InCanonicalName"></param>
protected DirectoryReference(string InFullName, string InCanonicalName)
: base(InFullName, InCanonicalName)
{
}
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3075869) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3059740 on 2016/07/21 by Ben.Marsh Format license violations on separate lines rather than as a single multi-line string, so they can be parsed out correctly by the EC log parser. Change 3063115 on 2016/07/25 by Ben.Marsh Add missing projects to Mono AutomationTool solution. Change 3067125 on 2016/07/27 by Ben.Marsh Clean up and document the engine versioning system. * Version.h has a summary of all the different versioning concepts in UE4, as well as an explanation of what all the macros do. * VersionLocked.h has been removed. ENGINE_NET_VERSION and ENGINE_REPLAY_VERSION can be overriden directly in Version.h if necessary. * Added explicit macros for ENGINE_CURRENT_CL_VERSION And ENGINE_COMPATIBLE_CL_VERSION. The MODULE_API_VERSION macro is now defined to be the same as ENGINE_COMPATIBLE_CL_VERSION. * Build/Build.version now includes the compatible CL version, so it can be determined without having to parse header files inside MacToolChain.cs. * UpdateLocalVersion UAT command now exposes a -CompatibleCL=... argument to update ENGINE_COMPATIBLE_CL_VERSION and the CompatibleChange property in Build.version. * SetVersion BuildGraph task now has a CompatibleChange="" attribute to update ENGINE_COMPATIBLE_CL_VERSION and the CompatibleChange property in Build.version. * VersionFileUpdater now makes an effort to parse tokens matching the macros it's going to overwrite, rather than requiring exact matches in whitespace in Version.h. * Running UpdateLocalVersion now syncs files to revision 0 before writing if P4 is enabled, similarly to UGS, or fails if they are not writable. Change 3067242 on 2016/07/27 by Ben.Marsh Fix UGS showing a build failure/warning dialog immediately if you submit while the build is yellow/red. Now ignores builds before your last submitted CL. Change 3068116 on 2016/07/28 by Ben.Marsh Add a small Windows utility to terminate all running processes under a given root directory, and run it before and after every sync. Mean to fix instances where zombie editor processes do not terminate correctly and cause subsequent syncs to fail. Change 3068246 on 2016/07/28 by Ben.Marsh UGS: Improvements to 'Clean Workspace' dialog - empty folders are now set to be deleted by default, and added a context menu to select all/none/empty/default for a subtree, as well as to open Windows explorer at that location. Change 3068573 on 2016/07/28 by Ben.Marsh Attempt to fix AppDomain unload errors; suspect caused by delay to terminate child processes when managed exception is thrown on child threads. Now waits for the currently running threads to finish executing before quitting. Change 3068575 on 2016/07/28 by Ben.Marsh Respect the -noxge command-line argument when compiling UHT. Change 3068665 on 2016/07/28 by Ben.Marsh Delete any DLLs in output folders which share names with build products. The Windows loader reads DLLs from the first location it finds a file with a matching name, so we need to ensure that it doesn't load stale DLLs when output directories are changed (moving a module into a plugin, for example). Change 3073316 on 2016/08/02 by Ben.Marsh CoreUObject: Replace header guards with #pragma once directives. Change 3073325 on 2016/08/02 by Ben.Marsh CoreUObject: Manually untangle a few circular includes around ObjectBase.h and Class.h to allow making them into IWYU-style headers. Change 3074391 on 2016/08/02 by Ben.Marsh GitHub #2646: Always allow programs to build as part of non-game solution configurations. Change 3075123 on 2016/08/03 by Richard.Fawcett Ensure that zip files created outside of Ionic Zip can be unzipped with CommandUtils.UnzipFiles Zip files created with 7-zip, WinRAR, and Windows Explorer all contain entities for directories, not just the files in them. Code in CommandUtils.UnzipFiles made the assumption that all entities in the zip file were files, and an exception was being thrown on encountering a directory. Change 3075848 on 2016/08/03 by Ben.Marsh UBT: Fix a few cases where it's possible to construct a non-canonical DirectoryReference - root directories on Windows must always have a terminating slash, but any other directories must note. DirectoryInfo and Path.GetFullPath() do not enforce this requirement. Change 3075850 on 2016/08/03 by Ben.Marsh UBT: Fix UHT failures when running with -nopch. Change 3077058 by Ben.Marsh UHT: Remove the auto-generated ObjectBase.h include from generated header files. Was originally added to allow doxygen to parse headers more easily, but was switched to parsing the file only as part of parent files instead. [CL 3077308 by Ben Marsh in Main branch]
2016-08-04 10:41:07 -04:00
/// <summary>
/// Ensures that the correct trailing path separator is appended. On Windows, the root directory (eg. C:\) always has a trailing path separator, but no other
/// path does.
/// </summary>
/// <param name="DirName">Absolute path to the directory</param>
/// <returns>Path to the directory, with the correct trailing path separator</returns>
private static string FixTrailingPathSeparator(string DirName)
{
if(DirName.Length == 2 && DirName[2] == ':')
{
return DirName + Path.DirectorySeparatorChar;
}
else if(DirName.Length == 3 && DirName[1] == ':' && DirName[2] == Path.DirectorySeparatorChar)
{
return DirName;
}
else if(DirName.Length > 1 && DirName[DirName.Length - 1] == Path.DirectorySeparatorChar)
{
return DirName.TrimEnd(Path.DirectorySeparatorChar);
}
else
{
return DirName;
}
}
/// <summary>
/// Gets the top level directory name
/// </summary>
/// <returns>The name of the directory</returns>
public string GetDirectoryName()
{
return Path.GetFileName(FullName);
}
/// <summary>
/// Gets the directory containing this object
/// </summary>
/// <returns>A new directory object representing the directory containing this object</returns>
public DirectoryReference ParentDirectory
{
get
{
if (IsRootDirectory())
{
return null;
}
int ParentLength = CanonicalName.LastIndexOf(Path.DirectorySeparatorChar);
if (ParentLength == 2 && CanonicalName[1] == ':')
{
ParentLength++;
}
return new DirectoryReference(FullName.Substring(0, ParentLength), CanonicalName.Substring(0, ParentLength));
}
}
/// <summary>
/// Gets the parent directory for a file
/// </summary>
/// <param name="File">The file to get directory for</param>
/// <returns>The full directory name containing the given file</returns>
public static DirectoryReference GetParentDirectory(FileReference File)
{
int ParentLength = File.CanonicalName.LastIndexOf(Path.DirectorySeparatorChar);
return new DirectoryReference(File.FullName.Substring(0, ParentLength), File.CanonicalName.Substring(0, ParentLength));
}
/// <summary>
/// Creates the directory
/// </summary>
public void CreateDirectory()
{
Directory.CreateDirectory(FullName);
}
Copying //UE4/Dev-Physics to //UE4/Dev-Main (Source: //UE4/Dev-Physics @ 3140333) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Copying //UE4/Dev-Physics-Upgrade to //UE4/Dev-Physics (Source: //UE4/Dev-Physics-Upgrade @ 3140195) ========================== MAJOR FEATURES + CHANGES ========================== Change 2954345 on 2016/04/25 by Thomas.Sarkanen Merging in latest 3.4 code drop from NVIDIA using DevPhysicsUpgrade_To_NVIDIA_PhysX34 Change 2954421 on 2016/04/25 by Thomas.Sarkanen Removed old PhysX 3.3 and APEX 1.3 Change 2955821 on 2016/04/26 by Thomas.Sarkanen Back out changelist 2954345 Change 2955880 on 2016/04/26 by Thomas.Sarkanen Merging using DevPhysicsUpgrade_To_NVIDIA_PhysX34 Attempt to re-integrate after botched merge in CL 2954345. Cherry picking only PhysX directories, auto-merging accepting source, forcing integration. Change 2957403 on 2016/04/27 by Thomas.Sarkanen Adding initial UAT script for PhysX/APEX Change 2957690 on 2016/04/27 by Thomas.Sarkanen Upgraded BuildPhysX to call CMake directly Now all that is needed are the CMakeLists.txt files, rather than slightly shaky batch files. Still need to make the CMake command line handling a bit more sane and move into more conventional directories like \Win64\VS2015\ etc. Added RemoveDirectory() to DirectoryReference. Change 2960653 on 2016/04/29 by Thomas.Sarkanen Updated BuildPhysX script to target engine-style directory structures We now build directly into (e.g.) Win64\VS2015 directories. Also updated to build using multiple compiler versions. Change 2964162 on 2016/05/03 by Thomas.Sarkanen Added deployment to BuildPhysX script Script now copies source, binaries and libs to appropriate directories & can optionally auto-submit (note this is turned ON by default! Use -SkipSubmit to disable). Change 2964171 on 2016/05/03 by Thomas.Sarkanen BuildPhysX script: Added switch to disable auto-submit seperately from changelist creation Allows easier dry-run testing. Change 2964245 on 2016/05/03 by Thomas.Sarkanen Added external binary deployment to BuildPhysX script May still need to add the OpenGL binaries if need be Change 2968733 on 2016/05/06 by Thomas.Sarkanen Filter out Source\compiler when deploying Also updated cmake invocation to redirect output correctly. Oddly cmake redirects non-errors via stderr, so we only redirect stdout in this case. Change 2978738 on 2016/05/16 by Thomas.Sarkanen Added PhysX Vehicle and Extensions libs/binaries to deployment My previous wildcard filter didnt pick them up. Change 2978741 on 2016/05/16 by Thomas.Sarkanen Removed PhysX 3.3 and APEX 1.3 binaries Change 2982013 on 2016/05/18 by Thomas.Sarkanen Upgrade engine to PhysX 3.4 & APEX 1.4 Change 2983305 on 2016/05/19 by Thomas.Sarkanen Fixed BuildPhysX script to deploy missing libs Change 2983384 on 2016/05/19 by Thomas.Sarkanen Fix compiler and linker issues found when batch compiling all available platforms/configs PhysXCollision.cpp: Clang seems to have issues with inheriting from a templated base class & accessing base members, so qualified with "this->". Added missing libs to Win32 build. Change 2987027 on 2016/05/23 by Chad.Garyet Merging the main integration into dev-physics into dev-physics-upgrade per Ori. Change 2988274 on 2016/05/24 by Thomas.Sarkanen Fixup compilation issues post-merge from Main Change 3035770 on 2016/07/01 by Thomas.Sarkanen Updated cmake scripts Added GeomUtils include & missing files Specified PDB generation for all dlls. Removed VS2013 from default compilers list. Change 3036954 on 2016/07/04 by Thomas.Sarkanen Removing APEX and PhysX binaries Change 3037006 on 2016/07/04 by Thomas.Sarkanen Removing old PhysX source Change 3037400 on 2016/07/05 by Thomas.Sarkanen Make sure to set GW_DEPS_ROOT environment variable Otherwise CMake can pick up old files or fail to build projects. Change 3037763 on 2016/07/05 by Thomas.Sarkanen Make sure we default to older convex hull generation method. New method doesnt deal with degenerate cases as well as the old so if we want to use it we will need better fallback code. Change 3039192 on 2016/07/06 by Thomas.Sarkanen Fixed destructible & convex collision not generating correct hulls Reverted to older hull generaiton method as thinner meshes are not being generated correctly with the new eQUICK_HULL method. Also made sure to set cooking params correctly (previously params were only set the first time a deformable mesh was cooked). PCM is enabled now by default so hooked up the flag to correctly disbale it. Bumped the DDC GUID to force a re-cook of convex meshes. Change 3039236 on 2016/07/06 by Thomas.Sarkanen Prevented warning log spam from fetchResults() APEX does not call simulate() on the PhysX scene if there are no actors, so we duplicate the logic and dont call simulate() or fetchResults() if there are no actors present. #jira UE-31515 - NpScene.cpp 2304 eINVALID_OPERATION : PxScene::fetchResults: fetchResults() called illegally! - Error when playing in First Person template Change 3039244 on 2016/07/06 by Thomas.Sarkanen Bumped the landscape version DDC key to force a heightfield re-cook #jjira UE-31532 - Landscapes do not have collision Change 3040887 on 2016/07/07 by Thomas.Sarkanen Stopped onWake() callbacks being fired when objects are initially sleeping Objects start awake in the new PhysX, so we require an explicit putToSleep() call rather than relying on the wake timer timeout. #jira UE-31504 - Physics-enabled component is awake even with Start Awake disabled Change 3067119 on 2016/07/27 by Ori.Cohen Merging //UE4/Dev-Physics to Dev-Physics-Upgrade (//UE4/Dev-Physics-Upgrade) Change 3068266 on 2016/07/28 by Thomas.Sarkanen Fixed standalone building of solutions Also added CMake directories to deployment script Change 3073437 on 2016/08/02 by Ori.Cohen Added custom code for finding convex faces. This is to get the most opposing normal behavior. #JIRA UE-31512, UE-31533 Change 3075553 on 2016/08/03 by Ori.Cohen Fix deprecated SafeNormal vs GetSaveNormal Change 3077938 on 2016/08/04 by Ori.Cohen Fix bad constraint issue when waking up kinematic actors Change 3077939 on 2016/08/04 by Ori.Cohen Fix limits of size 0 going into physx constraints. Change 3080809 on 2016/08/08 by Marc.Audy Merging //UE4/Dev-Physics to Dev-Physics-Upgrade (//UE4/Dev-Physics-Upgrade) Resolved BodyInstance.cpp conflicts in UpdateInstanceSimulatePhysics Change 3085212 on 2016/08/11 by Thomas.Sarkanen Updated CMake command lines now that platforms are in seperate directories BuildPhysX script now works again Change 3090340 on 2016/08/16 by Benn.Gallagher Fixed usage of setRigidDynamicFlag after API change Change 3090892 on 2016/08/16 by Marc.Audy Merging //UE4/Dev-Physics to Dev-Physics-Upgrade (//UE4/Dev-Physics-Upgrade) Change 3093595 on 2016/08/18 by Benn.Gallagher Fixed new code coming down from main to new APIs Change 3099294 on 2016/08/24 by Sheikh.Dawood.Abdul.Ajees Merging //UE4/Dev-Physics-Upgrade/PhysX/... to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/... Change 3099296 on 2016/08/24 by Sheikh.Dawood.Abdul.Ajees -PhysX in-place build from Engine folder -Optional loading or NvToolsExt Change 3101628 on 2016/08/25 by Ori.Cohen Make cmake portable and fixup generated projects to use proper lib/dll output Change 3101634 on 2016/08/25 by Ori.Cohen Temp script to make it easy to generate projects using UAT Change 3101714 on 2016/08/25 by Ori.Cohen CMake distributed for building without install Change 3101719 on 2016/08/25 by Ori.Cohen Fix non-install cmake not working for ps4. Also update toolchain paths and compiler. Change 3101777 on 2016/08/25 by Ori.Cohen Fix accidently skipping generating solutions. Change 3101866 on 2016/08/25 by Ori.Cohen Fix second run of cmake not being able to delete readonly cmake files copied over Change 3102520 on 2016/08/26 by Ori.Cohen BuildPhysX.Automation: Deploying PhysX & APEX libs. Change 3102531 on 2016/08/26 by Ori.Cohen Up DDC version for new physx libs Change 3102572 on 2016/08/26 by Ori.Cohen Fix lib to Lib and also remove dead code related to deploy which we no longer need Change 3102656 on 2016/08/26 by Sheikh.Dawood.Abdul.Ajees Add pdbs to static libs. Change 3102745 on 2016/08/26 by Ori.Cohen Fix physxbuild ignoring lib PDBs now that they are correctly generating. Change 3102750 on 2016/08/26 by Benn.Gallagher Fix for explosive fracture events due to changes in mesh inflation. Change 3102855 on 2016/08/26 by Ori.Cohen Added lib pdbs Change 3106690 on 2016/08/30 by Ori.Cohen Fix external physx cmake modules path being set incorrectly Change 3107042 on 2016/08/30 by Ori.Cohen Fix namespace typo and add ImmediateMode to cmake Change 3107304 on 2016/08/30 by Sheikh.Dawood.Abdul.Ajees Fix PhysX lib rename Change 3108078 on 2016/08/31 by Ori.Cohen Move ImmediateMode module inside physx. Change 3108276 on 2016/08/31 by Ori.Cohen Immediate mode is now compiled Change 3111534 on 2016/09/02 by Thomas.Sarkanen Fixup deprecated PhysX APIs "Active transforms" feature replaced with "active actors". Convex skinWidth and heightfield thickness removed as they were unused. Tolerance mass removed as it is ignored internally now. CreateShape now uses the PxPhysics version, with exclusivity respected via the passed-in flag. Note, we still use the following deprecated calls: - PxVec3::operator[]: This is used to iterate over dimensions and is still extremely useful so I've kept it for now. - Batched queries are still used by the vehicle system, so we still need to use them although they are deprecated. #jira UE-17833 - Stop using deprecated PhysX API calls Change 3111636 on 2016/09/02 by Thomas.Sarkanen Removed deprecated use of PxVec3::operator[] After discussion on slack, apparently this was causing aliasing issues with certain compilers (XboxOne, for instance). #jira UE-17833 - Stop using deprecated PhysX API calls Change 3111793 on 2016/09/02 by Ales.Borovicka [From trunk] 21113605 - removed tolerances scale usage from normalized distance test p4rmerge of Change 21115034 by aborovicka from cl-21115034.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3111981 on 2016/09/02 by Ori.Cohen Merging //UE4/Dev-Physics to Dev-Physics-Upgrade (//UE4/Dev-Physics-Upgrade) Change 3111984 on 2016/09/02 by Ori.Cohen Debug config uses CHECKED by default Change 3112432 on 2016/09/02 by Ori.Cohen BuildPhysX.Automation: Deploying PhysX and APEX libs. Quickhull cleanup fix. Remove slow check for if actors are simulating. #JIRA UE-35231 Change 3114288 on 2016/09/06 by Ori.Cohen Fix compiler error Change 3115781 on 2016/09/07 by Sheikh.Dawood.Abdul.Ajees [From trunk] 21074422 - Improved speculative CCD behaviour (correct decision of when to retain bias - was incorrect before). Some code conformity changes recommended by Pierre. Fixed an assert that could fire when using sweep-based CCD with kinematics that didn't have CCD enabled. Improved some documentation. Reviewed by Michelle p4rmerge of Change 21125150 by sschirm from cl-21125150.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3115788 on 2016/09/07 by Sheikh.Dawood.Abdul.Ajees [From trunk] 21078633 - PX-696 - Remove unused PoolListThreadSafe class p4rmerge of Change 21125151 by sschirm from cl-21125151.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3115795 on 2016/09/07 by Sheikh.Dawood.Abdul.Ajees [From trunk] 21079886 - (1)[PX-702]wrong test case for PCM mesh edge-edge parallel edge rejection check [Reviewer: Kier] (2)check in new version of gauss map SAT implementation(disable by default as reference for GPU code) p4rmerge of Change 21125180 by sschirm from cl-21125180.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3115809 on 2016/09/07 by Sheikh.Dawood.Abdul.Ajees [From trunk] 21085278 - PX-601 - The eCOLLISION_PAIRS debug viz param is not used. p4rmerge of Change 21125190 by sschirm from cl-21125190.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3115812 on 2016/09/07 by Sheikh.Dawood.Abdul.Ajees [From trunk] 21085367 - fixed release notes for negative mesh scale p4rmerge of Change 21125217 by sschirm from cl-21125217.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3115817 on 2016/09/07 by Sheikh.Dawood.Abdul.Ajees [From trunk] 21090281 - [PX-425]Improving heightfield documentaiton. No longer extruding bounds for heightfields if unified heightfield collisions are used. Reviewed by Michelle p4rmerge of Change 21125224 by sschirm from cl-21125224.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3115820 on 2016/09/07 by Sheikh.Dawood.Abdul.Ajees [From trunk] 21090512 - Updating error messages. This is causing a UT to fail that mustn't get run when using the combined VT/UT project. p4rmerge of Change 21125229 by sschirm from cl-21125229.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3115823 on 2016/09/07 by Sheikh.Dawood.Abdul.Ajees [From trunk] 21090881 - PX-701 sweep position fix [r Pierre] p4rmerge of Change 21125230 by sschirm from cl-21125230.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3115831 on 2016/09/07 by Sheikh.Dawood.Abdul.Ajees [From trunk] 21090883 - PX-694 HF border miss [r Pierre] p4rmerge of Change 21125232 by sschirm from cl-21125232.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3115835 on 2016/09/07 by Sheikh.Dawood.Abdul.Ajees [From trunk] 21091870 - Michelle's fix for convex-mesh issue found in one of the CCD heightfield visual tests. Reviewed by Kier p4rmerge of Change 21125238 by sschirm from cl-21125238.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3115840 on 2016/09/07 by Sheikh.Dawood.Abdul.Ajees [From trunk] 21091979 - Some CCD optimizations. The intention of this is to bypass work if you have lots of bodies with CCD enabled but most are moving slowly. Reviewed by Michelle p4rmerge of Change 21125241 by sschirm from cl-21125241.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3115841 on 2016/09/07 by Sheikh.Dawood.Abdul.Ajees [From trunk] 21091992 - Fix Linux warning recommending using parantheses p4rmerge of Change 21125242 by sschirm from cl-21125242.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3115843 on 2016/09/07 by Sheikh.Dawood.Abdul.Ajees [From trunk] 21092009 - [PX-375] Removed/replaced "weird comments" in contact modification API file. p4rmerge of Change 21125245 by sschirm from cl-21125245.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3115848 on 2016/09/07 by Sheikh.Dawood.Abdul.Ajees [From trunk] 21094919 - Fix a compiler warning. Missed a copy n' paste error in the code. It compiles (with warnings on GCC), would produced the desired results but it's clearly wrong. p4rmerge of Change 21125247 by sschirm from cl-21125247.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3115867 on 2016/09/07 by Sheikh.Dawood.Abdul.Ajees [From trunk] 21095517 - Fix metadata warning in debug builds. Reviewed by Michelle p4rmerge of Change 21125252 by sschirm from cl-21125252.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3115876 on 2016/09/07 by Sheikh.Dawood.Abdul.Ajees [From trunk] 21101463 - Re-introduced 'isIdentity' function in Quat. This was originally part of a larger CL but this bit as been extracted for clarity. Review: Ales p4rmerge of Change 21125253 by sschirm from cl-21125253.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3115881 on 2016/09/07 by Sheikh.Dawood.Abdul.Ajees [From trunk] 21102045 - PX-507 fixed loading repX with kinematic actor and trimesh geometry [r Simon] p4rmerge of Change 21125255 by sschirm from cl-21125255.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3115891 on 2016/09/07 by Sheikh.Dawood.Abdul.Ajees [From trunk] 21102138 - PX-708 - Review p4 changes for missing docs [Pierre] Review: Simon p4rmerge of Change 21125256 by sschirm from cl-21125256.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3115894 on 2016/09/07 by Sheikh.Dawood.Abdul.Ajees [From trunk] 21102219 - PX-709 updated release notes and migration guide p4rmerge of Change 21125258 by sschirm from cl-21125258.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3115897 on 2016/09/07 by Sheikh.Dawood.Abdul.Ajees [From trunk] 21105325 - PX-542: add comment to comment regarding spu in batched queries code. p4rmerge of Change 21125261 by sschirm from cl-21125261.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3115904 on 2016/09/07 by Sheikh.Dawood.Abdul.Ajees [From trunk] 21105351 - Back out changelist 21102045 p4rmerge of Change 21125262 by sschirm from cl-21125262.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3115909 on 2016/09/07 by Sheikh.Dawood.Abdul.Ajees [From trunk] 21105521 - PX-664 - PVD doesn't properly capture SQ flags PX-665 - PVD's sweep hit capture is probably broken Details: - removed QUERY_LINEAR_COMPOUND_GEOMETRY_SWEEP_CLOSEST_OBJECT / QUERY_LINEAR_COMPOUND_GEOMETRY_SWEEP_ALL_OBJECTS since they are apparently not used anymore - refactored CapturePvdOnReturn: - removed useless struct QType (over-engineered) - identified / marked unused members. Might vanish later. - "compression oriented programming" of main code. - PvdSqHit: - added explicit PxOverlapHit ctor for overlaps (makes it clearer which ctor is called for each kind of hit) - captured hit flags in PxRaycastHit and PxSweepHit ctors. This is the part that fixes PX-664. - PvdSceneQueryCollector: - re-routed "any hit" functions to complete hit ctors instead of incomplete (PxQueryHit) one. This is the part that fixes PX-665. - unified names of class members. The previous PvdSceneQueryCollector right here is a good example of why our coding standard doesn't make any sense (the public members all have the "m" prefix as well, nobody ever bothers changing the members' names when they go from private to public). - "compression oriented programming" of main code. Review: Ales p4rmerge of Change 21125263 by sschirm from cl-21125263.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3115915 on 2016/09/07 by Sheikh.Dawood.Abdul.Ajees [From trunk] 21105695 - fix compile error p4rmerge of Change 21125264 by sschirm from cl-21125264.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3115917 on 2016/09/07 by Sheikh.Dawood.Abdul.Ajees [From trunk] 21105850 - Back out changelist 21105325 p4rmerge of Change 21125265 by sschirm from cl-21125265.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3115923 on 2016/09/07 by Sheikh.Dawood.Abdul.Ajees [From trunk] 21106057 - [PX-703] Removed comment promising documentation of how all the multi-client callbacks group events together. Interested parties can read the code but the decision over how events are grouped probably shouldn't influence their callback design decisions. Actually submitting (file was checked out but not saved in previous submit) p4rmerge of Change 21125267 by sschirm from cl-21125267.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3115925 on 2016/09/07 by Sheikh.Dawood.Abdul.Ajees [From trunk] 21106460 - [PX-710] Missing documentation changes. p4rmerge of Change 21125268 by sschirm from cl-21125268.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3115927 on 2016/09/07 by Sheikh.Dawood.Abdul.Ajees [From trunk] 21110787 - Some minor cloth cleanup, related to PX-711. (r mtamis) p4rmerge of Change 21125271 by sschirm from cl-21125271.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3115934 on 2016/09/07 by Sheikh.Dawood.Abdul.Ajees [From trunk] 21113806 - PX-707 remove cuda interop for d3d9 (r dduka, kstorey) p4rmerge of Change 21125273 by sschirm from cl-21125273.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3115938 on 2016/09/07 by Sheikh.Dawood.Abdul.Ajees [From trunk] 21113869 - PxProfiler changes - Remove ?filename≈ and ?lineno≈: It is useless for profile zones. The name of the zone already uniquely describes a place in the SDK. The line numbers are useless when people have local changes in their files anyway (which happens quite a bit for Epic / Unity). This is also currently not used by PVD so it is unclear why we added it. Filenames are usually long strings that we do not want to transmit over a network. Review: Ales p4rmerge of Change 21125275 by sschirm from cl-21125275.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3115941 on 2016/09/07 by Sheikh.Dawood.Abdul.Ajees [From trunk] 21114295 - [PX-716] Fixed assert in broad phase in SampleParticles when using GPU. Reviewed by Michelle p4rmerge of Change 21125276 by sschirm from cl-21125276.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3115942 on 2016/09/07 by Sheikh.Dawood.Abdul.Ajees [From trunk] 21114587 - [PX-635] CUDA 8 support. Windows and Linux switched to use CUDA 8.0.27. Reviewed/contributed to by Cheng, Simon, Michelle. p4rmerge of Change 21125279 by sschirm from cl-21125279.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3115945 on 2016/09/07 by Sheikh.Dawood.Abdul.Ajees [From trunk] 21114843 - Articulation helper code only does 1 internal/external solve pass if internal/external coefficients are the same and internal/external iterations are the same. Reviewed by Michelle p4rmerge of Change 21125282 by sschirm from cl-21125282.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3115949 on 2016/09/07 by Sheikh.Dawood.Abdul.Ajees [From trunk] 21118231 - Profiler changes: Move CUDA-related parts to specific class. Long term goal is to drop them entirely. Review: Ales p4rmerge of Change 21125283 by sschirm from cl-21125283.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3115952 on 2016/09/07 by Sheikh.Dawood.Abdul.Ajees [From trunk] 21119117 - PX-721 PxVolumeCache deprecated [r Pierre] p4rmerge of Change 21125287 by sschirm from cl-21125287.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3115958 on 2016/09/07 by Sheikh.Dawood.Abdul.Ajees [From trunk] 21124924 - PX-720 PxSpatialIndex deprecated [r Pierre] p4rmerge of Change 21125289 by sschirm from cl-21125289.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3115964 on 2016/09/07 by Sheikh.Dawood.Abdul.Ajees [From trunk] 21124943 - PX-714 PxConstaintFlag::eDEPRECATED_32_COMPATIBILITY removed [r Simon] p4rmerge of Change 21125292 by sschirm from cl-21125292.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3115969 on 2016/09/07 by Sheikh.Dawood.Abdul.Ajees [From trunk] 21094813 - start thread additional tests [r Simon] p4rmerge of Change 21125307 by sschirm from cl-21125307.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3115970 on 2016/09/07 by Luke.Thatcher [PLATFORM] [PS4] [!] Minor fix to PhysX 3.4/APEX 1.4 build for PS4 in //UE4/Dev-Physics-Upgrade. - Library output path does not need to contain the Visual Studio version. - Fixup library paths in PhysX.Build.cs Change 3115973 on 2016/09/07 by Sheikh.Dawood.Abdul.Ajees [From trunk] 21105837 - [PX-494] Disambiguating GPU PhysX APIs not used by GRB. p4rmerge of Change 21125320 by sschirm from cl-21125320.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3116047 on 2016/09/07 by Sheikh.Dawood.Abdul.Ajees [From trunk] 21125154 - Merging APEX 1.4 trunk and Epic integration branches. p4rmerge of Change 21127359 by sschirm from cl-21127359.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3116059 on 2016/09/07 by Sheikh.Dawood.Abdul.Ajees [From trunk] updated and added products - 21124943 p4rmerge of Change 21127711 by sabdulajees from cl-21127711.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3116069 on 2016/09/07 by Sheikh.Dawood.Abdul.Ajees Enable APEX_UE4 define for cmake p4rmerge of Change 21127770 by sabdulajees from cl-21127770.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3116073 on 2016/09/07 by Sheikh.Dawood.Abdul.Ajees [From Epic] 3112432 - Quickhull cleanup fix. Remove slow check for if actors are simulating. p4rmerge of Change 21128334 by sabdulajees from cl-21128334.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3116081 on 2016/09/07 by Sheikh.Dawood.Abdul.Ajees Add APEX_UE4 define Change 3116088 on 2016/09/07 by Sheikh.Dawood.Abdul.Ajees Missed conflicted change in CL 3116047 Change 3116415 on 2016/09/07 by Ori.Cohen Improve vehicle debug rendering stats to be more meaningful. Also fix lock semantic issue. Change 3117376 on 2016/09/08 by Luke.Thatcher [PLATFORM] [PS4] [~] Update PhysX/APEX compile warnings flags to minimal set needed for a successful build. Change 3118458 on 2016/09/08 by Dmitry.Rekman Linux: first iteration of automated cross-build. - Still relies on make being available on the system. Change 3118848 on 2016/09/08 by Chris.Babcock Added PxSharedDir + src/*/include directories for PhysX (not found if APEX not enabled for platform) Change 3119236 on 2016/09/09 by Keith.Judge PhysX 3.4 Automation Tool build for Xbox One. Change 3119788 on 2016/09/09 by Chris.Babcock Fix all the blank lines (messing up resolves) Change 3119801 on 2016/09/09 by Chris.Babcock Change filetype back to text Change 3119804 on 2016/09/09 by Ori.Cohen Remove areaTestEpsilon=0 which is no longer needed since we set skin width according to the relative extent of the mesh. #JIRA UE-35678 Change 3120210 on 2016/09/09 by Dmitry.Rekman Linux: PhysX libs + changes to make UE4Client built. Change 3120441 on 2016/09/09 by Chris.Babcock Android: PhysX libs + changes to make UE4Client build (ARMv7 only!) Change 3120857 on 2016/09/12 by Nick.Shin support tool: gnu win32 make #jira UEFW-106 - Add HTML5 support to PhysX CMake & automation scripts #code.review dmitry.rekman Change 3120876 on 2016/09/12 by Nick.Shin HTML5 platform -- PhysX automation tool support #jira UEPLAT-1324 - Update HTML5 PhysX to CMake Change 3120881 on 2016/09/12 by Nick.Shin APEX files for HTML5 builds NOTE: these are work in progress - SIMD erros still needs to be looked at Change 3121162 on 2016/09/12 by Ori.Cohen Remove unneeded glut and nv ext dll #JIRA UE-UE-35744 Change 3121209 on 2016/09/12 by Ales.Borovicka [From trunk] 21146632 - PX-743 fixed convex hull issue p4rmerge of Change 21146795 by aborovicka from cl-21146795.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3121707 on 2016/09/12 by Dmitry.Rekman PhysX: fix path to bundled make. Change 3122071 on 2016/09/12 by Chad.Garyet dev-physics upgrade build process Change 3122096 on 2016/09/12 by Ori.Cohen Add rb none to auto generated build script Change 3122098 on 2016/09/12 by Ori.Cohen Removing regex from json Change 3122108 on 2016/09/12 by Ori.Cohen Fixing json to include -- in command line Change 3122114 on 2016/09/12 by Chris.Babcock Android: allow speciifying architecture with TargetPlatforms (optional - after platform), ex. Android-arm64 Change 3122123 on 2016/09/12 by Chad.Garyet fixing typos Change 3122124 on 2016/09/12 by Chad.Garyet typo fix Change 3122128 on 2016/09/12 by Chad.Garyet typo fix Change 3122130 on 2016/09/12 by Chad.Garyet typo fix Change 3122177 on 2016/09/12 by Chris.Babcock Android: added libraries (ARMv7, ARM64, x86) Change 3122200 on 2016/09/12 by Chris.Babcock Fix bad escape character (\#) Change 3122739 on 2016/09/13 by Chad.Garyet Making these full workspaces instead of compiles, compiles cannot submit to p4 Change 3122827 on 2016/09/13 by Dmitry.Rekman PhysX: fix case sensitive build. Change 3122944 on 2016/09/13 by Nick.Shin support tool: gnu win32 make these are the source codes to the utility #jira UEFW-106 - Add HTML5 support to PhysX CMake & automation scripts #code.review dmitry.rekman Change 3123511 on 2016/09/13 by Dmitry.Rekman Linux: fix building when Cygwin is present. - Also: don't use Windows tools on non-Windows platforms. Change 3123529 on 2016/09/13 by Nick.Shin forgot to submit this in CL: 3120876 Change 3123713 on 2016/09/13 by Michael.Trepka Support for building PhysX 3.4 and APEX 1.4 with CMake for Mac Change 3123716 on 2016/09/13 by Michael.Trepka PhysX 3.4 and APEX 1.4 libraries for Mac Change 3123718 on 2016/09/13 by Chris.Babcock Android: added x86_64 (x64) PhysX libraries and cmake changes Change 3124033 on 2016/09/13 by Ori.Cohen Change physx auto build to use reconcile instead of mass edit all files. Needed to keep build machines from orphaning change lists on failure. Change 3124036 on 2016/09/13 by Dmitry.Rekman Fix compile error due to symbol collision. Change 3124198 on 2016/09/13 by Ori.Cohen Fix file search not using the right build suffix for release builds. Change 3124577 on 2016/09/14 by Ori.Cohen Fix environment PATH incorrectly dropping paths. Change 3124897 on 2016/09/14 by Ori.Cohen Added platforms to physx build machine Change 3124905 on 2016/09/14 by Chad.Garyet Swapping dev-physics stream to minimal vstream. Change 3124928 on 2016/09/14 by Ori.Cohen Fix android typo Change 3124940 on 2016/09/14 by Chad.Garyet adding email notifiers Change 3125065 on 2016/09/14 by Ori.Cohen Prevent unsupported platforms from trying to build APEX. Needed for batch processing of many platforms. Change 3125242 on 2016/09/14 by Ori.Cohen Remove DLL dependency on PhysXDevice64 Change 3125319 on 2016/09/14 by Dmitry.Rekman PhysXBuild: speed up make when building Linux. - Credits for the suggestion go to LukeT. - Can spawn more than 16 jobs because Win32 make reportedly cannot control its number, but this hasn't been a problem when building locally (might be due to individual jobs being quick). Change 3125324 on 2016/09/14 by Dmitry.Rekman Fixes to Linux PhysX. - Bring missing defines to some Apex libs. - Set to always include debug info in Linux. - Set to use response file (for some reason this fixed a build locally despite CMake not using it). Change 3125420 on 2016/09/14 by Ori.Cohen Remove caching of bodysetup cooking when there's a warning/error. Change 3125675 on 2016/09/14 by Dmitry.Rekman Linux: fix case-sensitive compilation. Change 3125718 on 2016/09/14 by Dmitry.Rekman Fix UAT building on Linux. Change 3125735 on 2016/09/14 by Dmitry.Rekman Linux: changes for building PhysX natively - Needed for debugging (proper debug info gets built). Change 3125868 on 2016/09/14 by Michael.Trepka iOS support for PhysX 3.4 Change 3125878 on 2016/09/14 by Michael.Trepka PhysX 3.4 libraries for iOS Change 3125927 on 2016/09/14 by Dmitry.Rekman Linux: (better) architecture support. - Also a fix for Apex not having APEX_UE4 set. Change 3125937 on 2016/09/14 by Dmitry.Rekman Linux: more fixes for Apex. - Minor changes after having APEX_UE4 defined properly. Change 3126282 on 2016/09/15 by Luke.Thatcher [PLATFORM] [PS4] [~] Use GNU makefiles for PhysX/APEX PS4 builds, as AutoSDK does not install the required file for MSBuild to work correctly. - Response files are enabled for PS4 and Linux builds, to fix long/truncated command line errors. The flags for this have been moved to the common.cmake files, and are enabled by the build tool via a command line define switch -DUSE_RESPONSE_FILES=1. - Simplified PS4 Android and Linux cases in SetupBuildForTargetLibAndPlatform, as they all do exactly the same thing. - Simplified -j 16 flag handling on Windows build hosts, and enabled for all makefile platforms (currently Linux, PS4 and Android) - Removed old PS4ToolChain.txt file which was unused. Change 3126540 on 2016/09/15 by Michael.Trepka tvOS support for PhysX 3.4 Change 3126541 on 2016/09/15 by Michael.Trepka PhysX 3.4 libs for tvOS Change 3126652 on 2016/09/15 by Simon.Schirm Remove PxShared src includes #rb Ori.Cohen Change 3126869 on 2016/09/15 by Ori.Cohen Add mac cmake binary Change 3126873 on 2016/09/15 by Ori.Cohen mac to use UE cmake bin Change 3126895 on 2016/09/15 by Michael.Trepka Added +x to Mac cmake binary Change 3126905 on 2016/09/15 by Michael.Trepka Fixed BuildPhysX.Automation.cs compile errors on Mono Change 3126910 on 2016/09/15 by Nick.Shin addendum to: CL: #3120881 APEX files for HTML5 builds - tested these changes for both PhysX and APEX builds Change 3126922 on 2016/09/15 by Ben.Marsh Put Dev-Physics-Upgrade onto the Shared_Compile and UE4_Compile_Mac pools. Change 3127072 on 2016/09/15 by Ori.Cohen Improve debug symbols for xbox and ps4 Change 3127194 on 2016/09/15 by Ori.Cohen Distinguish between cmake and cmake.exe Change 3127833 on 2016/09/16 by Ales.Borovicka [From trunk] 21162711 - increased tolerance for refused verts in quick hull p4rmerge of Change 21162990 by aborovicka from cl-21162990.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3127960 on 2016/09/16 by Benn.Gallagher Duplicated clothing holes fix from Dev-Framework Change 3127982 on 2016/09/16 by Ori.Cohen Merging //UE4/Dev-Physics to Dev-Physics-Upgrade (//UE4/Dev-Physics-Upgrade) Change 3128052 on 2016/09/16 by Ori.Cohen Fixed incorrect PxMat34Legacy legacy serialization (Owen bug). Change 3128113 on 2016/09/16 by Ales.Borovicka [From trunk] 21126371 - Profiler changes - Remove PxProfileTypes It looks like nobody understands how to use this: struct PxProfileTypes { enum Enum { eNORMAL = 0, //!< ordinary profile zone, starts and ends in same thread eSTALL = 1, //!< thread is busy but can't progress (example: spin-lock) eIDLE = 2, //!< thread is idle (example: waiting for event) eDETACHED = 3, //!< zone crosses thread boundary eLOCK = 4, //!< thread tries to acquire a lock, reports result on zoneEnd() eLOCK_SUCCESS = 5, //!< locking mutex succeded, to be passed to zoneEnd() eLOCK_FAILED = 6, //!< locking mutex failed, to be passed to zoneEnd() eLOCK_TIMEOUT = 7 //!< locking mutex timed out, to be passed to zoneEnd() }; }; It seems that only eNORMAL and eDETACHED are used in the SDK, and eDETACHED can be done automatically (see below). It is unclear how the users are supposed to use the other enums. ==> not done fully automatically yet, instead there is now just a bool for detached/regular events. The PVD implementation needs to know in the "start" event if the zone is "detached" or not, so the fully automatic version unfortunately would not work immediately with PVD (at least not without touching the PVD code). Maybe later. - Return a void pointer from zoneStart. Pass it to zoneEnd. Most profilers use a scoped object like our own PxProfileScoped class, which stores some data locally (on the stack) in the ?start≈ event, so that it is still available in the ?end≈ event. Unfortunately our virtual interface does not let users do the same in their implementation. We suffer from this ourselves, in our own PVD implementation. For example in the code below we do the expensive ?getEventIdForName≈ twice with the same event name: void PvdImpl::zoneStart(const char* eventName, PxProfileTypes::Enum type, uint64_t contextId, const char *filename, int lineno) { if ( mProfileZone ) { uint16_t id = mProfileZone->getEventIdForName(eventName); void PvdImpl::zoneEnd(const char *eventName, PxProfileTypes::Enum type, uint64_t contextId) { if ( mProfileZone ) { uint16_t id = mProfileZone->getEventIdForName(eventName); But a regular profiler would not do that: it would store the id as a class member and reuse it in the ?end≈ event. We can allow this kind of optimizations to happen by simply returning a void pointer from ╡zoneStart? and passing it to the ╡zoneEnd? function. We would then return the id as a void pointer, and cast it back to an int16 in zoneEnd. This is not ideal because the amount of data is limited to the size of a pointer, but this opens the door for some optimizations at least. p4rmerge of Change 21162866 by aborovicka from cl-21162866.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3128119 on 2016/09/16 by Ales.Borovicka [From trunk] 21126412 - fixed compile error p4rmerge of Change 21162870 by aborovicka from cl-21162870.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3128122 on 2016/09/16 by Ales.Borovicka [From trunk] 21131564 - Remove PxBufferedProfilerCallback. Review: Ales p4rmerge of Change 21162874 by aborovicka from cl-21162874.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3128129 on 2016/09/16 by Ales.Borovicka [From trunk] 21154319 - Remove the PxProfileContext enum. The rationale is that the default value should be implementation-specific, and thus left to users. "0" makes sense for our implementation (PVD) since we store a scene pointer as our context, but a different user-provided implementation might use for example a scene index instead, in which case 0 would be a completely legal value, and perhaps 0xffffffff would be a more appropriate value for indicating "no context". On top of that, the enum struct itself was questionable since it only defined a single value. Review: Ales p4rmerge of Change 21162877 by aborovicka from cl-21162877.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3128134 on 2016/09/16 by Ales.Borovicka [From trunk] 21159702 - PX-637: Change CreateParticleShapes_Stage1 to launch as a single CTA p4rmerge of Change 21162880 by aborovicka from cl-21162880.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3128139 on 2016/09/16 by Ales.Borovicka [From trunk] 21130683 - [PX-516] Joint lock flags. Working on both CPU and GPU. Reviewed by Michelle p4rmerge of Change 21162901 by aborovicka from cl-21162901.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3128143 on 2016/09/16 by Ori.Cohen Fix for TryGetVSInstallDir Change 3128144 on 2016/09/16 by Ales.Borovicka [From trunk] 21130799 - PX-526 sweep geometry isValid [r Pierre] p4rmerge of Change 21162904 by aborovicka from cl-21162904.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3128150 on 2016/09/16 by Ales.Borovicka [From trunk] 21135017 - fixed incorrect geometry sweep validation function p4rmerge of Change 21162909 by aborovicka from cl-21162909.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3128154 on 2016/09/16 by Ales.Borovicka [From trunk] 21130972 - Fixed some build warnings produced on iOS. p4rmerge of Change 21162917 by aborovicka from cl-21162917.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3128159 on 2016/09/16 by Ales.Borovicka [From trunk] 21131769 - Attempted fix for documentation build error. p4rmerge of Change 21162918 by aborovicka from cl-21162918.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3128163 on 2016/09/16 by Ales.Borovicka [From trunk] 21134721 - Remove shadowed variable in constrainMotion in joint projection p4rmerge of Change 21162924 by aborovicka from cl-21162924.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3128168 on 2016/09/16 by Ales.Borovicka [From trunk] 21135420 - Re-enabled adaptive force on both GPU and CPU pipelines. Required some semantic changes to the way stabilization works to allow both approaches to leverage "accelScale" to scale gravity. Reviewed by Michelle p4rmerge of Change 21162929 by aborovicka from cl-21162929.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3128171 on 2016/09/16 by Ales.Borovicka [From trunk] 21135492 - Fix bug in immediate mode where a PxGeometry was dangerously cast to a Gu::GeometryUnion. It is not guaranteed (or even likely) that the application will be passing a Gu::GeometryUnion so this is likely to result in a crash if a convex hull, mesh or HF were used. Reviewed by Michelle p4rmerge of Change 21162930 by aborovicka from cl-21162930.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3128173 on 2016/09/16 by Ales.Borovicka [From trunk] 21139402 - Improve PVD profiling for multiple scenes Review: Ales p4rmerge of Change 21162932 by aborovicka from cl-21162932.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3128181 on 2016/09/16 by Ales.Borovicka [From trunk] 21145313 - Improved support for multi-scenes profiling in PVD (continued) p4rmerge of Change 21162936 by aborovicka from cl-21162936.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3128184 on 2016/09/16 by Ales.Borovicka [From trunk] 21145467 - Improved support for multi-scene profiling in PVD (continued) p4rmerge of Change 21162941 by aborovicka from cl-21162941.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3128188 on 2016/09/16 by Ales.Borovicka [From trunk] 21145584 - Improved support for multi-scene profiling in PVD (continued) p4rmerge of Change 21162943 by aborovicka from cl-21162943.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3128189 on 2016/09/16 by Ales.Borovicka [From trunk] 21146617 - PX-712, PX-507 fixed load of RepX file with kinematic rigid bodies with mesh shapes [r Simon] p4rmerge of Change 21162947 by aborovicka from cl-21162947.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3128190 on 2016/09/16 by Ben.Marsh Build PhysX targets in parallel. Change 3128193 on 2016/09/16 by Ales.Borovicka [From trunk] 21150008 - PX-722 - PxClientID deprecated [r Kier] p4rmerge of Change 21162949 by aborovicka from cl-21162949.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3128198 on 2016/09/16 by Ales.Borovicka [From trunk] 21150053 - Improved support for multi-scene profiling in PVD (continued) p4rmerge of Change 21162952 by aborovicka from cl-21162952.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3128201 on 2016/09/16 by Ales.Borovicka [From trunk] 21150234 - fix compile error p4rmerge of Change 21162956 by aborovicka from cl-21162956.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3128205 on 2016/09/16 by Ales.Borovicka [From trunk] 21155265 - metadata updated p4rmerge of Change 21162962 by aborovicka from cl-21162962.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3128211 on 2016/09/16 by Ales.Borovicka [From trunk] 21159411 - [PX-638] GRB cleanup items. Reviewed by Michelle p4rmerge of Change 21162982 by aborovicka from cl-21162982.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3128213 on 2016/09/16 by Ales.Borovicka [From trunk] 21159818 - kinematic rigid repX fix for Android p4rmerge of Change 21162989 by aborovicka from cl-21162989.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3128222 on 2016/09/16 by Ales.Borovicka [From trunk] 21150589 - fixes after PxShared and PhysX changes p4rmerge of Change 21162999 by aborovicka from cl-21162999.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3128228 on 2016/09/16 by Ales.Borovicka [From trunk] 21159948 - doxygen comments and indents fixes in public interface p4rmerge of Change 21163009 by aborovicka from cl-21163009.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3128229 on 2016/09/16 by Ales.Borovicka [From trunk] 21163740 - Fixed race condition in interaction framework. Simplified some code related to triggers/particles/clothing interactions, which does not get run in parallel. This previously shared its implementation with the parallel rigid body interactions but, as a result of some refactoring, it now doesn't. Reviewed by Michelle p4rmerge of Change 21163978 by aborovicka from cl-21163978.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3128255 on 2016/09/16 by Ori.Cohen Include platform target in physx libs CL Change 3128259 on 2016/09/16 by Ori.Cohen Fix android reference Change 3128287 on 2016/09/16 by Ales.Borovicka [From trunk] 21127073 - PX-693 added define PX_EMSCRIPTEN [r Simon] p4rmerge of Change 21162846 by aborovicka from cl-21162846.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3128622 on 2016/09/16 by Ori.Cohen Fix stale cpp in the pvdsdk cmake file. Change 3128744 on 2016/09/16 by Ori.Cohen Fix force_inline preventing linker from finding symbols Change 3128770 on 2016/09/16 by Ben.Marsh Add a nightly build for Dev-Physics-Upgrade Change 3128792 on 2016/09/16 by Ori.Cohen Remove inline entirely as it won't work for some platforms when the definition is not in the same cpp Change 3128807 on 2016/09/16 by Ben.Marsh Really split PhysX nodes out onto different agents. Change 3128835 on 2016/09/16 by Dmitry.Rekman Linux: Add support for ARM architecture (without APEX). Change 3128951 on 2016/09/16 by Dmitry.Rekman Add Linux-ARM to the builder list. Change 3129006 on 2016/09/16 by Dmitry.Rekman Fix for adding Linux ARM build. Change 3129037 on 2016/09/16 by Ori.Cohen Fix DLL empty warning Change 3129426 on 2016/09/16 by Ori.Cohen Refresh DDC key for new physx cooking libs Change 3129428 on 2016/09/16 by Ori.Cohen Fix compiler error Change 3130638 on 2016/09/19 by Ori.Cohen Add debug symbols to APEX on PS4 Change 3130977 on 2016/09/19 by Ori.Cohen Undefine APEX_API and PHYSX_API before including physx and apex headers. Change 3131021 on 2016/09/19 by Ori.Cohen Add APEX_UE4 as a definition regardless of which module is being built. #JIRA UE-36044 Change 3131024 on 2016/09/19 by Ori.Cohen Make sure html5 gets apex ue4 flag Change 3131517 on 2016/09/19 by Jeff.Farris Support for speculative CCD. Change 3131935 on 2016/09/20 by Simon.Schirm [From trunk] 21163785 - Fixed incorrect PxMat34Legacy legacy serialization (Owen bug in UE4). Removed comment... #rb none p4rmerge of Change 21175004 by sschirm from cl-21175004.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3131942 on 2016/09/20 by Marijn.Tamis [APEX1.4]Async cloth Cooking issue workaround. Change 3132145 on 2016/09/20 by Simon.Schirm [From trunk] 21170876 - PX-745 - Remove custom kernel profiling functionality from PxShared, PhysX and APEX #rb none Review: Simon p4rmerge of Change 21175012 by sschirm from cl-21175012.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3132289 on 2016/09/20 by Simon.Schirm [From trunk] 21175816 - Removed more references to unsupported GPU profiling. Complements 21170876 (r ibychkov) #rb none p4rmerge of Change 21175823 by sschirm from cl-21175823.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3132316 on 2016/09/20 by Simon.Schirm [From trunk] updated and added products (only docs) #rb none p4rmerge of Change 21175900 by sschirm from cl-21175900.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3132614 on 2016/09/20 by Ori.Cohen Allow sweeps with 0 direction to still do an overlap check. #JIRA UE-35264 Change 3135155 on 2016/09/21 by Jeff.Campeau PhysX Xbox One Cmake fixes Change 3135733 on 2016/09/22 by Ales.Borovicka [From trunk] 21184354 - PX-662 fixed android issues with articulation [r Kier] p4rmerge of Change 21184355 by aborovicka from cl-21184355.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3136023 on 2016/09/22 by Sheikh.Dawood.Abdul.Ajees Remove APEX_UE4 flag for individual platforms Change 3136245 on 2016/09/22 by Simon.Schirm [From trunk] 21184998 - Fixed another source of non-determinism reported by FAKT. Reviewed by Michelle, #rb none p4rmerge of Change 21185183 by sschirm from cl-21185183.p4r moved from //sw/physx/Releases/distro_mirrors/PhysX_3.4_APEX_1.4_Epic/ to //UE4/Dev-Physics-Upgrade/Engine/Source/ThirdParty/PhysX/ Change 3137891 on 2016/09/23 by Benn.Gallagher Fix to clothing shutdown to correctly clear fabric factories Change 3138175 on 2016/09/23 by Ori.Cohen Fix unused variable warning #JIRA UE-36363 Change 3139645 on 2016/09/26 by Benn.Gallagher Fix CEF build failure from Merge Change 3139706 on 2016/09/26 by Benn.Gallagher Fixed another merge issue in mcp plugin Change 3139708 on 2016/09/26 by Ori.Cohen Remove unused variable in Apex.build.cs #JIRA UE-36363 Change 3139745 on 2016/09/26 by Ori.Cohen Fix xbox one not finding physx/apex libs. Change 3139910 on 2016/09/26 by mason.seay Removing collision to fix cook error (replicating fix that was made in Odin stream) UE-36372 Change 3140178 on 2016/09/26 by Jeff.Campeau Fix Xbox One lib generation warnings (add default language element) Change 3140179 on 2016/09/26 by Jeff.Campeau Fix Xbox One compile warning in PhysX source Change 3140180 on 2016/09/26 by Jeff.Campeau Fix PhysX build errors (don't dllimport and include all needed libs) Change 3140235 on 2016/09/26 by Jeff.Campeau Fix a couple more compile warnings from typos [CL 3140364 by Ori Cohen in Main branch]
2016-09-26 15:28:28 -04:00
/// <summary>
/// Removes the directory
/// </summary>
public void RemoveDirectory()
{
Directory.Delete(FullName, true);
}
/// <summary>
/// Checks whether the directory exists
/// </summary>
/// <returns>True if this directory exists</returns>
public bool Exists()
{
return Directory.Exists(FullName);
}
/// <summary>
/// Enumerate files from a given directory
/// </summary>
/// <returns>Sequence of file references</returns>
public IEnumerable<FileReference> EnumerateFileReferences()
{
foreach (string FileName in Directory.EnumerateFiles(FullName))
{
yield return FileReference.MakeFromNormalizedFullPath(FileName);
}
}
/// <summary>
/// Enumerate files from a given directory
/// </summary>
/// <returns>Sequence of file references</returns>
public IEnumerable<FileReference> EnumerateFileReferences(string Pattern)
{
foreach (string FileName in Directory.EnumerateFiles(FullName, Pattern))
{
yield return FileReference.MakeFromNormalizedFullPath(FileName);
}
}
/// <summary>
/// Enumerate files from a given directory
/// </summary>
/// <returns>Sequence of file references</returns>
public IEnumerable<FileReference> EnumerateFileReferences(string Pattern, SearchOption Option)
{
foreach (string FileName in Directory.EnumerateFiles(FullName, Pattern, Option))
{
yield return FileReference.MakeFromNormalizedFullPath(FileName);
}
}
/// <summary>
/// Enumerate subdirectories in a given directory
/// </summary>
/// <returns>Sequence of directory references</returns>
public IEnumerable<DirectoryReference> EnumerateDirectoryReferences()
{
foreach (string DirectoryName in Directory.EnumerateDirectories(FullName))
{
yield return DirectoryReference.MakeFromNormalizedFullPath(DirectoryName);
}
}
/// <summary>
/// Enumerate subdirectories in a given directory
/// </summary>
/// <returns>Sequence of directory references</returns>
public IEnumerable<DirectoryReference> EnumerateDirectoryReferences(string Pattern)
{
foreach (string DirectoryName in Directory.EnumerateDirectories(FullName, Pattern))
{
yield return DirectoryReference.MakeFromNormalizedFullPath(DirectoryName);
}
}
/// <summary>
/// Enumerate subdirectories in a given directory
/// </summary>
/// <returns>Sequence of directory references</returns>
public IEnumerable<DirectoryReference> EnumerateDirectoryReferences(string Pattern, SearchOption Option)
{
foreach (string DirectoryName in Directory.EnumerateDirectories(FullName, Pattern, Option))
{
yield return DirectoryReference.MakeFromNormalizedFullPath(DirectoryName);
}
}
/// <summary>
/// Determines whether this path represents a root directory in the filesystem
/// </summary>
/// <returns>True if this path is a root directory, false otherwise</returns>
public bool IsRootDirectory()
{
return CanonicalName[CanonicalName.Length - 1] == Path.DirectorySeparatorChar;
}
/// <summary>
/// Combine several fragments with a base directory, to form a new directory name
/// </summary>
/// <param name="BaseDirectory">The base directory</param>
/// <param name="Fragments">Fragments to combine with the base directory</param>
/// <returns>The new directory name</returns>
public static DirectoryReference Combine(DirectoryReference BaseDirectory, params string[] Fragments)
{
string FullName = FileSystemReference.CombineStrings(BaseDirectory, Fragments);
return new DirectoryReference(FullName, FullName.ToLowerInvariant());
}
/// <summary>
/// Compares two filesystem object names for equality. Uses the canonical name representation, not the display name representation.
/// </summary>
/// <param name="A">First object to compare.</param>
/// <param name="B">Second object to compare.</param>
/// <returns>True if the names represent the same object, false otherwise</returns>
public static bool operator ==(DirectoryReference A, DirectoryReference B)
{
if ((object)A == null)
{
return (object)B == null;
}
else
{
return (object)B != null && A.CanonicalName == B.CanonicalName;
}
}
/// <summary>
/// Compares two filesystem object names for inequality. Uses the canonical name representation, not the display name representation.
/// </summary>
/// <param name="A">First object to compare.</param>
/// <param name="B">Second object to compare.</param>
/// <returns>False if the names represent the same object, true otherwise</returns>
public static bool operator !=(DirectoryReference A, DirectoryReference B)
{
return !(A == B);
}
/// <summary>
/// Compares against another object for equality.
/// </summary>
Copying //UE4/Orion-Staging to //UE4/Main (Source: //Orion/Dev-General @ 2949393) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2949393 on 2016/04/20 by Graeme.Thornton Orion non-pak file security. - Removed security bypass code from platform pak file - Added a delegate to pak file code which allows the game to decide whether a file should be allowed or not - Added an orion delegate which whitelists appropriate files #rb robert.manuszewski #tests win64 client + dedicated server. golden path. Change 2949232 on 2016/04/19 by david.nikdel #ROBOMERGE-AUTHOR: michael.noland Paragon: Added a distinct menu frame rate limit, currently set to 60 fps and not visible in settings (if the user sets a game frame rate limit of below 60, we also clamp the menu limit to that threshold, so they can go down but not up for menus) #jira OR-18017 #rb marcus.wassmer #tests Ran paragon and switched between gameplay, menus, and replays, observing t.MaxFPS at different points #ROBOMERGE-SOURCE: CL 2949231 in //Orion/Main/... #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2949032 on 2016/04/19 by Zak.Middleton #orion - Lower default NetUpdateFrequency for minions (10->6). Avoid excessive latency for some knockback/knockup abilities that would have noticeable lag by forcing an update sooner when they are triggered. This should have the following effects: 1. Reduce server CPU cost (we tick minions at the net frequency). 2. Reduce server bandwidth 3. Reduce client CPU cost (we move character capsules and perform overlaps when new positions are received). #rb Bart.Bressler, John.Pollard #codereview Dmitry.Rekman #tests MultiPIE AI lane, Replays Change 2948966 on 2016/04/19 by Lina.Halper Added log (check) of the asset info for Anim Per Track contains invalid format key #rb: Michael.Noland #code review: Martin.Wilson, Laurent.Delayen, Michael.Noland #tests: editor/ cooked and test with AI_Tests with 10 bots. Change 2948876 on 2016/04/19 by Michael.Noland PS4: Validate that the texture pool size is not set to automatic (-1, which will crash later on as an attempt to allocate too much memory) #rb none #codereview marcus.wassmer #tests Ran Paragon on PS4 Change 2948765 on 2016/04/19 by Daniel.Lamb Removed AssetImportData tag from cooked asset registry builds. #rb Andrew.Grant #test Cook orion Change 2948691 on 2016/04/19 by Marcus.Wassmer Fix copytoresolvetarget ensure #rb none #test pc agora Change 2948633 on 2016/04/19 by david.nikdel #ROBOMERGE-AUTHOR: jason.bestimt [AUTOMERGE] Fix copytoresolve crash and change validation to ensure. #test PC editor / PC golden path #rb none -------- Integrated using branch //Orion/Main_to_//Orion/Release-Next (reversed) of change#2948169 by Marcus.Wassmer on 2016/04/19 10:50:32. #ROBOMERGE-SOURCE: CL 2948632 in //Orion/Main/... #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2948507 on 2016/04/19 by david.nikdel #ROBOMERGE-AUTHOR: andrew.grant Merging 2937781 (Pak signing) using //Orion/Dev-General_to_Release #rb none #tests cooked client, checked game runs #ROBOMERGE-SOURCE: CL 2948497 in //Orion/Release-0.24.1/... via CL 2948506 #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2948431 on 2016/04/19 by Steve.Robb CL#s 2919775 and 2942793 integrated to prevent annotation map performance problems on shutdown and asserts in PIE. #codereview robert.manuszewski,bob.tellez #rb bob.tellez #tests Ran editor Change 2948408 on 2016/04/19 by Leslie.Nivison Adding .tps #rb none #test none Change 2948185 on 2016/04/19 by david.nikdel #ROBOMERGE-AUTHOR: chris.bunner Fix for HLOD visibility freeze. #tests Golden Path, Editor #rb rolando.caloca, michael.noland #lockdown andrew.grant #jira OR-19863 #ROBOMERGE-SOURCE: CL 2948182 in //Orion/Release-0.24.1/... via CL 2948183 #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2948149 on 2016/04/19 by Simon.Tovey Fixed crash. Collision rendering path was not dealing with mesh batch with 0 triangles where other paths do. #rb none #tests No more crash #codereview Marcus.Wassmer Change 2948129 on 2016/04/19 by Lukasz.Furman fixed gameplay debugger getting stuck with outdated data pack on client, changed names of AI related debug cvars #rb none #tests game, PIE #codereview Mieszko.Zielinski Change 2948027 on 2016/04/19 by david.nikdel #ROBOMERGE-AUTHOR: graeme.thornton Fix for OR-20033 - CRASH: Client will crash with FRCPassPostProcessCircleDOFSetup #rb none #tests checked game runs without crashing #ROBOMERGE-SOURCE: CL 2948017 in //Orion/Main/... #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2947558 on 2016/04/18 by Matt.Kuhlenschmidt Fix compile error #rb none, #tests none Change 2947509 on 2016/04/18 by Matt.Kuhlenschmidt Added more logging to track down https://jira.ol.epicgames.net/browse/OR-19841 #rb none, #tests none Change 2947412 on 2016/04/18 by Ryan.Gerleve Fix shadowed variable. #rb none #tests none Change 2947377 on 2016/04/18 by Jamie.Dale Gather paths are now sorted by fuzzy-ness, so that more specific includes beat less specific excludes #rb Matt.Kuhlenschmidt #tests Built for Windows. Ran a gather, and confirmed that explicitly included heroes were now gathered, and that generically excluded heroes were absent from the gather. Change 2947351 on 2016/04/18 by Ryan.Gerleve Allow overriding the demo.AsyncLoadWorld setting with a URL option when playing a replay. Store the entire URL in the demo net driver instead of just the map name, so that the options can be accessed later. #tests golden path, replays #rb john.pollard Change 2947103 on 2016/04/18 by david.nikdel #ROBOMERGE-AUTHOR: jason.bestimt #ORION_MAIN - Merge 24.1 @ CL 2947071 #RB:none #Tests:none #ROBOMERGE-SOURCE: CL 2947102 in //Orion/Main/... #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2947007 on 2016/04/18 by Zak.Middleton #ue4 - Improve linear smoothing in the presence of low net frequency updates. #rb Bart.Bressler #tests MultiPIE AI with lanes Change 2946994 on 2016/04/18 by Mieszko.Zielinski Improvements to NavigationSystem's "abstract navigation data" support #UE4 #rb Lukasz.Furman #test golden path Change 2946760 on 2016/04/18 by Chris.Bunner Fixing up bad merge, recommit of CL 2819472 - ForceLOD now clamps to available LODs on primitive, i.e. use MinLOD rather than not drawing at all. #tests Editor #rb None Change 2946745 on 2016/04/18 by david.nikdel #ROBOMERGE-AUTHOR: jason.bestimt #ORION_MAIN - Merge 24.1 @ CL 2946637 #RB:none #Tests:none #ROBOMERGE-SOURCE: CL 2946656 in //Orion/Main/... #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2946645 on 2016/04/18 by Richard.Fawcett When promoting a buidl to staged, prevent enumeration of files already in S3 Enumerating files in S3 is a slow process, and it turns out that simply uploading all chunks blindly is more efficient than enumerating existing chunks and selectively uploading only the new ones. #rb Leigh.Swift #tests This technique has already been used in launcher promotions for several months Change 2946622 on 2016/04/18 by Richard.Fawcett By default, when enumerating chunks from a manifest file, skip checking they exist on disk at enumeration time. This will fail anyway further down the line if the files don't exist, but will improve speed of stage promotions by around five minutes. In practice, we have NEVER seen a job fail at this point because of the existence check. #rb Leigh.Swift #tests Ensure that output of ExtractDataFilenamesFromManifest method is identical both with and without bSkipExistsCheck specified. Change 2945812 on 2016/04/15 by Daniel.Lamb Fixed error in diff cooked build commandlet. #rb ben.marsh #test Compile. Change 2945110 on 2016/04/15 by Matt.Kuhlenschmidt Fix crash exporting actors with non-scene components to fbx #rb none, #tests full scene exporting on maps that crashed #codereview alexis.matte Change 2945078 on 2016/04/15 by Simon.Tovey Fix for OR-19778 When some pooled systems are reused, on init they have a non zero lod level but the emitter instances are created at LOD 0 initially. So the component did not think it had to update it's LOD but the emitters were not at the correct LOD. Have forced a LOD set on init when the component LOD is non-zero. #rb none #tests Works in editor and game. #codereview Olaf.Piesche Change 2944664 on 2016/04/14 by Uriel.Doyon Fix to SM4 compilation issue #jira OR-19706 #rb marcus.wassmer #tests tested editor in SM4 and SM5 Change 2944642 on 2016/04/14 by Lukasz.Furman changed waypoint switch conditions in meta nav paths #rb none #tests PIE #codereview Mieszko.Zielinski Change 2944599 on 2016/04/14 by david.nikdel #ROBOMERGE-AUTHOR: andrew.grant Added sha1 to UnrealPak list output #rb none #tests listed content of pakfile #ROBOMERGE-SOURCE: CL 2944595 in //Orion/Release-0.24/... via CL 2944597 via CL 2944598 #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2944441 on 2016/04/14 by Marcus.Wassmer Duplicate change to output shader compiler errors. #rb none #test run PC and see errors. Change 2944437 on 2016/04/14 by John.Pollard Possible fix for https://jira.ol.epicgames.net/browse/OR-19614 #rb JoshM #codereview Josh.Markiewicz #tests Golden path matchmaking Change 2944430 on 2016/04/14 by david.nikdel #ROBOMERGE-AUTHOR: michael.noland Engine: Added support for more/fewer settings in individual categories to the editor scalability control widget #rb david.ratti #tests Tested in the editor #ROBOMERGE-SOURCE: CL 2944428 in //Orion/Main/... #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2944198 on 2016/04/14 by David.Ratti Paragon - register for slow/stun/root/silence callbacks on any tag count change, not just add/remove. This is so the UI will update if you get another stack of a stackable slow GE. Ability system - unify client stack count change code path with server. Client now properly update owner ASC's tag map and broadcasts all delegates there. #rb dayY #tests pie Change 2944124 on 2016/04/14 by Wes.Hunt Change the TPS redirects for DX modules to point to the proper DX redist TPS which is what packaged games will need. #codereview:leslie.nivison #rb none #tests ran UAT ListThirdPartySoftware <for Orion> Change 2944107 on 2016/04/14 by Wes.Hunt MeshUtilities now depends on new module nvTessLib to better track the third party dependency. #codereview:daniel.wright #rb none #tests build OrionClient/Editor for Win64 Change 2944102 on 2016/04/14 by Wes.Hunt Tweak to UBT -ListBuildFolders to do a distinct in a better place to cut down on duplicate module searches. #tests ran the UBT command #rb none Change 2943851 on 2016/04/14 by Ryan.Gerleve Fix the ForEachNetDriver helper function to get the world context directly off the world instead of going through the game instance. Ensures the correct net drivers will be used when there are multiple worlds but only one game instance. #rb john.pollard #tests golden path, replays, PIE Change 2943847 on 2016/04/14 by Ryan.Gerleve Fixes to support client replay recording & playback in another world: When recording a replay, only swap actor roles if the remote role is ROLE_Authority When loading a replay checkpoint, call NetworkRemapPath to make sure paths have the correct name in the GuidCache #rb john.pollard #tests golden path, replays, PIE Change 2943691 on 2016/04/14 by david.nikdel #ROBOMERGE-AUTHOR: jason.bestimt #ORION_24 - Fix for OR-19609, OR-19610, and OR-19611 #RB:none #Tests:none #ROBOMERGE-SOURCE: CL 2943687 in //Orion/Release-0.24/... via CL 2943688 #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2943508 on 2016/04/14 by Richard.Fawcett Automation: Add support for multipart file uploads to Amazon S3 to increase speed of large file uploads. #jira OPPBUILD-44 #rb Leigh.Swift #tests Uploaded files to S3 using the new routines, downlaoded via AWS management console and ensured downloaded files identical to uploaded ones Change 2943274 on 2016/04/13 by jason.bestimt #ORION_MAIN - Merge 24 @ CL 2943257 #RB:none #Tests:none #ROBOMERGE-SOURCE: CL 2943271 in //Orion/Main/... #ROBOMERGE-BOT: ORION (Main -> Dev-General) #ROBOMERGE-SAYS: Beep boop! I couldn't merge this change. Please do it yourself, human. #CodeReview: david.nikdel, jason.bestimt Change 2943178 on 2016/04/13 by Olaf.Piesche Bumping size of the particle curve texture to 512x512 #rb martin.mittring #tests PC Editor, Game Change 2943174 on 2016/04/13 by Aaron.McLeran OR-19392 Ensure condition failed: (*RequiresInitialization == 0) on loading into PVP match - Removing ensure since there is a rare edge case where it's possible for a sound looping node may get ResetChildren called twice. - Condition is when a child random node o fa looping node has a blank entry and results in no sound chosen in a given frame (which results in ResetChildren getting called). Later in the frame, if a sound had previously been playing with an active sound, it will have stop called on it, which will call NotifyWaveInstanceFinished and hit the ensure. Simply using the branch to check if the looping node has been initialized will work fine in this and other cases. #codereview Bob.Tellez #rb Bob.Tellez #tests ran orion with this change testing problematic sound cue Change 2943042 on 2016/04/13 by Rob.Cannaday Fix crash in HTTP completion delegates on shutdown Stop ticking HTTP retry manager after FOnlineSubsystemImpl::Shutdown has been called #rb josh.markiewicz #tests shutting down multiple times Change 2942913 on 2016/04/13 by Lukasz.Furman added meta navmesh paths #orion #rb Mieszko.Zielinski #tests PIE Change 2942132 on 2016/04/13 by Wes.Hunt Enable UBT -ListBuildFolders to operate on Mac and iOS platforms without having to fully set up the remote environment. #codereview:leslie.nivison #rb peter.sauerbrei #tests running UBT with and without -listbuildfolders Change 2941651 on 2016/04/12 by Jason.Bestimt #ORION_DG - Merge MAIN @ CL 2941645 #RB:none #Tests:none Change 2941539 on 2016/04/12 by Laurent.Delayen FABRIK: Normalize outgoing rotations. Fixes Chains Q ability crashing. #rb none #tests Chains not crashing Change 2941469 on 2016/04/12 by Wes.Hunt Fix UBT -ListBuildFolders to not prep target for deployment. #codereview:leslie.nivison #rb none #tests tested -ListBuildFolders for Android Change 2941434 on 2016/04/12 by Leslie.Nivison Adding/cleaning up .tps files #rb none #test none Change 2941241 on 2016/04/12 by Daniel.Lamb Removed shadername from the shader code to fix deterministic material cooking issue. #jira UE-29320 #codereview Marcus.Wassmer #rb Marcus.Wassmer #test Running editor, cooking orion. Change 2941046 on 2016/04/12 by Laurent.Delayen Added safety net for non state AnimNotifies having a non-zero EndTriggerTimeOffset. Fixes Twinblast double shot for the left primary attack. #rb benn.gallagher #codereview lina.halper, ray.arnett, aaron.eady #tests twinblast's LMB Change 2941032 on 2016/04/12 by Jason.Bestimt #ORION_24 - Merge MAIN @ CL 2940950 #RB:none #Tests:none [CL 2952833 by Andrew Grant in Main branch]
2016-04-22 11:21:10 -04:00
/// <param name="Obj">other instance to compare.</param>
/// <returns>True if the names represent the same object, false otherwise</returns>
public override bool Equals(object Obj)
{
return (Obj is DirectoryReference) && ((DirectoryReference)Obj) == this;
}
Copying //UE4/Orion-Staging to //UE4/Main (Source: //Orion/Dev-General @ 2949393) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2949393 on 2016/04/20 by Graeme.Thornton Orion non-pak file security. - Removed security bypass code from platform pak file - Added a delegate to pak file code which allows the game to decide whether a file should be allowed or not - Added an orion delegate which whitelists appropriate files #rb robert.manuszewski #tests win64 client + dedicated server. golden path. Change 2949232 on 2016/04/19 by david.nikdel #ROBOMERGE-AUTHOR: michael.noland Paragon: Added a distinct menu frame rate limit, currently set to 60 fps and not visible in settings (if the user sets a game frame rate limit of below 60, we also clamp the menu limit to that threshold, so they can go down but not up for menus) #jira OR-18017 #rb marcus.wassmer #tests Ran paragon and switched between gameplay, menus, and replays, observing t.MaxFPS at different points #ROBOMERGE-SOURCE: CL 2949231 in //Orion/Main/... #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2949032 on 2016/04/19 by Zak.Middleton #orion - Lower default NetUpdateFrequency for minions (10->6). Avoid excessive latency for some knockback/knockup abilities that would have noticeable lag by forcing an update sooner when they are triggered. This should have the following effects: 1. Reduce server CPU cost (we tick minions at the net frequency). 2. Reduce server bandwidth 3. Reduce client CPU cost (we move character capsules and perform overlaps when new positions are received). #rb Bart.Bressler, John.Pollard #codereview Dmitry.Rekman #tests MultiPIE AI lane, Replays Change 2948966 on 2016/04/19 by Lina.Halper Added log (check) of the asset info for Anim Per Track contains invalid format key #rb: Michael.Noland #code review: Martin.Wilson, Laurent.Delayen, Michael.Noland #tests: editor/ cooked and test with AI_Tests with 10 bots. Change 2948876 on 2016/04/19 by Michael.Noland PS4: Validate that the texture pool size is not set to automatic (-1, which will crash later on as an attempt to allocate too much memory) #rb none #codereview marcus.wassmer #tests Ran Paragon on PS4 Change 2948765 on 2016/04/19 by Daniel.Lamb Removed AssetImportData tag from cooked asset registry builds. #rb Andrew.Grant #test Cook orion Change 2948691 on 2016/04/19 by Marcus.Wassmer Fix copytoresolvetarget ensure #rb none #test pc agora Change 2948633 on 2016/04/19 by david.nikdel #ROBOMERGE-AUTHOR: jason.bestimt [AUTOMERGE] Fix copytoresolve crash and change validation to ensure. #test PC editor / PC golden path #rb none -------- Integrated using branch //Orion/Main_to_//Orion/Release-Next (reversed) of change#2948169 by Marcus.Wassmer on 2016/04/19 10:50:32. #ROBOMERGE-SOURCE: CL 2948632 in //Orion/Main/... #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2948507 on 2016/04/19 by david.nikdel #ROBOMERGE-AUTHOR: andrew.grant Merging 2937781 (Pak signing) using //Orion/Dev-General_to_Release #rb none #tests cooked client, checked game runs #ROBOMERGE-SOURCE: CL 2948497 in //Orion/Release-0.24.1/... via CL 2948506 #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2948431 on 2016/04/19 by Steve.Robb CL#s 2919775 and 2942793 integrated to prevent annotation map performance problems on shutdown and asserts in PIE. #codereview robert.manuszewski,bob.tellez #rb bob.tellez #tests Ran editor Change 2948408 on 2016/04/19 by Leslie.Nivison Adding .tps #rb none #test none Change 2948185 on 2016/04/19 by david.nikdel #ROBOMERGE-AUTHOR: chris.bunner Fix for HLOD visibility freeze. #tests Golden Path, Editor #rb rolando.caloca, michael.noland #lockdown andrew.grant #jira OR-19863 #ROBOMERGE-SOURCE: CL 2948182 in //Orion/Release-0.24.1/... via CL 2948183 #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2948149 on 2016/04/19 by Simon.Tovey Fixed crash. Collision rendering path was not dealing with mesh batch with 0 triangles where other paths do. #rb none #tests No more crash #codereview Marcus.Wassmer Change 2948129 on 2016/04/19 by Lukasz.Furman fixed gameplay debugger getting stuck with outdated data pack on client, changed names of AI related debug cvars #rb none #tests game, PIE #codereview Mieszko.Zielinski Change 2948027 on 2016/04/19 by david.nikdel #ROBOMERGE-AUTHOR: graeme.thornton Fix for OR-20033 - CRASH: Client will crash with FRCPassPostProcessCircleDOFSetup #rb none #tests checked game runs without crashing #ROBOMERGE-SOURCE: CL 2948017 in //Orion/Main/... #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2947558 on 2016/04/18 by Matt.Kuhlenschmidt Fix compile error #rb none, #tests none Change 2947509 on 2016/04/18 by Matt.Kuhlenschmidt Added more logging to track down https://jira.ol.epicgames.net/browse/OR-19841 #rb none, #tests none Change 2947412 on 2016/04/18 by Ryan.Gerleve Fix shadowed variable. #rb none #tests none Change 2947377 on 2016/04/18 by Jamie.Dale Gather paths are now sorted by fuzzy-ness, so that more specific includes beat less specific excludes #rb Matt.Kuhlenschmidt #tests Built for Windows. Ran a gather, and confirmed that explicitly included heroes were now gathered, and that generically excluded heroes were absent from the gather. Change 2947351 on 2016/04/18 by Ryan.Gerleve Allow overriding the demo.AsyncLoadWorld setting with a URL option when playing a replay. Store the entire URL in the demo net driver instead of just the map name, so that the options can be accessed later. #tests golden path, replays #rb john.pollard Change 2947103 on 2016/04/18 by david.nikdel #ROBOMERGE-AUTHOR: jason.bestimt #ORION_MAIN - Merge 24.1 @ CL 2947071 #RB:none #Tests:none #ROBOMERGE-SOURCE: CL 2947102 in //Orion/Main/... #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2947007 on 2016/04/18 by Zak.Middleton #ue4 - Improve linear smoothing in the presence of low net frequency updates. #rb Bart.Bressler #tests MultiPIE AI with lanes Change 2946994 on 2016/04/18 by Mieszko.Zielinski Improvements to NavigationSystem's "abstract navigation data" support #UE4 #rb Lukasz.Furman #test golden path Change 2946760 on 2016/04/18 by Chris.Bunner Fixing up bad merge, recommit of CL 2819472 - ForceLOD now clamps to available LODs on primitive, i.e. use MinLOD rather than not drawing at all. #tests Editor #rb None Change 2946745 on 2016/04/18 by david.nikdel #ROBOMERGE-AUTHOR: jason.bestimt #ORION_MAIN - Merge 24.1 @ CL 2946637 #RB:none #Tests:none #ROBOMERGE-SOURCE: CL 2946656 in //Orion/Main/... #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2946645 on 2016/04/18 by Richard.Fawcett When promoting a buidl to staged, prevent enumeration of files already in S3 Enumerating files in S3 is a slow process, and it turns out that simply uploading all chunks blindly is more efficient than enumerating existing chunks and selectively uploading only the new ones. #rb Leigh.Swift #tests This technique has already been used in launcher promotions for several months Change 2946622 on 2016/04/18 by Richard.Fawcett By default, when enumerating chunks from a manifest file, skip checking they exist on disk at enumeration time. This will fail anyway further down the line if the files don't exist, but will improve speed of stage promotions by around five minutes. In practice, we have NEVER seen a job fail at this point because of the existence check. #rb Leigh.Swift #tests Ensure that output of ExtractDataFilenamesFromManifest method is identical both with and without bSkipExistsCheck specified. Change 2945812 on 2016/04/15 by Daniel.Lamb Fixed error in diff cooked build commandlet. #rb ben.marsh #test Compile. Change 2945110 on 2016/04/15 by Matt.Kuhlenschmidt Fix crash exporting actors with non-scene components to fbx #rb none, #tests full scene exporting on maps that crashed #codereview alexis.matte Change 2945078 on 2016/04/15 by Simon.Tovey Fix for OR-19778 When some pooled systems are reused, on init they have a non zero lod level but the emitter instances are created at LOD 0 initially. So the component did not think it had to update it's LOD but the emitters were not at the correct LOD. Have forced a LOD set on init when the component LOD is non-zero. #rb none #tests Works in editor and game. #codereview Olaf.Piesche Change 2944664 on 2016/04/14 by Uriel.Doyon Fix to SM4 compilation issue #jira OR-19706 #rb marcus.wassmer #tests tested editor in SM4 and SM5 Change 2944642 on 2016/04/14 by Lukasz.Furman changed waypoint switch conditions in meta nav paths #rb none #tests PIE #codereview Mieszko.Zielinski Change 2944599 on 2016/04/14 by david.nikdel #ROBOMERGE-AUTHOR: andrew.grant Added sha1 to UnrealPak list output #rb none #tests listed content of pakfile #ROBOMERGE-SOURCE: CL 2944595 in //Orion/Release-0.24/... via CL 2944597 via CL 2944598 #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2944441 on 2016/04/14 by Marcus.Wassmer Duplicate change to output shader compiler errors. #rb none #test run PC and see errors. Change 2944437 on 2016/04/14 by John.Pollard Possible fix for https://jira.ol.epicgames.net/browse/OR-19614 #rb JoshM #codereview Josh.Markiewicz #tests Golden path matchmaking Change 2944430 on 2016/04/14 by david.nikdel #ROBOMERGE-AUTHOR: michael.noland Engine: Added support for more/fewer settings in individual categories to the editor scalability control widget #rb david.ratti #tests Tested in the editor #ROBOMERGE-SOURCE: CL 2944428 in //Orion/Main/... #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2944198 on 2016/04/14 by David.Ratti Paragon - register for slow/stun/root/silence callbacks on any tag count change, not just add/remove. This is so the UI will update if you get another stack of a stackable slow GE. Ability system - unify client stack count change code path with server. Client now properly update owner ASC's tag map and broadcasts all delegates there. #rb dayY #tests pie Change 2944124 on 2016/04/14 by Wes.Hunt Change the TPS redirects for DX modules to point to the proper DX redist TPS which is what packaged games will need. #codereview:leslie.nivison #rb none #tests ran UAT ListThirdPartySoftware <for Orion> Change 2944107 on 2016/04/14 by Wes.Hunt MeshUtilities now depends on new module nvTessLib to better track the third party dependency. #codereview:daniel.wright #rb none #tests build OrionClient/Editor for Win64 Change 2944102 on 2016/04/14 by Wes.Hunt Tweak to UBT -ListBuildFolders to do a distinct in a better place to cut down on duplicate module searches. #tests ran the UBT command #rb none Change 2943851 on 2016/04/14 by Ryan.Gerleve Fix the ForEachNetDriver helper function to get the world context directly off the world instead of going through the game instance. Ensures the correct net drivers will be used when there are multiple worlds but only one game instance. #rb john.pollard #tests golden path, replays, PIE Change 2943847 on 2016/04/14 by Ryan.Gerleve Fixes to support client replay recording & playback in another world: When recording a replay, only swap actor roles if the remote role is ROLE_Authority When loading a replay checkpoint, call NetworkRemapPath to make sure paths have the correct name in the GuidCache #rb john.pollard #tests golden path, replays, PIE Change 2943691 on 2016/04/14 by david.nikdel #ROBOMERGE-AUTHOR: jason.bestimt #ORION_24 - Fix for OR-19609, OR-19610, and OR-19611 #RB:none #Tests:none #ROBOMERGE-SOURCE: CL 2943687 in //Orion/Release-0.24/... via CL 2943688 #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2943508 on 2016/04/14 by Richard.Fawcett Automation: Add support for multipart file uploads to Amazon S3 to increase speed of large file uploads. #jira OPPBUILD-44 #rb Leigh.Swift #tests Uploaded files to S3 using the new routines, downlaoded via AWS management console and ensured downloaded files identical to uploaded ones Change 2943274 on 2016/04/13 by jason.bestimt #ORION_MAIN - Merge 24 @ CL 2943257 #RB:none #Tests:none #ROBOMERGE-SOURCE: CL 2943271 in //Orion/Main/... #ROBOMERGE-BOT: ORION (Main -> Dev-General) #ROBOMERGE-SAYS: Beep boop! I couldn't merge this change. Please do it yourself, human. #CodeReview: david.nikdel, jason.bestimt Change 2943178 on 2016/04/13 by Olaf.Piesche Bumping size of the particle curve texture to 512x512 #rb martin.mittring #tests PC Editor, Game Change 2943174 on 2016/04/13 by Aaron.McLeran OR-19392 Ensure condition failed: (*RequiresInitialization == 0) on loading into PVP match - Removing ensure since there is a rare edge case where it's possible for a sound looping node may get ResetChildren called twice. - Condition is when a child random node o fa looping node has a blank entry and results in no sound chosen in a given frame (which results in ResetChildren getting called). Later in the frame, if a sound had previously been playing with an active sound, it will have stop called on it, which will call NotifyWaveInstanceFinished and hit the ensure. Simply using the branch to check if the looping node has been initialized will work fine in this and other cases. #codereview Bob.Tellez #rb Bob.Tellez #tests ran orion with this change testing problematic sound cue Change 2943042 on 2016/04/13 by Rob.Cannaday Fix crash in HTTP completion delegates on shutdown Stop ticking HTTP retry manager after FOnlineSubsystemImpl::Shutdown has been called #rb josh.markiewicz #tests shutting down multiple times Change 2942913 on 2016/04/13 by Lukasz.Furman added meta navmesh paths #orion #rb Mieszko.Zielinski #tests PIE Change 2942132 on 2016/04/13 by Wes.Hunt Enable UBT -ListBuildFolders to operate on Mac and iOS platforms without having to fully set up the remote environment. #codereview:leslie.nivison #rb peter.sauerbrei #tests running UBT with and without -listbuildfolders Change 2941651 on 2016/04/12 by Jason.Bestimt #ORION_DG - Merge MAIN @ CL 2941645 #RB:none #Tests:none Change 2941539 on 2016/04/12 by Laurent.Delayen FABRIK: Normalize outgoing rotations. Fixes Chains Q ability crashing. #rb none #tests Chains not crashing Change 2941469 on 2016/04/12 by Wes.Hunt Fix UBT -ListBuildFolders to not prep target for deployment. #codereview:leslie.nivison #rb none #tests tested -ListBuildFolders for Android Change 2941434 on 2016/04/12 by Leslie.Nivison Adding/cleaning up .tps files #rb none #test none Change 2941241 on 2016/04/12 by Daniel.Lamb Removed shadername from the shader code to fix deterministic material cooking issue. #jira UE-29320 #codereview Marcus.Wassmer #rb Marcus.Wassmer #test Running editor, cooking orion. Change 2941046 on 2016/04/12 by Laurent.Delayen Added safety net for non state AnimNotifies having a non-zero EndTriggerTimeOffset. Fixes Twinblast double shot for the left primary attack. #rb benn.gallagher #codereview lina.halper, ray.arnett, aaron.eady #tests twinblast's LMB Change 2941032 on 2016/04/12 by Jason.Bestimt #ORION_24 - Merge MAIN @ CL 2940950 #RB:none #Tests:none [CL 2952833 by Andrew Grant in Main branch]
2016-04-22 11:21:10 -04:00
/// <summary>
/// Compares against another object for equality.
/// </summary>
/// <param name="Obj">other instance to compare.</param>
/// <returns>True if the names represent the same object, false otherwise</returns>
public bool Equals(DirectoryReference Obj)
{
return Obj == this;
}
/// <summary>
/// Returns a hash code for this object
/// </summary>
/// <returns></returns>
public override int GetHashCode()
{
return CanonicalName.GetHashCode();
}
/// <summary>
/// Helper function to create a remote directory reference. Unlike normal DirectoryReference objects, these aren't converted to a full path in the local filesystem.
/// </summary>
/// <param name="AbsolutePath">The absolute path in the remote file system</param>
/// <returns>New directory reference</returns>
public static DirectoryReference MakeRemote(string AbsolutePath)
{
return new DirectoryReference(AbsolutePath, AbsolutePath.ToLowerInvariant());
}
/// <summary>
/// Helper function to create a directory reference from a raw platform path. The path provided *MUST* be exactly the same as that returned by Path.GetFullPath().
/// </summary>
/// <param name="AbsolutePath">The absolute path in the file system</param>
/// <returns>New file reference</returns>
public static DirectoryReference MakeFromNormalizedFullPath(string AbsolutePath)
{
return new DirectoryReference(AbsolutePath, AbsolutePath.ToLowerInvariant());
}
/// <summary>
/// Gets the parent directory for a file, or returns null if it's null.
/// </summary>
/// <param name="File">The file to create a directory reference for</param>
/// <returns>The directory containing the file </returns>
public static DirectoryReference FromFile(FileReference File)
{
return (File == null)? null : File.Directory;
}
}
/// <summary>
/// Representation of an absolute file path. Allows fast hashing and comparisons.
/// </summary>
[Serializable]
Copying //UE4/Orion-Staging to //UE4/Main (Source: //Orion/Dev-General @ 2949393) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2949393 on 2016/04/20 by Graeme.Thornton Orion non-pak file security. - Removed security bypass code from platform pak file - Added a delegate to pak file code which allows the game to decide whether a file should be allowed or not - Added an orion delegate which whitelists appropriate files #rb robert.manuszewski #tests win64 client + dedicated server. golden path. Change 2949232 on 2016/04/19 by david.nikdel #ROBOMERGE-AUTHOR: michael.noland Paragon: Added a distinct menu frame rate limit, currently set to 60 fps and not visible in settings (if the user sets a game frame rate limit of below 60, we also clamp the menu limit to that threshold, so they can go down but not up for menus) #jira OR-18017 #rb marcus.wassmer #tests Ran paragon and switched between gameplay, menus, and replays, observing t.MaxFPS at different points #ROBOMERGE-SOURCE: CL 2949231 in //Orion/Main/... #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2949032 on 2016/04/19 by Zak.Middleton #orion - Lower default NetUpdateFrequency for minions (10->6). Avoid excessive latency for some knockback/knockup abilities that would have noticeable lag by forcing an update sooner when they are triggered. This should have the following effects: 1. Reduce server CPU cost (we tick minions at the net frequency). 2. Reduce server bandwidth 3. Reduce client CPU cost (we move character capsules and perform overlaps when new positions are received). #rb Bart.Bressler, John.Pollard #codereview Dmitry.Rekman #tests MultiPIE AI lane, Replays Change 2948966 on 2016/04/19 by Lina.Halper Added log (check) of the asset info for Anim Per Track contains invalid format key #rb: Michael.Noland #code review: Martin.Wilson, Laurent.Delayen, Michael.Noland #tests: editor/ cooked and test with AI_Tests with 10 bots. Change 2948876 on 2016/04/19 by Michael.Noland PS4: Validate that the texture pool size is not set to automatic (-1, which will crash later on as an attempt to allocate too much memory) #rb none #codereview marcus.wassmer #tests Ran Paragon on PS4 Change 2948765 on 2016/04/19 by Daniel.Lamb Removed AssetImportData tag from cooked asset registry builds. #rb Andrew.Grant #test Cook orion Change 2948691 on 2016/04/19 by Marcus.Wassmer Fix copytoresolvetarget ensure #rb none #test pc agora Change 2948633 on 2016/04/19 by david.nikdel #ROBOMERGE-AUTHOR: jason.bestimt [AUTOMERGE] Fix copytoresolve crash and change validation to ensure. #test PC editor / PC golden path #rb none -------- Integrated using branch //Orion/Main_to_//Orion/Release-Next (reversed) of change#2948169 by Marcus.Wassmer on 2016/04/19 10:50:32. #ROBOMERGE-SOURCE: CL 2948632 in //Orion/Main/... #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2948507 on 2016/04/19 by david.nikdel #ROBOMERGE-AUTHOR: andrew.grant Merging 2937781 (Pak signing) using //Orion/Dev-General_to_Release #rb none #tests cooked client, checked game runs #ROBOMERGE-SOURCE: CL 2948497 in //Orion/Release-0.24.1/... via CL 2948506 #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2948431 on 2016/04/19 by Steve.Robb CL#s 2919775 and 2942793 integrated to prevent annotation map performance problems on shutdown and asserts in PIE. #codereview robert.manuszewski,bob.tellez #rb bob.tellez #tests Ran editor Change 2948408 on 2016/04/19 by Leslie.Nivison Adding .tps #rb none #test none Change 2948185 on 2016/04/19 by david.nikdel #ROBOMERGE-AUTHOR: chris.bunner Fix for HLOD visibility freeze. #tests Golden Path, Editor #rb rolando.caloca, michael.noland #lockdown andrew.grant #jira OR-19863 #ROBOMERGE-SOURCE: CL 2948182 in //Orion/Release-0.24.1/... via CL 2948183 #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2948149 on 2016/04/19 by Simon.Tovey Fixed crash. Collision rendering path was not dealing with mesh batch with 0 triangles where other paths do. #rb none #tests No more crash #codereview Marcus.Wassmer Change 2948129 on 2016/04/19 by Lukasz.Furman fixed gameplay debugger getting stuck with outdated data pack on client, changed names of AI related debug cvars #rb none #tests game, PIE #codereview Mieszko.Zielinski Change 2948027 on 2016/04/19 by david.nikdel #ROBOMERGE-AUTHOR: graeme.thornton Fix for OR-20033 - CRASH: Client will crash with FRCPassPostProcessCircleDOFSetup #rb none #tests checked game runs without crashing #ROBOMERGE-SOURCE: CL 2948017 in //Orion/Main/... #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2947558 on 2016/04/18 by Matt.Kuhlenschmidt Fix compile error #rb none, #tests none Change 2947509 on 2016/04/18 by Matt.Kuhlenschmidt Added more logging to track down https://jira.ol.epicgames.net/browse/OR-19841 #rb none, #tests none Change 2947412 on 2016/04/18 by Ryan.Gerleve Fix shadowed variable. #rb none #tests none Change 2947377 on 2016/04/18 by Jamie.Dale Gather paths are now sorted by fuzzy-ness, so that more specific includes beat less specific excludes #rb Matt.Kuhlenschmidt #tests Built for Windows. Ran a gather, and confirmed that explicitly included heroes were now gathered, and that generically excluded heroes were absent from the gather. Change 2947351 on 2016/04/18 by Ryan.Gerleve Allow overriding the demo.AsyncLoadWorld setting with a URL option when playing a replay. Store the entire URL in the demo net driver instead of just the map name, so that the options can be accessed later. #tests golden path, replays #rb john.pollard Change 2947103 on 2016/04/18 by david.nikdel #ROBOMERGE-AUTHOR: jason.bestimt #ORION_MAIN - Merge 24.1 @ CL 2947071 #RB:none #Tests:none #ROBOMERGE-SOURCE: CL 2947102 in //Orion/Main/... #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2947007 on 2016/04/18 by Zak.Middleton #ue4 - Improve linear smoothing in the presence of low net frequency updates. #rb Bart.Bressler #tests MultiPIE AI with lanes Change 2946994 on 2016/04/18 by Mieszko.Zielinski Improvements to NavigationSystem's "abstract navigation data" support #UE4 #rb Lukasz.Furman #test golden path Change 2946760 on 2016/04/18 by Chris.Bunner Fixing up bad merge, recommit of CL 2819472 - ForceLOD now clamps to available LODs on primitive, i.e. use MinLOD rather than not drawing at all. #tests Editor #rb None Change 2946745 on 2016/04/18 by david.nikdel #ROBOMERGE-AUTHOR: jason.bestimt #ORION_MAIN - Merge 24.1 @ CL 2946637 #RB:none #Tests:none #ROBOMERGE-SOURCE: CL 2946656 in //Orion/Main/... #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2946645 on 2016/04/18 by Richard.Fawcett When promoting a buidl to staged, prevent enumeration of files already in S3 Enumerating files in S3 is a slow process, and it turns out that simply uploading all chunks blindly is more efficient than enumerating existing chunks and selectively uploading only the new ones. #rb Leigh.Swift #tests This technique has already been used in launcher promotions for several months Change 2946622 on 2016/04/18 by Richard.Fawcett By default, when enumerating chunks from a manifest file, skip checking they exist on disk at enumeration time. This will fail anyway further down the line if the files don't exist, but will improve speed of stage promotions by around five minutes. In practice, we have NEVER seen a job fail at this point because of the existence check. #rb Leigh.Swift #tests Ensure that output of ExtractDataFilenamesFromManifest method is identical both with and without bSkipExistsCheck specified. Change 2945812 on 2016/04/15 by Daniel.Lamb Fixed error in diff cooked build commandlet. #rb ben.marsh #test Compile. Change 2945110 on 2016/04/15 by Matt.Kuhlenschmidt Fix crash exporting actors with non-scene components to fbx #rb none, #tests full scene exporting on maps that crashed #codereview alexis.matte Change 2945078 on 2016/04/15 by Simon.Tovey Fix for OR-19778 When some pooled systems are reused, on init they have a non zero lod level but the emitter instances are created at LOD 0 initially. So the component did not think it had to update it's LOD but the emitters were not at the correct LOD. Have forced a LOD set on init when the component LOD is non-zero. #rb none #tests Works in editor and game. #codereview Olaf.Piesche Change 2944664 on 2016/04/14 by Uriel.Doyon Fix to SM4 compilation issue #jira OR-19706 #rb marcus.wassmer #tests tested editor in SM4 and SM5 Change 2944642 on 2016/04/14 by Lukasz.Furman changed waypoint switch conditions in meta nav paths #rb none #tests PIE #codereview Mieszko.Zielinski Change 2944599 on 2016/04/14 by david.nikdel #ROBOMERGE-AUTHOR: andrew.grant Added sha1 to UnrealPak list output #rb none #tests listed content of pakfile #ROBOMERGE-SOURCE: CL 2944595 in //Orion/Release-0.24/... via CL 2944597 via CL 2944598 #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2944441 on 2016/04/14 by Marcus.Wassmer Duplicate change to output shader compiler errors. #rb none #test run PC and see errors. Change 2944437 on 2016/04/14 by John.Pollard Possible fix for https://jira.ol.epicgames.net/browse/OR-19614 #rb JoshM #codereview Josh.Markiewicz #tests Golden path matchmaking Change 2944430 on 2016/04/14 by david.nikdel #ROBOMERGE-AUTHOR: michael.noland Engine: Added support for more/fewer settings in individual categories to the editor scalability control widget #rb david.ratti #tests Tested in the editor #ROBOMERGE-SOURCE: CL 2944428 in //Orion/Main/... #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2944198 on 2016/04/14 by David.Ratti Paragon - register for slow/stun/root/silence callbacks on any tag count change, not just add/remove. This is so the UI will update if you get another stack of a stackable slow GE. Ability system - unify client stack count change code path with server. Client now properly update owner ASC's tag map and broadcasts all delegates there. #rb dayY #tests pie Change 2944124 on 2016/04/14 by Wes.Hunt Change the TPS redirects for DX modules to point to the proper DX redist TPS which is what packaged games will need. #codereview:leslie.nivison #rb none #tests ran UAT ListThirdPartySoftware <for Orion> Change 2944107 on 2016/04/14 by Wes.Hunt MeshUtilities now depends on new module nvTessLib to better track the third party dependency. #codereview:daniel.wright #rb none #tests build OrionClient/Editor for Win64 Change 2944102 on 2016/04/14 by Wes.Hunt Tweak to UBT -ListBuildFolders to do a distinct in a better place to cut down on duplicate module searches. #tests ran the UBT command #rb none Change 2943851 on 2016/04/14 by Ryan.Gerleve Fix the ForEachNetDriver helper function to get the world context directly off the world instead of going through the game instance. Ensures the correct net drivers will be used when there are multiple worlds but only one game instance. #rb john.pollard #tests golden path, replays, PIE Change 2943847 on 2016/04/14 by Ryan.Gerleve Fixes to support client replay recording & playback in another world: When recording a replay, only swap actor roles if the remote role is ROLE_Authority When loading a replay checkpoint, call NetworkRemapPath to make sure paths have the correct name in the GuidCache #rb john.pollard #tests golden path, replays, PIE Change 2943691 on 2016/04/14 by david.nikdel #ROBOMERGE-AUTHOR: jason.bestimt #ORION_24 - Fix for OR-19609, OR-19610, and OR-19611 #RB:none #Tests:none #ROBOMERGE-SOURCE: CL 2943687 in //Orion/Release-0.24/... via CL 2943688 #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2943508 on 2016/04/14 by Richard.Fawcett Automation: Add support for multipart file uploads to Amazon S3 to increase speed of large file uploads. #jira OPPBUILD-44 #rb Leigh.Swift #tests Uploaded files to S3 using the new routines, downlaoded via AWS management console and ensured downloaded files identical to uploaded ones Change 2943274 on 2016/04/13 by jason.bestimt #ORION_MAIN - Merge 24 @ CL 2943257 #RB:none #Tests:none #ROBOMERGE-SOURCE: CL 2943271 in //Orion/Main/... #ROBOMERGE-BOT: ORION (Main -> Dev-General) #ROBOMERGE-SAYS: Beep boop! I couldn't merge this change. Please do it yourself, human. #CodeReview: david.nikdel, jason.bestimt Change 2943178 on 2016/04/13 by Olaf.Piesche Bumping size of the particle curve texture to 512x512 #rb martin.mittring #tests PC Editor, Game Change 2943174 on 2016/04/13 by Aaron.McLeran OR-19392 Ensure condition failed: (*RequiresInitialization == 0) on loading into PVP match - Removing ensure since there is a rare edge case where it's possible for a sound looping node may get ResetChildren called twice. - Condition is when a child random node o fa looping node has a blank entry and results in no sound chosen in a given frame (which results in ResetChildren getting called). Later in the frame, if a sound had previously been playing with an active sound, it will have stop called on it, which will call NotifyWaveInstanceFinished and hit the ensure. Simply using the branch to check if the looping node has been initialized will work fine in this and other cases. #codereview Bob.Tellez #rb Bob.Tellez #tests ran orion with this change testing problematic sound cue Change 2943042 on 2016/04/13 by Rob.Cannaday Fix crash in HTTP completion delegates on shutdown Stop ticking HTTP retry manager after FOnlineSubsystemImpl::Shutdown has been called #rb josh.markiewicz #tests shutting down multiple times Change 2942913 on 2016/04/13 by Lukasz.Furman added meta navmesh paths #orion #rb Mieszko.Zielinski #tests PIE Change 2942132 on 2016/04/13 by Wes.Hunt Enable UBT -ListBuildFolders to operate on Mac and iOS platforms without having to fully set up the remote environment. #codereview:leslie.nivison #rb peter.sauerbrei #tests running UBT with and without -listbuildfolders Change 2941651 on 2016/04/12 by Jason.Bestimt #ORION_DG - Merge MAIN @ CL 2941645 #RB:none #Tests:none Change 2941539 on 2016/04/12 by Laurent.Delayen FABRIK: Normalize outgoing rotations. Fixes Chains Q ability crashing. #rb none #tests Chains not crashing Change 2941469 on 2016/04/12 by Wes.Hunt Fix UBT -ListBuildFolders to not prep target for deployment. #codereview:leslie.nivison #rb none #tests tested -ListBuildFolders for Android Change 2941434 on 2016/04/12 by Leslie.Nivison Adding/cleaning up .tps files #rb none #test none Change 2941241 on 2016/04/12 by Daniel.Lamb Removed shadername from the shader code to fix deterministic material cooking issue. #jira UE-29320 #codereview Marcus.Wassmer #rb Marcus.Wassmer #test Running editor, cooking orion. Change 2941046 on 2016/04/12 by Laurent.Delayen Added safety net for non state AnimNotifies having a non-zero EndTriggerTimeOffset. Fixes Twinblast double shot for the left primary attack. #rb benn.gallagher #codereview lina.halper, ray.arnett, aaron.eady #tests twinblast's LMB Change 2941032 on 2016/04/12 by Jason.Bestimt #ORION_24 - Merge MAIN @ CL 2940950 #RB:none #Tests:none [CL 2952833 by Andrew Grant in Main branch]
2016-04-22 11:21:10 -04:00
public class FileReference : FileSystemReference, IEquatable<FileReference>
{
/// <summary>
/// Default constructor.
/// </summary>
/// <param name="InPath">Path to this file</param>
public FileReference(string InPath)
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3075869) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3059740 on 2016/07/21 by Ben.Marsh Format license violations on separate lines rather than as a single multi-line string, so they can be parsed out correctly by the EC log parser. Change 3063115 on 2016/07/25 by Ben.Marsh Add missing projects to Mono AutomationTool solution. Change 3067125 on 2016/07/27 by Ben.Marsh Clean up and document the engine versioning system. * Version.h has a summary of all the different versioning concepts in UE4, as well as an explanation of what all the macros do. * VersionLocked.h has been removed. ENGINE_NET_VERSION and ENGINE_REPLAY_VERSION can be overriden directly in Version.h if necessary. * Added explicit macros for ENGINE_CURRENT_CL_VERSION And ENGINE_COMPATIBLE_CL_VERSION. The MODULE_API_VERSION macro is now defined to be the same as ENGINE_COMPATIBLE_CL_VERSION. * Build/Build.version now includes the compatible CL version, so it can be determined without having to parse header files inside MacToolChain.cs. * UpdateLocalVersion UAT command now exposes a -CompatibleCL=... argument to update ENGINE_COMPATIBLE_CL_VERSION and the CompatibleChange property in Build.version. * SetVersion BuildGraph task now has a CompatibleChange="" attribute to update ENGINE_COMPATIBLE_CL_VERSION and the CompatibleChange property in Build.version. * VersionFileUpdater now makes an effort to parse tokens matching the macros it's going to overwrite, rather than requiring exact matches in whitespace in Version.h. * Running UpdateLocalVersion now syncs files to revision 0 before writing if P4 is enabled, similarly to UGS, or fails if they are not writable. Change 3067242 on 2016/07/27 by Ben.Marsh Fix UGS showing a build failure/warning dialog immediately if you submit while the build is yellow/red. Now ignores builds before your last submitted CL. Change 3068116 on 2016/07/28 by Ben.Marsh Add a small Windows utility to terminate all running processes under a given root directory, and run it before and after every sync. Mean to fix instances where zombie editor processes do not terminate correctly and cause subsequent syncs to fail. Change 3068246 on 2016/07/28 by Ben.Marsh UGS: Improvements to 'Clean Workspace' dialog - empty folders are now set to be deleted by default, and added a context menu to select all/none/empty/default for a subtree, as well as to open Windows explorer at that location. Change 3068573 on 2016/07/28 by Ben.Marsh Attempt to fix AppDomain unload errors; suspect caused by delay to terminate child processes when managed exception is thrown on child threads. Now waits for the currently running threads to finish executing before quitting. Change 3068575 on 2016/07/28 by Ben.Marsh Respect the -noxge command-line argument when compiling UHT. Change 3068665 on 2016/07/28 by Ben.Marsh Delete any DLLs in output folders which share names with build products. The Windows loader reads DLLs from the first location it finds a file with a matching name, so we need to ensure that it doesn't load stale DLLs when output directories are changed (moving a module into a plugin, for example). Change 3073316 on 2016/08/02 by Ben.Marsh CoreUObject: Replace header guards with #pragma once directives. Change 3073325 on 2016/08/02 by Ben.Marsh CoreUObject: Manually untangle a few circular includes around ObjectBase.h and Class.h to allow making them into IWYU-style headers. Change 3074391 on 2016/08/02 by Ben.Marsh GitHub #2646: Always allow programs to build as part of non-game solution configurations. Change 3075123 on 2016/08/03 by Richard.Fawcett Ensure that zip files created outside of Ionic Zip can be unzipped with CommandUtils.UnzipFiles Zip files created with 7-zip, WinRAR, and Windows Explorer all contain entities for directories, not just the files in them. Code in CommandUtils.UnzipFiles made the assumption that all entities in the zip file were files, and an exception was being thrown on encountering a directory. Change 3075848 on 2016/08/03 by Ben.Marsh UBT: Fix a few cases where it's possible to construct a non-canonical DirectoryReference - root directories on Windows must always have a terminating slash, but any other directories must note. DirectoryInfo and Path.GetFullPath() do not enforce this requirement. Change 3075850 on 2016/08/03 by Ben.Marsh UBT: Fix UHT failures when running with -nopch. Change 3077058 by Ben.Marsh UHT: Remove the auto-generated ObjectBase.h include from generated header files. Was originally added to allow doxygen to parse headers more easily, but was switched to parsing the file only as part of parent files instead. [CL 3077308 by Ben Marsh in Main branch]
2016-08-04 10:41:07 -04:00
: base(Path.GetFullPath(InPath))
{
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3075869) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3059740 on 2016/07/21 by Ben.Marsh Format license violations on separate lines rather than as a single multi-line string, so they can be parsed out correctly by the EC log parser. Change 3063115 on 2016/07/25 by Ben.Marsh Add missing projects to Mono AutomationTool solution. Change 3067125 on 2016/07/27 by Ben.Marsh Clean up and document the engine versioning system. * Version.h has a summary of all the different versioning concepts in UE4, as well as an explanation of what all the macros do. * VersionLocked.h has been removed. ENGINE_NET_VERSION and ENGINE_REPLAY_VERSION can be overriden directly in Version.h if necessary. * Added explicit macros for ENGINE_CURRENT_CL_VERSION And ENGINE_COMPATIBLE_CL_VERSION. The MODULE_API_VERSION macro is now defined to be the same as ENGINE_COMPATIBLE_CL_VERSION. * Build/Build.version now includes the compatible CL version, so it can be determined without having to parse header files inside MacToolChain.cs. * UpdateLocalVersion UAT command now exposes a -CompatibleCL=... argument to update ENGINE_COMPATIBLE_CL_VERSION and the CompatibleChange property in Build.version. * SetVersion BuildGraph task now has a CompatibleChange="" attribute to update ENGINE_COMPATIBLE_CL_VERSION and the CompatibleChange property in Build.version. * VersionFileUpdater now makes an effort to parse tokens matching the macros it's going to overwrite, rather than requiring exact matches in whitespace in Version.h. * Running UpdateLocalVersion now syncs files to revision 0 before writing if P4 is enabled, similarly to UGS, or fails if they are not writable. Change 3067242 on 2016/07/27 by Ben.Marsh Fix UGS showing a build failure/warning dialog immediately if you submit while the build is yellow/red. Now ignores builds before your last submitted CL. Change 3068116 on 2016/07/28 by Ben.Marsh Add a small Windows utility to terminate all running processes under a given root directory, and run it before and after every sync. Mean to fix instances where zombie editor processes do not terminate correctly and cause subsequent syncs to fail. Change 3068246 on 2016/07/28 by Ben.Marsh UGS: Improvements to 'Clean Workspace' dialog - empty folders are now set to be deleted by default, and added a context menu to select all/none/empty/default for a subtree, as well as to open Windows explorer at that location. Change 3068573 on 2016/07/28 by Ben.Marsh Attempt to fix AppDomain unload errors; suspect caused by delay to terminate child processes when managed exception is thrown on child threads. Now waits for the currently running threads to finish executing before quitting. Change 3068575 on 2016/07/28 by Ben.Marsh Respect the -noxge command-line argument when compiling UHT. Change 3068665 on 2016/07/28 by Ben.Marsh Delete any DLLs in output folders which share names with build products. The Windows loader reads DLLs from the first location it finds a file with a matching name, so we need to ensure that it doesn't load stale DLLs when output directories are changed (moving a module into a plugin, for example). Change 3073316 on 2016/08/02 by Ben.Marsh CoreUObject: Replace header guards with #pragma once directives. Change 3073325 on 2016/08/02 by Ben.Marsh CoreUObject: Manually untangle a few circular includes around ObjectBase.h and Class.h to allow making them into IWYU-style headers. Change 3074391 on 2016/08/02 by Ben.Marsh GitHub #2646: Always allow programs to build as part of non-game solution configurations. Change 3075123 on 2016/08/03 by Richard.Fawcett Ensure that zip files created outside of Ionic Zip can be unzipped with CommandUtils.UnzipFiles Zip files created with 7-zip, WinRAR, and Windows Explorer all contain entities for directories, not just the files in them. Code in CommandUtils.UnzipFiles made the assumption that all entities in the zip file were files, and an exception was being thrown on encountering a directory. Change 3075848 on 2016/08/03 by Ben.Marsh UBT: Fix a few cases where it's possible to construct a non-canonical DirectoryReference - root directories on Windows must always have a terminating slash, but any other directories must note. DirectoryInfo and Path.GetFullPath() do not enforce this requirement. Change 3075850 on 2016/08/03 by Ben.Marsh UBT: Fix UHT failures when running with -nopch. Change 3077058 by Ben.Marsh UHT: Remove the auto-generated ObjectBase.h include from generated header files. Was originally added to allow doxygen to parse headers more easily, but was switched to parsing the file only as part of parent files instead. [CL 3077308 by Ben Marsh in Main branch]
2016-08-04 10:41:07 -04:00
if(FullName.EndsWith("\\") || FullName.EndsWith("/"))
{
throw new ArgumentException("File names may not be terminated by a path separator character");
}
}
/// <summary>
/// Construct a FileReference from a FileInfo object.
/// </summary>
/// <param name="InInfo">Path to this file</param>
public FileReference(FileInfo InInfo)
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3075869) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3059740 on 2016/07/21 by Ben.Marsh Format license violations on separate lines rather than as a single multi-line string, so they can be parsed out correctly by the EC log parser. Change 3063115 on 2016/07/25 by Ben.Marsh Add missing projects to Mono AutomationTool solution. Change 3067125 on 2016/07/27 by Ben.Marsh Clean up and document the engine versioning system. * Version.h has a summary of all the different versioning concepts in UE4, as well as an explanation of what all the macros do. * VersionLocked.h has been removed. ENGINE_NET_VERSION and ENGINE_REPLAY_VERSION can be overriden directly in Version.h if necessary. * Added explicit macros for ENGINE_CURRENT_CL_VERSION And ENGINE_COMPATIBLE_CL_VERSION. The MODULE_API_VERSION macro is now defined to be the same as ENGINE_COMPATIBLE_CL_VERSION. * Build/Build.version now includes the compatible CL version, so it can be determined without having to parse header files inside MacToolChain.cs. * UpdateLocalVersion UAT command now exposes a -CompatibleCL=... argument to update ENGINE_COMPATIBLE_CL_VERSION and the CompatibleChange property in Build.version. * SetVersion BuildGraph task now has a CompatibleChange="" attribute to update ENGINE_COMPATIBLE_CL_VERSION and the CompatibleChange property in Build.version. * VersionFileUpdater now makes an effort to parse tokens matching the macros it's going to overwrite, rather than requiring exact matches in whitespace in Version.h. * Running UpdateLocalVersion now syncs files to revision 0 before writing if P4 is enabled, similarly to UGS, or fails if they are not writable. Change 3067242 on 2016/07/27 by Ben.Marsh Fix UGS showing a build failure/warning dialog immediately if you submit while the build is yellow/red. Now ignores builds before your last submitted CL. Change 3068116 on 2016/07/28 by Ben.Marsh Add a small Windows utility to terminate all running processes under a given root directory, and run it before and after every sync. Mean to fix instances where zombie editor processes do not terminate correctly and cause subsequent syncs to fail. Change 3068246 on 2016/07/28 by Ben.Marsh UGS: Improvements to 'Clean Workspace' dialog - empty folders are now set to be deleted by default, and added a context menu to select all/none/empty/default for a subtree, as well as to open Windows explorer at that location. Change 3068573 on 2016/07/28 by Ben.Marsh Attempt to fix AppDomain unload errors; suspect caused by delay to terminate child processes when managed exception is thrown on child threads. Now waits for the currently running threads to finish executing before quitting. Change 3068575 on 2016/07/28 by Ben.Marsh Respect the -noxge command-line argument when compiling UHT. Change 3068665 on 2016/07/28 by Ben.Marsh Delete any DLLs in output folders which share names with build products. The Windows loader reads DLLs from the first location it finds a file with a matching name, so we need to ensure that it doesn't load stale DLLs when output directories are changed (moving a module into a plugin, for example). Change 3073316 on 2016/08/02 by Ben.Marsh CoreUObject: Replace header guards with #pragma once directives. Change 3073325 on 2016/08/02 by Ben.Marsh CoreUObject: Manually untangle a few circular includes around ObjectBase.h and Class.h to allow making them into IWYU-style headers. Change 3074391 on 2016/08/02 by Ben.Marsh GitHub #2646: Always allow programs to build as part of non-game solution configurations. Change 3075123 on 2016/08/03 by Richard.Fawcett Ensure that zip files created outside of Ionic Zip can be unzipped with CommandUtils.UnzipFiles Zip files created with 7-zip, WinRAR, and Windows Explorer all contain entities for directories, not just the files in them. Code in CommandUtils.UnzipFiles made the assumption that all entities in the zip file were files, and an exception was being thrown on encountering a directory. Change 3075848 on 2016/08/03 by Ben.Marsh UBT: Fix a few cases where it's possible to construct a non-canonical DirectoryReference - root directories on Windows must always have a terminating slash, but any other directories must note. DirectoryInfo and Path.GetFullPath() do not enforce this requirement. Change 3075850 on 2016/08/03 by Ben.Marsh UBT: Fix UHT failures when running with -nopch. Change 3077058 by Ben.Marsh UHT: Remove the auto-generated ObjectBase.h include from generated header files. Was originally added to allow doxygen to parse headers more easily, but was switched to parsing the file only as part of parent files instead. [CL 3077308 by Ben Marsh in Main branch]
2016-08-04 10:41:07 -04:00
: base(InInfo.FullName)
{
}
/// <summary>
/// Default constructor.
/// </summary>
/// <param name="InPath">Path to this file</param>
protected FileReference(string InFullName, string InCanonicalName)
: base(InFullName, InCanonicalName)
{
}
/// <summary>
/// Gets the file name without path information
/// </summary>
/// <returns>A string containing the file name</returns>
public string GetFileName()
{
return Path.GetFileName(FullName);
}
/// <summary>
/// Gets the file name without path information or an extension
/// </summary>
/// <returns>A string containing the file name without an extension</returns>
public string GetFileNameWithoutExtension()
{
return Path.GetFileNameWithoutExtension(FullName);
}
/// <summary>
/// Gets the file name without path or any extensions
/// </summary>
/// <returns>A string containing the file name without an extension</returns>
public string GetFileNameWithoutAnyExtensions()
{
int StartIdx = FullName.LastIndexOf(Path.DirectorySeparatorChar) + 1;
int EndIdx = FullName.IndexOf('.', StartIdx);
if (EndIdx < StartIdx)
{
return FullName.Substring(StartIdx);
}
else
{
return FullName.Substring(StartIdx, EndIdx - StartIdx);
}
}
/// <summary>
/// Gets the extension for this filename
/// </summary>
/// <returns>A string containing the extension of this filename</returns>
public string GetExtension()
{
return Path.GetExtension(FullName);
}
/// <summary>
/// Change the file's extension to something else
/// </summary>
/// <param name="Extension">The new extension</param>
/// <returns>A FileReference with the same path and name, but with the new extension</returns>
public FileReference ChangeExtension(string Extension)
{
string NewFullName = Path.ChangeExtension(FullName, Extension);
return new FileReference(NewFullName, NewFullName.ToLowerInvariant());
}
/// <summary>
/// Gets the directory containing this file
/// </summary>
/// <returns>A new directory object representing the directory containing this object</returns>
public DirectoryReference Directory
{
get { return DirectoryReference.GetParentDirectory(this); }
}
/// <summary>
/// Determines whether the given filename exists
/// </summary>
/// <returns>True if it exists, false otherwise</returns>
public bool Exists()
{
return File.Exists(FullName);
}
/// <summary>
/// Deletes this file
/// </summary>
public void Delete()
{
File.Delete(FullName);
}
/// <summary>
/// Combine several fragments with a base directory, to form a new filename
/// </summary>
/// <param name="BaseDirectory">The base directory</param>
/// <param name="Fragments">Fragments to combine with the base directory</param>
/// <returns>The new file name</returns>
public static FileReference Combine(DirectoryReference BaseDirectory, params string[] Fragments)
{
string FullName = FileSystemReference.CombineStrings(BaseDirectory, Fragments);
return new FileReference(FullName, FullName.ToLowerInvariant());
}
/// <summary>
/// Append a string to the end of a filename
/// </summary>
/// <param name="A">The base file reference</param>
/// <param name="B">Suffix to be appended</param>
/// <returns>The new file reference</returns>
public static FileReference operator +(FileReference A, string B)
{
return new FileReference(A.FullName + B, A.CanonicalName + B.ToLowerInvariant());
}
/// <summary>
/// Compares two filesystem object names for equality. Uses the canonical name representation, not the display name representation.
/// </summary>
/// <param name="A">First object to compare.</param>
/// <param name="B">Second object to compare.</param>
/// <returns>True if the names represent the same object, false otherwise</returns>
public static bool operator ==(FileReference A, FileReference B)
{
if ((object)A == null)
{
return (object)B == null;
}
else
{
return (object)B != null && A.CanonicalName == B.CanonicalName;
}
}
/// <summary>
/// Compares two filesystem object names for inequality. Uses the canonical name representation, not the display name representation.
/// </summary>
/// <param name="A">First object to compare.</param>
/// <param name="B">Second object to compare.</param>
/// <returns>False if the names represent the same object, true otherwise</returns>
public static bool operator !=(FileReference A, FileReference B)
{
return !(A == B);
}
/// <summary>
/// Compares against another object for equality.
/// </summary>
Copying //UE4/Orion-Staging to //UE4/Main (Source: //Orion/Dev-General @ 2949393) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2949393 on 2016/04/20 by Graeme.Thornton Orion non-pak file security. - Removed security bypass code from platform pak file - Added a delegate to pak file code which allows the game to decide whether a file should be allowed or not - Added an orion delegate which whitelists appropriate files #rb robert.manuszewski #tests win64 client + dedicated server. golden path. Change 2949232 on 2016/04/19 by david.nikdel #ROBOMERGE-AUTHOR: michael.noland Paragon: Added a distinct menu frame rate limit, currently set to 60 fps and not visible in settings (if the user sets a game frame rate limit of below 60, we also clamp the menu limit to that threshold, so they can go down but not up for menus) #jira OR-18017 #rb marcus.wassmer #tests Ran paragon and switched between gameplay, menus, and replays, observing t.MaxFPS at different points #ROBOMERGE-SOURCE: CL 2949231 in //Orion/Main/... #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2949032 on 2016/04/19 by Zak.Middleton #orion - Lower default NetUpdateFrequency for minions (10->6). Avoid excessive latency for some knockback/knockup abilities that would have noticeable lag by forcing an update sooner when they are triggered. This should have the following effects: 1. Reduce server CPU cost (we tick minions at the net frequency). 2. Reduce server bandwidth 3. Reduce client CPU cost (we move character capsules and perform overlaps when new positions are received). #rb Bart.Bressler, John.Pollard #codereview Dmitry.Rekman #tests MultiPIE AI lane, Replays Change 2948966 on 2016/04/19 by Lina.Halper Added log (check) of the asset info for Anim Per Track contains invalid format key #rb: Michael.Noland #code review: Martin.Wilson, Laurent.Delayen, Michael.Noland #tests: editor/ cooked and test with AI_Tests with 10 bots. Change 2948876 on 2016/04/19 by Michael.Noland PS4: Validate that the texture pool size is not set to automatic (-1, which will crash later on as an attempt to allocate too much memory) #rb none #codereview marcus.wassmer #tests Ran Paragon on PS4 Change 2948765 on 2016/04/19 by Daniel.Lamb Removed AssetImportData tag from cooked asset registry builds. #rb Andrew.Grant #test Cook orion Change 2948691 on 2016/04/19 by Marcus.Wassmer Fix copytoresolvetarget ensure #rb none #test pc agora Change 2948633 on 2016/04/19 by david.nikdel #ROBOMERGE-AUTHOR: jason.bestimt [AUTOMERGE] Fix copytoresolve crash and change validation to ensure. #test PC editor / PC golden path #rb none -------- Integrated using branch //Orion/Main_to_//Orion/Release-Next (reversed) of change#2948169 by Marcus.Wassmer on 2016/04/19 10:50:32. #ROBOMERGE-SOURCE: CL 2948632 in //Orion/Main/... #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2948507 on 2016/04/19 by david.nikdel #ROBOMERGE-AUTHOR: andrew.grant Merging 2937781 (Pak signing) using //Orion/Dev-General_to_Release #rb none #tests cooked client, checked game runs #ROBOMERGE-SOURCE: CL 2948497 in //Orion/Release-0.24.1/... via CL 2948506 #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2948431 on 2016/04/19 by Steve.Robb CL#s 2919775 and 2942793 integrated to prevent annotation map performance problems on shutdown and asserts in PIE. #codereview robert.manuszewski,bob.tellez #rb bob.tellez #tests Ran editor Change 2948408 on 2016/04/19 by Leslie.Nivison Adding .tps #rb none #test none Change 2948185 on 2016/04/19 by david.nikdel #ROBOMERGE-AUTHOR: chris.bunner Fix for HLOD visibility freeze. #tests Golden Path, Editor #rb rolando.caloca, michael.noland #lockdown andrew.grant #jira OR-19863 #ROBOMERGE-SOURCE: CL 2948182 in //Orion/Release-0.24.1/... via CL 2948183 #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2948149 on 2016/04/19 by Simon.Tovey Fixed crash. Collision rendering path was not dealing with mesh batch with 0 triangles where other paths do. #rb none #tests No more crash #codereview Marcus.Wassmer Change 2948129 on 2016/04/19 by Lukasz.Furman fixed gameplay debugger getting stuck with outdated data pack on client, changed names of AI related debug cvars #rb none #tests game, PIE #codereview Mieszko.Zielinski Change 2948027 on 2016/04/19 by david.nikdel #ROBOMERGE-AUTHOR: graeme.thornton Fix for OR-20033 - CRASH: Client will crash with FRCPassPostProcessCircleDOFSetup #rb none #tests checked game runs without crashing #ROBOMERGE-SOURCE: CL 2948017 in //Orion/Main/... #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2947558 on 2016/04/18 by Matt.Kuhlenschmidt Fix compile error #rb none, #tests none Change 2947509 on 2016/04/18 by Matt.Kuhlenschmidt Added more logging to track down https://jira.ol.epicgames.net/browse/OR-19841 #rb none, #tests none Change 2947412 on 2016/04/18 by Ryan.Gerleve Fix shadowed variable. #rb none #tests none Change 2947377 on 2016/04/18 by Jamie.Dale Gather paths are now sorted by fuzzy-ness, so that more specific includes beat less specific excludes #rb Matt.Kuhlenschmidt #tests Built for Windows. Ran a gather, and confirmed that explicitly included heroes were now gathered, and that generically excluded heroes were absent from the gather. Change 2947351 on 2016/04/18 by Ryan.Gerleve Allow overriding the demo.AsyncLoadWorld setting with a URL option when playing a replay. Store the entire URL in the demo net driver instead of just the map name, so that the options can be accessed later. #tests golden path, replays #rb john.pollard Change 2947103 on 2016/04/18 by david.nikdel #ROBOMERGE-AUTHOR: jason.bestimt #ORION_MAIN - Merge 24.1 @ CL 2947071 #RB:none #Tests:none #ROBOMERGE-SOURCE: CL 2947102 in //Orion/Main/... #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2947007 on 2016/04/18 by Zak.Middleton #ue4 - Improve linear smoothing in the presence of low net frequency updates. #rb Bart.Bressler #tests MultiPIE AI with lanes Change 2946994 on 2016/04/18 by Mieszko.Zielinski Improvements to NavigationSystem's "abstract navigation data" support #UE4 #rb Lukasz.Furman #test golden path Change 2946760 on 2016/04/18 by Chris.Bunner Fixing up bad merge, recommit of CL 2819472 - ForceLOD now clamps to available LODs on primitive, i.e. use MinLOD rather than not drawing at all. #tests Editor #rb None Change 2946745 on 2016/04/18 by david.nikdel #ROBOMERGE-AUTHOR: jason.bestimt #ORION_MAIN - Merge 24.1 @ CL 2946637 #RB:none #Tests:none #ROBOMERGE-SOURCE: CL 2946656 in //Orion/Main/... #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2946645 on 2016/04/18 by Richard.Fawcett When promoting a buidl to staged, prevent enumeration of files already in S3 Enumerating files in S3 is a slow process, and it turns out that simply uploading all chunks blindly is more efficient than enumerating existing chunks and selectively uploading only the new ones. #rb Leigh.Swift #tests This technique has already been used in launcher promotions for several months Change 2946622 on 2016/04/18 by Richard.Fawcett By default, when enumerating chunks from a manifest file, skip checking they exist on disk at enumeration time. This will fail anyway further down the line if the files don't exist, but will improve speed of stage promotions by around five minutes. In practice, we have NEVER seen a job fail at this point because of the existence check. #rb Leigh.Swift #tests Ensure that output of ExtractDataFilenamesFromManifest method is identical both with and without bSkipExistsCheck specified. Change 2945812 on 2016/04/15 by Daniel.Lamb Fixed error in diff cooked build commandlet. #rb ben.marsh #test Compile. Change 2945110 on 2016/04/15 by Matt.Kuhlenschmidt Fix crash exporting actors with non-scene components to fbx #rb none, #tests full scene exporting on maps that crashed #codereview alexis.matte Change 2945078 on 2016/04/15 by Simon.Tovey Fix for OR-19778 When some pooled systems are reused, on init they have a non zero lod level but the emitter instances are created at LOD 0 initially. So the component did not think it had to update it's LOD but the emitters were not at the correct LOD. Have forced a LOD set on init when the component LOD is non-zero. #rb none #tests Works in editor and game. #codereview Olaf.Piesche Change 2944664 on 2016/04/14 by Uriel.Doyon Fix to SM4 compilation issue #jira OR-19706 #rb marcus.wassmer #tests tested editor in SM4 and SM5 Change 2944642 on 2016/04/14 by Lukasz.Furman changed waypoint switch conditions in meta nav paths #rb none #tests PIE #codereview Mieszko.Zielinski Change 2944599 on 2016/04/14 by david.nikdel #ROBOMERGE-AUTHOR: andrew.grant Added sha1 to UnrealPak list output #rb none #tests listed content of pakfile #ROBOMERGE-SOURCE: CL 2944595 in //Orion/Release-0.24/... via CL 2944597 via CL 2944598 #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2944441 on 2016/04/14 by Marcus.Wassmer Duplicate change to output shader compiler errors. #rb none #test run PC and see errors. Change 2944437 on 2016/04/14 by John.Pollard Possible fix for https://jira.ol.epicgames.net/browse/OR-19614 #rb JoshM #codereview Josh.Markiewicz #tests Golden path matchmaking Change 2944430 on 2016/04/14 by david.nikdel #ROBOMERGE-AUTHOR: michael.noland Engine: Added support for more/fewer settings in individual categories to the editor scalability control widget #rb david.ratti #tests Tested in the editor #ROBOMERGE-SOURCE: CL 2944428 in //Orion/Main/... #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2944198 on 2016/04/14 by David.Ratti Paragon - register for slow/stun/root/silence callbacks on any tag count change, not just add/remove. This is so the UI will update if you get another stack of a stackable slow GE. Ability system - unify client stack count change code path with server. Client now properly update owner ASC's tag map and broadcasts all delegates there. #rb dayY #tests pie Change 2944124 on 2016/04/14 by Wes.Hunt Change the TPS redirects for DX modules to point to the proper DX redist TPS which is what packaged games will need. #codereview:leslie.nivison #rb none #tests ran UAT ListThirdPartySoftware <for Orion> Change 2944107 on 2016/04/14 by Wes.Hunt MeshUtilities now depends on new module nvTessLib to better track the third party dependency. #codereview:daniel.wright #rb none #tests build OrionClient/Editor for Win64 Change 2944102 on 2016/04/14 by Wes.Hunt Tweak to UBT -ListBuildFolders to do a distinct in a better place to cut down on duplicate module searches. #tests ran the UBT command #rb none Change 2943851 on 2016/04/14 by Ryan.Gerleve Fix the ForEachNetDriver helper function to get the world context directly off the world instead of going through the game instance. Ensures the correct net drivers will be used when there are multiple worlds but only one game instance. #rb john.pollard #tests golden path, replays, PIE Change 2943847 on 2016/04/14 by Ryan.Gerleve Fixes to support client replay recording & playback in another world: When recording a replay, only swap actor roles if the remote role is ROLE_Authority When loading a replay checkpoint, call NetworkRemapPath to make sure paths have the correct name in the GuidCache #rb john.pollard #tests golden path, replays, PIE Change 2943691 on 2016/04/14 by david.nikdel #ROBOMERGE-AUTHOR: jason.bestimt #ORION_24 - Fix for OR-19609, OR-19610, and OR-19611 #RB:none #Tests:none #ROBOMERGE-SOURCE: CL 2943687 in //Orion/Release-0.24/... via CL 2943688 #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2943508 on 2016/04/14 by Richard.Fawcett Automation: Add support for multipart file uploads to Amazon S3 to increase speed of large file uploads. #jira OPPBUILD-44 #rb Leigh.Swift #tests Uploaded files to S3 using the new routines, downlaoded via AWS management console and ensured downloaded files identical to uploaded ones Change 2943274 on 2016/04/13 by jason.bestimt #ORION_MAIN - Merge 24 @ CL 2943257 #RB:none #Tests:none #ROBOMERGE-SOURCE: CL 2943271 in //Orion/Main/... #ROBOMERGE-BOT: ORION (Main -> Dev-General) #ROBOMERGE-SAYS: Beep boop! I couldn't merge this change. Please do it yourself, human. #CodeReview: david.nikdel, jason.bestimt Change 2943178 on 2016/04/13 by Olaf.Piesche Bumping size of the particle curve texture to 512x512 #rb martin.mittring #tests PC Editor, Game Change 2943174 on 2016/04/13 by Aaron.McLeran OR-19392 Ensure condition failed: (*RequiresInitialization == 0) on loading into PVP match - Removing ensure since there is a rare edge case where it's possible for a sound looping node may get ResetChildren called twice. - Condition is when a child random node o fa looping node has a blank entry and results in no sound chosen in a given frame (which results in ResetChildren getting called). Later in the frame, if a sound had previously been playing with an active sound, it will have stop called on it, which will call NotifyWaveInstanceFinished and hit the ensure. Simply using the branch to check if the looping node has been initialized will work fine in this and other cases. #codereview Bob.Tellez #rb Bob.Tellez #tests ran orion with this change testing problematic sound cue Change 2943042 on 2016/04/13 by Rob.Cannaday Fix crash in HTTP completion delegates on shutdown Stop ticking HTTP retry manager after FOnlineSubsystemImpl::Shutdown has been called #rb josh.markiewicz #tests shutting down multiple times Change 2942913 on 2016/04/13 by Lukasz.Furman added meta navmesh paths #orion #rb Mieszko.Zielinski #tests PIE Change 2942132 on 2016/04/13 by Wes.Hunt Enable UBT -ListBuildFolders to operate on Mac and iOS platforms without having to fully set up the remote environment. #codereview:leslie.nivison #rb peter.sauerbrei #tests running UBT with and without -listbuildfolders Change 2941651 on 2016/04/12 by Jason.Bestimt #ORION_DG - Merge MAIN @ CL 2941645 #RB:none #Tests:none Change 2941539 on 2016/04/12 by Laurent.Delayen FABRIK: Normalize outgoing rotations. Fixes Chains Q ability crashing. #rb none #tests Chains not crashing Change 2941469 on 2016/04/12 by Wes.Hunt Fix UBT -ListBuildFolders to not prep target for deployment. #codereview:leslie.nivison #rb none #tests tested -ListBuildFolders for Android Change 2941434 on 2016/04/12 by Leslie.Nivison Adding/cleaning up .tps files #rb none #test none Change 2941241 on 2016/04/12 by Daniel.Lamb Removed shadername from the shader code to fix deterministic material cooking issue. #jira UE-29320 #codereview Marcus.Wassmer #rb Marcus.Wassmer #test Running editor, cooking orion. Change 2941046 on 2016/04/12 by Laurent.Delayen Added safety net for non state AnimNotifies having a non-zero EndTriggerTimeOffset. Fixes Twinblast double shot for the left primary attack. #rb benn.gallagher #codereview lina.halper, ray.arnett, aaron.eady #tests twinblast's LMB Change 2941032 on 2016/04/12 by Jason.Bestimt #ORION_24 - Merge MAIN @ CL 2940950 #RB:none #Tests:none [CL 2952833 by Andrew Grant in Main branch]
2016-04-22 11:21:10 -04:00
/// <param name="Obj">other instance to compare.</param>
/// <returns>True if the names represent the same object, false otherwise</returns>
public override bool Equals(object Obj)
{
return (Obj is FileReference) && ((FileReference)Obj) == this;
}
Copying //UE4/Orion-Staging to //UE4/Main (Source: //Orion/Dev-General @ 2949393) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2949393 on 2016/04/20 by Graeme.Thornton Orion non-pak file security. - Removed security bypass code from platform pak file - Added a delegate to pak file code which allows the game to decide whether a file should be allowed or not - Added an orion delegate which whitelists appropriate files #rb robert.manuszewski #tests win64 client + dedicated server. golden path. Change 2949232 on 2016/04/19 by david.nikdel #ROBOMERGE-AUTHOR: michael.noland Paragon: Added a distinct menu frame rate limit, currently set to 60 fps and not visible in settings (if the user sets a game frame rate limit of below 60, we also clamp the menu limit to that threshold, so they can go down but not up for menus) #jira OR-18017 #rb marcus.wassmer #tests Ran paragon and switched between gameplay, menus, and replays, observing t.MaxFPS at different points #ROBOMERGE-SOURCE: CL 2949231 in //Orion/Main/... #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2949032 on 2016/04/19 by Zak.Middleton #orion - Lower default NetUpdateFrequency for minions (10->6). Avoid excessive latency for some knockback/knockup abilities that would have noticeable lag by forcing an update sooner when they are triggered. This should have the following effects: 1. Reduce server CPU cost (we tick minions at the net frequency). 2. Reduce server bandwidth 3. Reduce client CPU cost (we move character capsules and perform overlaps when new positions are received). #rb Bart.Bressler, John.Pollard #codereview Dmitry.Rekman #tests MultiPIE AI lane, Replays Change 2948966 on 2016/04/19 by Lina.Halper Added log (check) of the asset info for Anim Per Track contains invalid format key #rb: Michael.Noland #code review: Martin.Wilson, Laurent.Delayen, Michael.Noland #tests: editor/ cooked and test with AI_Tests with 10 bots. Change 2948876 on 2016/04/19 by Michael.Noland PS4: Validate that the texture pool size is not set to automatic (-1, which will crash later on as an attempt to allocate too much memory) #rb none #codereview marcus.wassmer #tests Ran Paragon on PS4 Change 2948765 on 2016/04/19 by Daniel.Lamb Removed AssetImportData tag from cooked asset registry builds. #rb Andrew.Grant #test Cook orion Change 2948691 on 2016/04/19 by Marcus.Wassmer Fix copytoresolvetarget ensure #rb none #test pc agora Change 2948633 on 2016/04/19 by david.nikdel #ROBOMERGE-AUTHOR: jason.bestimt [AUTOMERGE] Fix copytoresolve crash and change validation to ensure. #test PC editor / PC golden path #rb none -------- Integrated using branch //Orion/Main_to_//Orion/Release-Next (reversed) of change#2948169 by Marcus.Wassmer on 2016/04/19 10:50:32. #ROBOMERGE-SOURCE: CL 2948632 in //Orion/Main/... #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2948507 on 2016/04/19 by david.nikdel #ROBOMERGE-AUTHOR: andrew.grant Merging 2937781 (Pak signing) using //Orion/Dev-General_to_Release #rb none #tests cooked client, checked game runs #ROBOMERGE-SOURCE: CL 2948497 in //Orion/Release-0.24.1/... via CL 2948506 #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2948431 on 2016/04/19 by Steve.Robb CL#s 2919775 and 2942793 integrated to prevent annotation map performance problems on shutdown and asserts in PIE. #codereview robert.manuszewski,bob.tellez #rb bob.tellez #tests Ran editor Change 2948408 on 2016/04/19 by Leslie.Nivison Adding .tps #rb none #test none Change 2948185 on 2016/04/19 by david.nikdel #ROBOMERGE-AUTHOR: chris.bunner Fix for HLOD visibility freeze. #tests Golden Path, Editor #rb rolando.caloca, michael.noland #lockdown andrew.grant #jira OR-19863 #ROBOMERGE-SOURCE: CL 2948182 in //Orion/Release-0.24.1/... via CL 2948183 #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2948149 on 2016/04/19 by Simon.Tovey Fixed crash. Collision rendering path was not dealing with mesh batch with 0 triangles where other paths do. #rb none #tests No more crash #codereview Marcus.Wassmer Change 2948129 on 2016/04/19 by Lukasz.Furman fixed gameplay debugger getting stuck with outdated data pack on client, changed names of AI related debug cvars #rb none #tests game, PIE #codereview Mieszko.Zielinski Change 2948027 on 2016/04/19 by david.nikdel #ROBOMERGE-AUTHOR: graeme.thornton Fix for OR-20033 - CRASH: Client will crash with FRCPassPostProcessCircleDOFSetup #rb none #tests checked game runs without crashing #ROBOMERGE-SOURCE: CL 2948017 in //Orion/Main/... #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2947558 on 2016/04/18 by Matt.Kuhlenschmidt Fix compile error #rb none, #tests none Change 2947509 on 2016/04/18 by Matt.Kuhlenschmidt Added more logging to track down https://jira.ol.epicgames.net/browse/OR-19841 #rb none, #tests none Change 2947412 on 2016/04/18 by Ryan.Gerleve Fix shadowed variable. #rb none #tests none Change 2947377 on 2016/04/18 by Jamie.Dale Gather paths are now sorted by fuzzy-ness, so that more specific includes beat less specific excludes #rb Matt.Kuhlenschmidt #tests Built for Windows. Ran a gather, and confirmed that explicitly included heroes were now gathered, and that generically excluded heroes were absent from the gather. Change 2947351 on 2016/04/18 by Ryan.Gerleve Allow overriding the demo.AsyncLoadWorld setting with a URL option when playing a replay. Store the entire URL in the demo net driver instead of just the map name, so that the options can be accessed later. #tests golden path, replays #rb john.pollard Change 2947103 on 2016/04/18 by david.nikdel #ROBOMERGE-AUTHOR: jason.bestimt #ORION_MAIN - Merge 24.1 @ CL 2947071 #RB:none #Tests:none #ROBOMERGE-SOURCE: CL 2947102 in //Orion/Main/... #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2947007 on 2016/04/18 by Zak.Middleton #ue4 - Improve linear smoothing in the presence of low net frequency updates. #rb Bart.Bressler #tests MultiPIE AI with lanes Change 2946994 on 2016/04/18 by Mieszko.Zielinski Improvements to NavigationSystem's "abstract navigation data" support #UE4 #rb Lukasz.Furman #test golden path Change 2946760 on 2016/04/18 by Chris.Bunner Fixing up bad merge, recommit of CL 2819472 - ForceLOD now clamps to available LODs on primitive, i.e. use MinLOD rather than not drawing at all. #tests Editor #rb None Change 2946745 on 2016/04/18 by david.nikdel #ROBOMERGE-AUTHOR: jason.bestimt #ORION_MAIN - Merge 24.1 @ CL 2946637 #RB:none #Tests:none #ROBOMERGE-SOURCE: CL 2946656 in //Orion/Main/... #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2946645 on 2016/04/18 by Richard.Fawcett When promoting a buidl to staged, prevent enumeration of files already in S3 Enumerating files in S3 is a slow process, and it turns out that simply uploading all chunks blindly is more efficient than enumerating existing chunks and selectively uploading only the new ones. #rb Leigh.Swift #tests This technique has already been used in launcher promotions for several months Change 2946622 on 2016/04/18 by Richard.Fawcett By default, when enumerating chunks from a manifest file, skip checking they exist on disk at enumeration time. This will fail anyway further down the line if the files don't exist, but will improve speed of stage promotions by around five minutes. In practice, we have NEVER seen a job fail at this point because of the existence check. #rb Leigh.Swift #tests Ensure that output of ExtractDataFilenamesFromManifest method is identical both with and without bSkipExistsCheck specified. Change 2945812 on 2016/04/15 by Daniel.Lamb Fixed error in diff cooked build commandlet. #rb ben.marsh #test Compile. Change 2945110 on 2016/04/15 by Matt.Kuhlenschmidt Fix crash exporting actors with non-scene components to fbx #rb none, #tests full scene exporting on maps that crashed #codereview alexis.matte Change 2945078 on 2016/04/15 by Simon.Tovey Fix for OR-19778 When some pooled systems are reused, on init they have a non zero lod level but the emitter instances are created at LOD 0 initially. So the component did not think it had to update it's LOD but the emitters were not at the correct LOD. Have forced a LOD set on init when the component LOD is non-zero. #rb none #tests Works in editor and game. #codereview Olaf.Piesche Change 2944664 on 2016/04/14 by Uriel.Doyon Fix to SM4 compilation issue #jira OR-19706 #rb marcus.wassmer #tests tested editor in SM4 and SM5 Change 2944642 on 2016/04/14 by Lukasz.Furman changed waypoint switch conditions in meta nav paths #rb none #tests PIE #codereview Mieszko.Zielinski Change 2944599 on 2016/04/14 by david.nikdel #ROBOMERGE-AUTHOR: andrew.grant Added sha1 to UnrealPak list output #rb none #tests listed content of pakfile #ROBOMERGE-SOURCE: CL 2944595 in //Orion/Release-0.24/... via CL 2944597 via CL 2944598 #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2944441 on 2016/04/14 by Marcus.Wassmer Duplicate change to output shader compiler errors. #rb none #test run PC and see errors. Change 2944437 on 2016/04/14 by John.Pollard Possible fix for https://jira.ol.epicgames.net/browse/OR-19614 #rb JoshM #codereview Josh.Markiewicz #tests Golden path matchmaking Change 2944430 on 2016/04/14 by david.nikdel #ROBOMERGE-AUTHOR: michael.noland Engine: Added support for more/fewer settings in individual categories to the editor scalability control widget #rb david.ratti #tests Tested in the editor #ROBOMERGE-SOURCE: CL 2944428 in //Orion/Main/... #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2944198 on 2016/04/14 by David.Ratti Paragon - register for slow/stun/root/silence callbacks on any tag count change, not just add/remove. This is so the UI will update if you get another stack of a stackable slow GE. Ability system - unify client stack count change code path with server. Client now properly update owner ASC's tag map and broadcasts all delegates there. #rb dayY #tests pie Change 2944124 on 2016/04/14 by Wes.Hunt Change the TPS redirects for DX modules to point to the proper DX redist TPS which is what packaged games will need. #codereview:leslie.nivison #rb none #tests ran UAT ListThirdPartySoftware <for Orion> Change 2944107 on 2016/04/14 by Wes.Hunt MeshUtilities now depends on new module nvTessLib to better track the third party dependency. #codereview:daniel.wright #rb none #tests build OrionClient/Editor for Win64 Change 2944102 on 2016/04/14 by Wes.Hunt Tweak to UBT -ListBuildFolders to do a distinct in a better place to cut down on duplicate module searches. #tests ran the UBT command #rb none Change 2943851 on 2016/04/14 by Ryan.Gerleve Fix the ForEachNetDriver helper function to get the world context directly off the world instead of going through the game instance. Ensures the correct net drivers will be used when there are multiple worlds but only one game instance. #rb john.pollard #tests golden path, replays, PIE Change 2943847 on 2016/04/14 by Ryan.Gerleve Fixes to support client replay recording & playback in another world: When recording a replay, only swap actor roles if the remote role is ROLE_Authority When loading a replay checkpoint, call NetworkRemapPath to make sure paths have the correct name in the GuidCache #rb john.pollard #tests golden path, replays, PIE Change 2943691 on 2016/04/14 by david.nikdel #ROBOMERGE-AUTHOR: jason.bestimt #ORION_24 - Fix for OR-19609, OR-19610, and OR-19611 #RB:none #Tests:none #ROBOMERGE-SOURCE: CL 2943687 in //Orion/Release-0.24/... via CL 2943688 #ROBOMERGE-BOT: ORION (Main -> Dev-General) Change 2943508 on 2016/04/14 by Richard.Fawcett Automation: Add support for multipart file uploads to Amazon S3 to increase speed of large file uploads. #jira OPPBUILD-44 #rb Leigh.Swift #tests Uploaded files to S3 using the new routines, downlaoded via AWS management console and ensured downloaded files identical to uploaded ones Change 2943274 on 2016/04/13 by jason.bestimt #ORION_MAIN - Merge 24 @ CL 2943257 #RB:none #Tests:none #ROBOMERGE-SOURCE: CL 2943271 in //Orion/Main/... #ROBOMERGE-BOT: ORION (Main -> Dev-General) #ROBOMERGE-SAYS: Beep boop! I couldn't merge this change. Please do it yourself, human. #CodeReview: david.nikdel, jason.bestimt Change 2943178 on 2016/04/13 by Olaf.Piesche Bumping size of the particle curve texture to 512x512 #rb martin.mittring #tests PC Editor, Game Change 2943174 on 2016/04/13 by Aaron.McLeran OR-19392 Ensure condition failed: (*RequiresInitialization == 0) on loading into PVP match - Removing ensure since there is a rare edge case where it's possible for a sound looping node may get ResetChildren called twice. - Condition is when a child random node o fa looping node has a blank entry and results in no sound chosen in a given frame (which results in ResetChildren getting called). Later in the frame, if a sound had previously been playing with an active sound, it will have stop called on it, which will call NotifyWaveInstanceFinished and hit the ensure. Simply using the branch to check if the looping node has been initialized will work fine in this and other cases. #codereview Bob.Tellez #rb Bob.Tellez #tests ran orion with this change testing problematic sound cue Change 2943042 on 2016/04/13 by Rob.Cannaday Fix crash in HTTP completion delegates on shutdown Stop ticking HTTP retry manager after FOnlineSubsystemImpl::Shutdown has been called #rb josh.markiewicz #tests shutting down multiple times Change 2942913 on 2016/04/13 by Lukasz.Furman added meta navmesh paths #orion #rb Mieszko.Zielinski #tests PIE Change 2942132 on 2016/04/13 by Wes.Hunt Enable UBT -ListBuildFolders to operate on Mac and iOS platforms without having to fully set up the remote environment. #codereview:leslie.nivison #rb peter.sauerbrei #tests running UBT with and without -listbuildfolders Change 2941651 on 2016/04/12 by Jason.Bestimt #ORION_DG - Merge MAIN @ CL 2941645 #RB:none #Tests:none Change 2941539 on 2016/04/12 by Laurent.Delayen FABRIK: Normalize outgoing rotations. Fixes Chains Q ability crashing. #rb none #tests Chains not crashing Change 2941469 on 2016/04/12 by Wes.Hunt Fix UBT -ListBuildFolders to not prep target for deployment. #codereview:leslie.nivison #rb none #tests tested -ListBuildFolders for Android Change 2941434 on 2016/04/12 by Leslie.Nivison Adding/cleaning up .tps files #rb none #test none Change 2941241 on 2016/04/12 by Daniel.Lamb Removed shadername from the shader code to fix deterministic material cooking issue. #jira UE-29320 #codereview Marcus.Wassmer #rb Marcus.Wassmer #test Running editor, cooking orion. Change 2941046 on 2016/04/12 by Laurent.Delayen Added safety net for non state AnimNotifies having a non-zero EndTriggerTimeOffset. Fixes Twinblast double shot for the left primary attack. #rb benn.gallagher #codereview lina.halper, ray.arnett, aaron.eady #tests twinblast's LMB Change 2941032 on 2016/04/12 by Jason.Bestimt #ORION_24 - Merge MAIN @ CL 2940950 #RB:none #Tests:none [CL 2952833 by Andrew Grant in Main branch]
2016-04-22 11:21:10 -04:00
/// <summary>
/// Compares against another object for equality.
/// </summary>
/// <param name="Obj">other instance to compare.</param>
/// <returns>True if the names represent the same object, false otherwise</returns>
public bool Equals(FileReference Obj)
{
return Obj == this;
}
/// <summary>
/// Returns a hash code for this object
/// </summary>
/// <returns></returns>
public override int GetHashCode()
{
return CanonicalName.GetHashCode();
}
/// <summary>
/// Helper function to create a remote file reference. Unlike normal FileReference objects, these aren't converted to a full path in the local filesystem, but are
/// left as they are passed in.
/// </summary>
/// <param name="AbsolutePath">The absolute path in the remote file system</param>
/// <returns>New file reference</returns>
public static FileReference MakeRemote(string AbsolutePath)
{
return new FileReference(AbsolutePath, AbsolutePath.ToLowerInvariant());
}
/// <summary>
/// Helper function to create a file reference from a raw platform path. The path provided *MUST* be exactly the same as that returned by Path.GetFullPath().
/// </summary>
/// <param name="AbsolutePath">The absolute path in the file system</param>
/// <returns>New file reference</returns>
public static FileReference MakeFromNormalizedFullPath(string AbsolutePath)
{
return new FileReference(AbsolutePath, AbsolutePath.ToLowerInvariant());
}
}
static class FileReferenceExtensionMethods
{
/// <summary>
/// Manually serialize a file reference to a binary stream.
/// </summary>
/// <param name="Writer">Binary writer to write to</param>
public static void Write(this BinaryWriter Writer, FileReference File)
{
Writer.Write((File == null) ? String.Empty : File.FullName);
}
/// <summary>
/// Serializes a file reference, using a lookup table to avoid serializing the same name more than once.
/// </summary>
/// <param name="Writer">The writer to save this reference to</param>
/// <param name="File">A file reference to output; may be null</param>
/// <param name="FileToUniqueId">A lookup table that caches previous files that have been output, and maps them to unique id's.</param>
public static void Write(this BinaryWriter Writer, FileReference File, Dictionary<FileReference, int> FileToUniqueId)
{
int UniqueId;
if (File == null)
{
Writer.Write(-1);
}
else if (FileToUniqueId.TryGetValue(File, out UniqueId))
{
Writer.Write(UniqueId);
}
else
{
Writer.Write(FileToUniqueId.Count);
Writer.Write(File);
FileToUniqueId.Add(File, FileToUniqueId.Count);
}
}
/// <summary>
/// Manually deserialize a file reference from a binary stream.
/// </summary>
/// <param name="Reader">Binary reader to read from</param>
/// <returns>New FileReference object</returns>
public static FileReference ReadFileReference(this BinaryReader Reader)
{
string FullName = Reader.ReadString();
return (FullName.Length == 0) ? null : FileReference.MakeFromNormalizedFullPath(FullName);
}
/// <summary>
/// Deserializes a file reference, using a lookup table to avoid writing the same name more than once.
/// </summary>
/// <param name="Reader">The source to read from</param>
/// <param name="UniqueFiles">List of previously read file references. The index into this array is used in place of subsequent ocurrences of the file.</param>
/// <returns>The file reference that was read</returns>
public static FileReference ReadFileReference(this BinaryReader Reader, List<FileReference> UniqueFiles)
{
int UniqueId = Reader.ReadInt32();
if (UniqueId == -1)
{
return null;
}
else if (UniqueId < UniqueFiles.Count)
{
return UniqueFiles[UniqueId];
}
else
{
FileReference Result = Reader.ReadFileReference();
UniqueFiles.Add(Result);
return Result;
}
}
}
}