Files
.vs
Assets
Library
APIUpdater
Artifacts
Bee
BuildPlayerData
PackageCache
com.unity.collab-proxy@2.5.2
com.unity.editorcoroutines@1.0.0
com.unity.ext.nunit@1.0.6
com.unity.feature.development@1.0.1
com.unity.ide.rider@3.0.31
com.unity.ide.visualstudio@2.0.22
com.unity.ide.vscode@1.2.5
com.unity.modules.ai@1.0.0
com.unity.modules.androidjni@1.0.0
com.unity.modules.animation@1.0.0
com.unity.modules.assetbundle@1.0.0
com.unity.modules.audio@1.0.0
com.unity.modules.cloth@1.0.0
com.unity.modules.director@1.0.0
com.unity.modules.imageconversion@1.0.0
com.unity.modules.imgui@1.0.0
com.unity.modules.jsonserialize@1.0.0
com.unity.modules.particlesystem@1.0.0
com.unity.modules.physics2d@1.0.0
com.unity.modules.physics@1.0.0
com.unity.modules.screencapture@1.0.0
com.unity.modules.subsystems@1.0.0
com.unity.modules.terrain@1.0.0
com.unity.modules.terrainphysics@1.0.0
com.unity.modules.tilemap@1.0.0
com.unity.modules.ui@1.0.0
com.unity.modules.uielements@1.0.0
com.unity.modules.umbra@1.0.0
com.unity.modules.unityanalytics@1.0.0
com.unity.modules.unitywebrequest@1.0.0
com.unity.modules.unitywebrequestassetbundle@1.0.0
com.unity.modules.unitywebrequestaudio@1.0.0
com.unity.modules.unitywebrequesttexture@1.0.0
com.unity.modules.unitywebrequestwww@1.0.0
com.unity.modules.vehicles@1.0.0
com.unity.modules.video@1.0.0
com.unity.modules.vr@1.0.0
com.unity.modules.wind@1.0.0
com.unity.modules.xr@1.0.0
com.unity.performance.profile-analyzer@1.2.2
com.unity.settings-manager@2.0.1
com.unity.test-framework@1.1.33
com.unity.testtools.codecoverage@1.2.6
com.unity.textmeshpro@3.0.6
com.unity.timeline@1.7.6
DocCodeExamples
Documentation~
Editor
Runtime
Activation
Animation
AssetUpgrade
Attributes
Audio
Control
Evaluation
Events
Extensions
Playables
Properties
Scripting
Utilities
AnimationPreviewUtilities.cs
AnimationPreviewUtilities.cs.meta
AnimatorBindingCache.cs
AnimatorBindingCache.cs.meta
Extrapolation.cs
Extrapolation.cs.meta
FrameRate.cs
FrameRate.cs.meta
HashUtility.cs
HashUtility.cs.meta
IPropertyCollector.cs
IPropertyCollector.cs.meta
IPropertyPreview.cs
IPropertyPreview.cs.meta
NotificationUtilities.cs
NotificationUtilities.cs.meta
TimeUtility.cs
TimeUtility.cs.meta
TimelineClipExtensions.cs
TimelineClipExtensions.cs.meta
TimelineCreateUtilities.cs
TimelineCreateUtilities.cs.meta
TimelineUndo.cs
TimelineUndo.cs.meta
WeightUtility.cs
WeightUtility.cs.meta
Activation.meta
Animation.meta
AssetUpgrade.meta
Attributes.meta
Audio.meta
ClipCaps.cs
ClipCaps.cs.meta
Control.meta
DiscreteTime.cs
DiscreteTime.cs.meta
Evaluation.meta
Events.meta
Extensions.meta
GroupTrack.cs
GroupTrack.cs.meta
ILayerable.cs
ILayerable.cs.meta
Playables.meta
Properties.meta
Scripting.meta
Timeline.deprecated.cs
Timeline.deprecated.cs.meta
TimelineAsset.cs
TimelineAsset.cs.meta
TimelineAsset_CreateRemove.cs
TimelineAsset_CreateRemove.cs.meta
TimelineAttributes.cs
TimelineAttributes.cs.meta
TimelineClip.cs
TimelineClip.cs.meta
TimelinePlayable.cs
TimelinePlayable.cs.meta
TrackAsset.cs
TrackAsset.cs.meta
Unity.Timeline.asmdef
Unity.Timeline.asmdef.meta
Utilities.meta
Samples~
.signature
CHANGELOG.md
CHANGELOG.md.meta
DocCodeExamples.meta
Editor.meta
LICENSE.md
LICENSE.md.meta
README.md
README.md.meta
Runtime.meta
ValidationExceptions.json
ValidationExceptions.json.meta
package.json
package.json.meta
com.unity.ugui@1.0.0
com.unity.visualscripting@1.9.4
PackageManager
PlayModeViewStates
PlayerDataCache
ScriptAssemblies
Search
ShaderCache
SplashScreenCache
StateCache
UIElements
AnnotationManager
ArtifactDB
ArtifactDB-lock
BuildPlayer.prefs
BuildSettings.asset
EditorOnlyScriptingSettings.json
EditorOnlyVirtualTextureState.json
EditorSnapSettings.asset
EditorUserBuildSettings.asset
InspectorExpandedItems.asset
LastBuild.buildreport
LastSceneManagerSetup.txt
LibraryFormatVersion.txt
MonoManager.asset
SceneVisibilityState.asset
ScriptMapper
ShaderCache.db
SourceAssetDB
SourceAssetDB-lock
SpriteAtlasDatabase.asset
Style.catalog
expandedItems
ilpp.pid
Logs
Packages
ProjectSettings
UserSettings
obj
.vsconfig
Assembly-CSharp.Player.csproj
Assembly-CSharp.csproj
TM1.sln
Unity.CollabProxy.Editor.csproj
Unity.EditorCoroutines.Editor.csproj
Unity.Performance.Profile-Analyzer.Editor.csproj
Unity.PlasticSCM.Editor.csproj
Unity.Rider.Editor.csproj
Unity.Settings.Editor.csproj
Unity.TestTools.CodeCoverage.Editor.OpenCover.Model.csproj
Unity.TestTools.CodeCoverage.Editor.OpenCover.Mono.Reflection.csproj
Unity.TestTools.CodeCoverage.Editor.csproj
Unity.TextMeshPro.Editor.csproj
Unity.TextMeshPro.Player.csproj
Unity.TextMeshPro.csproj
Unity.Timeline.Editor.csproj
Unity.Timeline.Player.csproj
Unity.Timeline.csproj
Unity.VSCode.Editor.csproj
Unity.VisualScripting.Core.Editor.csproj
Unity.VisualScripting.Core.Player.csproj
Unity.VisualScripting.Core.csproj
Unity.VisualScripting.Flow.Editor.csproj
Unity.VisualScripting.Flow.Player.csproj
Unity.VisualScripting.Flow.csproj
Unity.VisualScripting.SettingsProvider.Editor.csproj
Unity.VisualScripting.Shared.Editor.csproj
Unity.VisualScripting.State.Editor.csproj
Unity.VisualScripting.State.Player.csproj
Unity.VisualScripting.State.csproj
Unity.VisualStudio.Editor.csproj
UnityEditor.TestRunner.csproj
UnityEditor.UI.csproj
UnityEngine.TestRunner.Player.csproj
UnityEngine.TestRunner.csproj
UnityEngine.UI.Player.csproj
UnityEngine.UI.csproj

52 lines
1.5 KiB
C#
Raw Normal View History

2025-01-17 13:10:20 +01:00
namespace UnityEngine.Timeline
{
static class HashUtility
{
// Note. We could have used "params int[] hashes" but we want to avoid allocating.
public static int CombineHash(this int h1, int h2)
{
return h1 ^ (int)(h2 + 0x9e3779b9 + (h1 << 6) + (h1 >> 2)); // Similar to c++ boost::hash_combine
}
public static int CombineHash(int h1, int h2, int h3)
{
return CombineHash(h1, h2).CombineHash(h3);
}
public static int CombineHash(int h1, int h2, int h3, int h4)
{
return CombineHash(h1, h2, h3).CombineHash(h4);
}
public static int CombineHash(int h1, int h2, int h3, int h4, int h5)
{
return CombineHash(h1, h2, h3, h4).CombineHash(h5);
}
public static int CombineHash(int h1, int h2, int h3, int h4, int h5, int h6)
{
return CombineHash(h1, h2, h3, h4, h5).CombineHash(h6);
}
public static int CombineHash(int h1, int h2, int h3, int h4, int h5, int h6, int h7)
{
return CombineHash(h1, h2, h3, h4, h5, h6).CombineHash(h7);
}
public static int CombineHash(int[] hashes)
{
if (hashes == null || hashes.Length == 0)
return 0;
var h = hashes[0];
for (int i = 1; i < hashes.Length; ++i)
{
h = CombineHash(h, hashes[i]);
}
return h;
}
}
}