using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Security; using System.Security.Permissions; using System.Threading; using UnityEngine; using UnityEngine.Bindings; using UnityEngine.Scripting; [assembly: InternalsVisibleTo("UnityEngine.StreamingModule")] [assembly: InternalsVisibleTo("UnityEngine.Analytics")] [assembly: InternalsVisibleTo("UnityEngine.UnityAnalyticsCommon")] [assembly: InternalsVisibleTo("UnityEngine.Advertisements")] [assembly: InternalsVisibleTo("UnityEngine.Purchasing")] [assembly: InternalsVisibleTo("UnityEngine.TestRunner")] [assembly: InternalsVisibleTo("Unity.Automation")] [assembly: InternalsVisibleTo("Unity.Burst")] [assembly: InternalsVisibleTo("Unity.Burst.Editor")] [assembly: InternalsVisibleTo("Unity.DeploymentTests.Services")] [assembly: InternalsVisibleTo("Unity.IntegrationTests")] [assembly: InternalsVisibleTo("Unity.IntegrationTests.ExternalVersionControl")] [assembly: InternalsVisibleTo("Unity.Analytics")] [assembly: InternalsVisibleTo("Unity.IntegrationTests.UnityAnalytics")] [assembly: InternalsVisibleTo("Unity.IntegrationTests.Framework")] [assembly: InternalsVisibleTo("Unity.RuntimeTests")] [assembly: InternalsVisibleTo("Unity.RuntimeTests.Framework")] [assembly: InternalsVisibleTo("Unity.RuntimeTests.Framework.Tests")] [assembly: InternalsVisibleTo("Unity.PerformanceTests.RuntimeTestRunner.Tests")] [assembly: InternalsVisibleTo("Unity.RuntimeTests.AllIn1Runner")] [assembly: InternalsVisibleTo("Unity.Timeline")] [assembly: InternalsVisibleTo("Assembly-CSharp-testable")] [assembly: InternalsVisibleTo("Assembly-CSharp-firstpass-testable")] [assembly: InternalsVisibleTo("UnityEngine.SpatialTracking")] [assembly: InternalsVisibleTo("GoogleAR.UnityNative")] [assembly: InternalsVisibleTo("Unity.IntegrationTests.Timeline")] [assembly: InternalsVisibleTo("Unity.WindowsMRAutomation")] [assembly: InternalsVisibleTo("UnityEngine.Cloud.Service")] [assembly: InternalsVisibleTo("UnityEngine.Networking")] [assembly: InternalsVisibleTo("UnityEngine.TerrainModule")] [assembly: InternalsVisibleTo("UnityEngine.TerrainPhysicsModule")] [assembly: InternalsVisibleTo("UnityEngine.UIModule")] [assembly: InternalsVisibleTo("UnityEngine.UIElementsModule")] [assembly: InternalsVisibleTo("UnityEngine.UmbraModule")] [assembly: InternalsVisibleTo("UnityEngine.UnityCurlModule")] [assembly: InternalsVisibleTo("UnityEngine.UnityTestProtocolModule")] [assembly: InternalsVisibleTo("UnityEngine.UnityWebRequestAssetBundleModule")] [assembly: InternalsVisibleTo("UnityEngine.UnityWebRequestAudioModule")] [assembly: InternalsVisibleTo("UnityEngine.UnityWebRequestTextureModule")] [assembly: InternalsVisibleTo("UnityEngine.UnityWebRequestWWWModule")] [assembly: InternalsVisibleTo("UnityEngine.Cloud")] [assembly: InternalsVisibleTo("UnityEngine.VFXModule")] [assembly: InternalsVisibleTo("UnityEngine.VRModule")] [assembly: InternalsVisibleTo("UnityEngine.VehiclesModule")] [assembly: InternalsVisibleTo("UnityEngine.VideoModule")] [assembly: InternalsVisibleTo("UnityEngine.VirtualTexturingModule")] [assembly: InternalsVisibleTo("UnityEngine.WindModule")] [assembly: InternalsVisibleTo("UnityEngine.SwitchModule")] [assembly: InternalsVisibleTo("UnityEngine.PS4Module")] [assembly: InternalsVisibleTo("UnityEngine.PS4VRModule")] [assembly: InternalsVisibleTo("UnityEngine.PS5Module")] [assembly: InternalsVisibleTo("UnityEngine.PS5VRModule")] [assembly: UnityEngineModuleAssembly] [assembly: InternalsVisibleTo("UnityEngine.XRModule")] [assembly: InternalsVisibleTo("Unity.RenderPipelines.Universal.2D.Runtime")] [assembly: InternalsVisibleTo("Unity.2D.Sprite.Editor")] [assembly: InternalsVisibleTo("Unity.2D.Sprite.EditorTests")] [assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.009")] [assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.010")] [assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.011")] [assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.012")] [assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.013")] [assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.014")] [assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.015")] [assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.016")] [assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.017")] [assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.018")] [assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.019")] [assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.008")] [assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.020")] [assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.022")] [assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.023")] [assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.024")] [assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridgeDev.001")] [assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridgeDev.002")] [assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridgeDev.003")] [assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridgeDev.004")] [assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridgeDev.005")] [assembly: InternalsVisibleTo("Unity.Subsystem.Registration")] [assembly: InternalsVisibleTo("Unity.Animation.Timeline")] [assembly: InternalsVisibleTo("Unity.Motion.Hybrid")] [assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.021")] [assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.007")] [assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.006")] [assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.005")] [assembly: InternalsVisibleTo("Unity.UI.Builder.Editor")] [assembly: InternalsVisibleTo("UnityEditor.UIBuilderModule")] [assembly: InternalsVisibleTo("Unity.UI.Builder.EditorTests")] [assembly: InternalsVisibleTo("Unity.UIElements")] [assembly: InternalsVisibleTo("UnityEngine.UIElementsGameObjectsModule")] [assembly: InternalsVisibleTo("Unity.UIElements.Editor")] [assembly: InternalsVisibleTo("Unity.UIElements.PlayModeTests")] [assembly: InternalsVisibleTo("UnityEngine.UIElements.Tests")] [assembly: InternalsVisibleTo("Unity.UIElements.EditorTests")] [assembly: InternalsVisibleTo("Unity.UIElements.RuntimeTests")] [assembly: InternalsVisibleTo("UnityEngine.UI")] [assembly: InternalsVisibleTo("Unity.Networking.Transport")] [assembly: InternalsVisibleTo("Unity.ucg.QoS")] [assembly: InternalsVisibleTo("Unity.Services.QoS")] [assembly: InternalsVisibleTo("Unity.Logging")] [assembly: InternalsVisibleTo("Unity.Entities")] [assembly: InternalsVisibleTo("Unity.Entities.Tests")] [assembly: InternalsVisibleTo("Unity.Collections")] [assembly: InternalsVisibleTo("Unity.Runtime")] [assembly: InternalsVisibleTo("Unity.Core")] [assembly: InternalsVisibleTo("UnityEngine.Core.Runtime.Tests")] [assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.001")] [assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.002")] [assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.003")] [assembly: InternalsVisibleTo("Unity.InternalAPIEngineBridge.004")] [assembly: InternalsVisibleTo("UnityEngine.SubsystemsModule")] [assembly: InternalsVisibleTo("UnityEngine.SubstanceModule")] [assembly: InternalsVisibleTo("UnityEngine.SpriteMaskModule")] [assembly: InternalsVisibleTo("UnityEngine.UnityAnalyticsModule")] [assembly: InternalsVisibleTo("UnityEngine.UnityWebRequestModule")] [assembly: InternalsVisibleTo("UnityEngine.TLSModule")] [assembly: InternalsVisibleTo("UnityEngine.UnityAnalyticsCommonModule")] [assembly: InternalsVisibleTo("UnityEngine.UnityConnectModule")] [assembly: InternalsVisibleTo("UnityEngine.ContentLoadModule")] [assembly: InternalsVisibleTo("UnityEngine.CommandStateObserverModule")] [assembly: InternalsVisibleTo("UnityEngine.ClusterRendererModule")] [assembly: InternalsVisibleTo("UnityEngine.ClusterInputModule")] [assembly: InternalsVisibleTo("UnityEngine.ClothModule")] [assembly: InternalsVisibleTo("UnityEngine.AudioModule")] [assembly: InternalsVisibleTo("UnityEngine.AssetBundleModule")] [assembly: InternalsVisibleTo("Unity.Motion.Timeline")] [assembly: InternalsVisibleTo("UnityEngine.HotReloadModule")] [assembly: InternalsVisibleTo("UnityEngine.AndroidJNIModule")] [assembly: InternalsVisibleTo("UnityEngine.AccessibilityModule")] [assembly: InternalsVisibleTo("UnityEngine.ARModule")] [assembly: InternalsVisibleTo("UnityEngine.InputModule")] [assembly: InternalsVisibleTo("UnityEngine.JSONSerializeModule")] [assembly: InternalsVisibleTo("UnityEngine.PhysicsModule")] [assembly: InternalsVisibleTo("UnityEngine.AIModule")] [assembly: InternalsVisibleTo("UnityEngine.CoreModule")] [assembly: InternalsVisibleTo("UnityEngine.SharedInternalsModule")] [assembly: InternalsVisibleTo("UnityEngine")] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: InternalsVisibleTo("UnityEngine.AnimationModule")] [assembly: InternalsVisibleTo("UnityEngine.CrashReportingModule")] [assembly: InternalsVisibleTo("UnityEngine.DSPGraphModule")] [assembly: InternalsVisibleTo("UnityEngine.DirectorModule")] [assembly: InternalsVisibleTo("UnityEngine.TilemapModule")] [assembly: InternalsVisibleTo("UnityEngine.SpriteShapeModule")] [assembly: InternalsVisibleTo("UnityEngine.ScreenCaptureModule")] [assembly: InternalsVisibleTo("UnityEngine.RuntimeInitializeOnLoadManagerInitializerModule")] [assembly: InternalsVisibleTo("UnityEngine.PropertiesModule")] [assembly: InternalsVisibleTo("UnityEngine.ProfilerModule")] [assembly: InternalsVisibleTo("UnityEngine.Physics2DModule")] [assembly: InternalsVisibleTo("UnityEngine.PerformanceReportingModule")] [assembly: InternalsVisibleTo("UnityEngine.ParticleSystemModule")] [assembly: InternalsVisibleTo("UnityEngine.NVIDIAModule")] [assembly: InternalsVisibleTo("UnityEngine.MultiplayerModule")] [assembly: InternalsVisibleTo("UnityEngine.MarshallingModule")] [assembly: InternalsVisibleTo("UnityEngine.LocalizationModule")] [assembly: InternalsVisibleTo("UnityEngine.InputForUIModule")] [assembly: InternalsVisibleTo("UnityEngine.IMGUIModule")] [assembly: InternalsVisibleTo("UnityEngine.TextCoreTextEngineModule")] [assembly: InternalsVisibleTo("UnityEngine.TextCoreFontEngineModule")] [assembly: InternalsVisibleTo("UnityEngine.InputLegacyModule")] [assembly: InternalsVisibleTo("UnityEngine.TextRenderingModule")] [assembly: InternalsVisibleTo("UnityEngine.HierarchyCoreModule")] [assembly: InternalsVisibleTo("UnityEngine.GridModule")] [assembly: InternalsVisibleTo("UnityEngine.GraphToolsFoundationModule")] [assembly: InternalsVisibleTo("UnityEngine.GameCenterModule")] [assembly: InternalsVisibleTo("UnityEngine.ImageConversionModule")] [assembly: InternalsVisibleTo("UnityEngine.GIModule")] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: CompilationRelaxations(8)] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("0.0.0.0")] [module: UnverifiableCode] namespace UnityEngine.Playables; [NativeHeader("Modules/Director/ScriptBindings/DataPlayable.bindings.h")] [NativeHeader("Runtime/Director/Core/HPlayableOutput.h")] [StaticAccessor(/*Could not decode attribute arguments.*/)] [NativeHeader("Runtime/Director/Core/HPlayableGraph.h")] internal static class DataPlayableBindings { [NativeThrows] public static bool CreateHandleInternal(PlayableGraph graph, ref PlayableHandle handle) { return CreateHandleInternal_Injected(ref graph, ref handle); } [MethodImpl(MethodImplOptions.InternalCall)] private static extern bool CreateHandleInternal_Injected([In] ref PlayableGraph graph, ref PlayableHandle handle); } internal struct DataPlayable : IPlayable, IEquatable> where TPayload : struct { private PlayableHandle m_Handle; private static readonly DataPlayable m_NullPlayable = new DataPlayable(PlayableHandle.Null); public static DataPlayable Null => m_NullPlayable; public static DataPlayable Create(PlayableGraph graph, int inputCount = 0) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) return Create(graph, default(TPayload), inputCount); } public static DataPlayable Create(PlayableGraph graph, TPayload payload, int inputCount = 0) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0004: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) PlayableHandle handle = CreateHandle(graph, payload, inputCount); return new DataPlayable(handle); } private static PlayableHandle CreateHandle(PlayableGraph graph, TPayload payload, int inputCount) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) PlayableHandle handle = PlayableHandle.Null; if (!DataPlayableBindings.CreateHandleInternal(graph, ref handle)) { return PlayableHandle.Null; } ((PlayableHandle)(ref handle)).SetInputCount(inputCount); ((PlayableHandle)(ref handle)).SetScriptInstance((object)payload); return handle; } internal DataPlayable(PlayableHandle handle) { //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) if (((PlayableHandle)(ref handle)).IsValid() && typeof(TPayload) != ((PlayableHandle)(ref handle)).GetPlayableType()) { throw new InvalidCastException($"Incompatible handle: Trying to assign a playable data of type `{((PlayableHandle)(ref handle)).GetPlayableType()}` that is not compatible with the Payload of type `{typeof(TPayload)}`."); } m_Handle = handle; } public PlayableHandle GetHandle() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) return m_Handle; } public TPayload GetPayload() { return ((PlayableHandle)(ref m_Handle)).GetPayload(); } public void SetPayload(TPayload payload) { ((PlayableHandle)(ref m_Handle)).SetPayload(payload); } public static implicit operator Playable(DataPlayable playable) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) return new Playable(playable.GetHandle()); } public static explicit operator DataPlayable(Playable playable) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) return new DataPlayable(((Playable)(ref playable)).GetHandle()); } public bool Equals(DataPlayable other) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) return GetHandle() == other.GetHandle(); } } internal static class DataPlayableBinding { public static PlayableBinding Create(string name, Object key) where TDataStream : new() where TPlayer : Object { //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Expected O, but got Unknown //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) return PlayableBinding.CreateInternal(name, key, typeof(TPlayer), new CreateOutputMethod(CreateDataOutput)); } private static PlayableOutput CreateDataOutput(PlayableGraph graph, string name) where TDataStream : new() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) return DataPlayableOutput.Create(graph, name); } } [NativeHeader("Runtime/Director/Core/HPlayableOutput.h")] [RequiredByNativeCode] [StaticAccessor(/*Could not decode attribute arguments.*/)] [NativeHeader("Modules/Director/ScriptBindings/DataPlayableOutput.bindings.h")] [NativeHeader("Modules/Director/ScriptBindings/DataPlayableOutputExtensions.bindings.h")] [NativeHeader("Modules/Director/DataPlayableOutput.h")] [NativeHeader("Runtime/Director/Core/HPlayableGraph.h")] internal struct DataPlayableOutput : IPlayableOutput { private PlayableOutputHandle m_Handle; public static DataPlayableOutput Null => new DataPlayableOutput(PlayableOutputHandle.Null); public Type GetStreamType() { return InternalGetType(ref m_Handle); } public bool GetConnectionChanged() { return InternalGetConnectionChanged(ref m_Handle); } public void ClearConnectionChanged() { InternalClearConnectionChanged(ref m_Handle); } public TDataStream GetDataStream() where TDataStream : new() { if (!(InternalGetStream(ref m_Handle) is TDataStream result)) { return default(TDataStream); } return result; } public void SetDataStream(TDataStream stream) where TDataStream : new() { Type streamType = GetStreamType(); if (!streamType.IsAssignableFrom(typeof(TDataStream))) { throw new ArgumentException(string.Format("{0} is of the wrong type. This output only accepts streams with type {1} or inheriting from type {2}", "stream", streamType, streamType), "stream"); } InternalSetStream(ref m_Handle, stream); } public static DataPlayableOutput Create(PlayableGraph graph, string name) where TDataStream : new() { //IL_0026: Unknown result type (might be due to invalid IL or missing references) if (!DataPlayableOutputExtensions.InternalCreateDataOutput(ref graph, name, typeof(TDataStream), out var handle)) { return Null; } return new DataPlayableOutput(handle); } internal DataPlayableOutput(PlayableOutputHandle handle) { //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) if (((PlayableOutputHandle)(ref handle)).IsValid() && !((PlayableOutputHandle)(ref handle)).IsPlayableOutputOfType()) { throw new InvalidCastException("Can't set handle: the playable is not a DataPlayableOutput."); } m_Handle = handle; } public PlayableOutputHandle GetHandle() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) return m_Handle; } public static implicit operator PlayableOutput(DataPlayableOutput output) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) return new PlayableOutput(output.GetHandle()); } public static explicit operator DataPlayableOutput(PlayableOutput output) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) return new DataPlayableOutput(((PlayableOutput)(ref output)).GetHandle()); } public IDataPlayer GetPlayer() { return InternalGetPlayer(ref m_Handle) as IDataPlayer; } public void SetPlayer(TPlayer player) where TPlayer : Object, IDataPlayer { InternalSetPlayer(ref m_Handle, (Object)(object)player); } [NativeThrows] private static Object InternalGetPlayer(ref PlayableOutputHandle handle) { return Unmarshal.UnmarshalUnityObject(InternalGetPlayer_Injected(ref handle)); } [NativeThrows] private static void InternalSetPlayer(ref PlayableOutputHandle handle, Object player) { InternalSetPlayer_Injected(ref handle, MarshalledUnityObject.Marshal(player)); } [MethodImpl(MethodImplOptions.InternalCall)] [NativeThrows] private static extern Type InternalGetType(ref PlayableOutputHandle handle); [MethodImpl(MethodImplOptions.InternalCall)] [NativeThrows] private static extern void InternalSetStream(ref PlayableOutputHandle handle, object stream); [MethodImpl(MethodImplOptions.InternalCall)] [NativeThrows] private static extern object InternalGetStream(ref PlayableOutputHandle handle); [MethodImpl(MethodImplOptions.InternalCall)] [NativeThrows] private static extern bool InternalGetConnectionChanged(ref PlayableOutputHandle handle); [MethodImpl(MethodImplOptions.InternalCall)] [NativeThrows] private static extern void InternalClearConnectionChanged(ref PlayableOutputHandle handle); [RequiredByNativeCode] private static void Internal_CallOnPlayerChanged(PlayableOutputHandle handle, object previousPlayer, object currentPlayer) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) DataPlayableOutput output = new DataPlayableOutput(handle); if (previousPlayer is IDataPlayer dataPlayer) { dataPlayer.Release(output); } if (currentPlayer is IDataPlayer dataPlayer2) { dataPlayer2.Bind(output); } } [MethodImpl(MethodImplOptions.InternalCall)] private static extern IntPtr InternalGetPlayer_Injected(ref PlayableOutputHandle handle); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void InternalSetPlayer_Injected(ref PlayableOutputHandle handle, IntPtr player); } [NativeHeader("Modules/Director/ScriptBindings/DataPlayableOutputExtensions.bindings.h")] [NativeHeader("Runtime/Director/Core/HPlayableOutput.h")] [StaticAccessor(/*Could not decode attribute arguments.*/)] internal static class DataPlayableOutputExtensions { [NativeThrows] internal unsafe static bool InternalCreateDataOutput(ref PlayableGraph graph, string name, Type type, out PlayableOutputHandle handle) { //The blocks IL_002a are reachable both inside and outside the pinned region starting at IL_0019. ILSpy has duplicated these blocks in order to place them both within and outside the `fixed` statement. try { ManagedSpanWrapper name2 = default(ManagedSpanWrapper); if (!StringMarshaller.TryMarshalEmptyOrNullString(name, ref name2)) { ReadOnlySpan readOnlySpan = name.AsSpan(); fixed (char* ptr = readOnlySpan) { ((ManagedSpanWrapper)(ref name2))..ctor((void*)ptr, readOnlySpan.Length); return InternalCreateDataOutput_Injected(ref graph, ref name2, type, out handle); } } return InternalCreateDataOutput_Injected(ref graph, ref name2, type, out handle); } finally { } } [MethodImpl(MethodImplOptions.InternalCall)] private static extern bool InternalCreateDataOutput_Injected(ref PlayableGraph graph, ref ManagedSpanWrapper name, Type type, out PlayableOutputHandle handle); } internal interface IDataPlayer { void Bind(DataPlayableOutput output); void Release(DataPlayableOutput output); } [NativeHeader("Modules/Director/PlayableDirector.h")] [NativeHeader("Runtime/Mono/MonoBehaviour.h")] [RequiredByNativeCode] public class PlayableDirector : Behaviour, IExposedPropertyTable { public PlayState state => GetPlayState(); public DirectorWrapMode extrapolationMode { get { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) return GetWrapMode(); } set { //IL_0002: Unknown result type (might be due to invalid IL or missing references) SetWrapMode(value); } } public PlayableAsset playableAsset { get { ScriptableObject obj = Internal_GetPlayableAsset(); return (PlayableAsset)(object)((obj is PlayableAsset) ? obj : null); } set { SetPlayableAsset((ScriptableObject)(object)value); } } public PlayableGraph playableGraph => GetGraphHandle(); public bool playOnAwake { get { return GetPlayOnAwake(); } set { SetPlayOnAwake(value); } } public DirectorUpdateMode timeUpdateMode { get { //IL_0010: Unknown result type (might be due to invalid IL or missing references) IntPtr intPtr = MarshalledUnityObject.MarshalNotNull(this); if (intPtr == (IntPtr)0) { ThrowHelper.ThrowNullReferenceException((object)this); } return get_timeUpdateMode_Injected(intPtr); } set { //IL_0010: Unknown result type (might be due to invalid IL or missing references) IntPtr intPtr = MarshalledUnityObject.MarshalNotNull(this); if (intPtr == (IntPtr)0) { ThrowHelper.ThrowNullReferenceException((object)this); } set_timeUpdateMode_Injected(intPtr, value); } } public double time { get { IntPtr intPtr = MarshalledUnityObject.MarshalNotNull(this); if (intPtr == (IntPtr)0) { ThrowHelper.ThrowNullReferenceException((object)this); } return get_time_Injected(intPtr); } set { IntPtr intPtr = MarshalledUnityObject.MarshalNotNull(this); if (intPtr == (IntPtr)0) { ThrowHelper.ThrowNullReferenceException((object)this); } set_time_Injected(intPtr, value); } } public double initialTime { get { IntPtr intPtr = MarshalledUnityObject.MarshalNotNull(this); if (intPtr == (IntPtr)0) { ThrowHelper.ThrowNullReferenceException((object)this); } return get_initialTime_Injected(intPtr); } set { IntPtr intPtr = MarshalledUnityObject.MarshalNotNull(this); if (intPtr == (IntPtr)0) { ThrowHelper.ThrowNullReferenceException((object)this); } set_initialTime_Injected(intPtr, value); } } public double duration { get { IntPtr intPtr = MarshalledUnityObject.MarshalNotNull(this); if (intPtr == (IntPtr)0) { ThrowHelper.ThrowNullReferenceException((object)this); } return get_duration_Injected(intPtr); } } public event Action played; public event Action paused; public event Action stopped; public void DeferredEvaluate() { EvaluateNextFrame(); } internal void Play(FrameRate frameRate) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) PlayOnFrame(frameRate); } public void Play(PlayableAsset asset) { //IL_001a: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)asset == (Object)null) { throw new ArgumentNullException("asset"); } Play(asset, extrapolationMode); } public void Play(PlayableAsset asset, DirectorWrapMode mode) { //IL_0020: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)asset == (Object)null) { throw new ArgumentNullException("asset"); } playableAsset = asset; extrapolationMode = mode; Play(); } public void SetGenericBinding(Object key, Object value) { Internal_SetGenericBinding(key, value); } [NativeThrows] public void Evaluate() { IntPtr intPtr = MarshalledUnityObject.MarshalNotNull(this); if (intPtr == (IntPtr)0) { ThrowHelper.ThrowNullReferenceException((object)this); } Evaluate_Injected(intPtr); } [NativeThrows] private void PlayOnFrame(FrameRate frameRate) { IntPtr intPtr = MarshalledUnityObject.MarshalNotNull(this); if (intPtr == (IntPtr)0) { ThrowHelper.ThrowNullReferenceException((object)this); } PlayOnFrame_Injected(intPtr, ref frameRate); } [NativeThrows] public void Play() { IntPtr intPtr = MarshalledUnityObject.MarshalNotNull(this); if (intPtr == (IntPtr)0) { ThrowHelper.ThrowNullReferenceException((object)this); } Play_Injected(intPtr); } public void Stop() { IntPtr intPtr = MarshalledUnityObject.MarshalNotNull(this); if (intPtr == (IntPtr)0) { ThrowHelper.ThrowNullReferenceException((object)this); } Stop_Injected(intPtr); } public void Pause() { IntPtr intPtr = MarshalledUnityObject.MarshalNotNull(this); if (intPtr == (IntPtr)0) { ThrowHelper.ThrowNullReferenceException((object)this); } Pause_Injected(intPtr); } public void Resume() { IntPtr intPtr = MarshalledUnityObject.MarshalNotNull(this); if (intPtr == (IntPtr)0) { ThrowHelper.ThrowNullReferenceException((object)this); } Resume_Injected(intPtr); } [NativeThrows] public void RebuildGraph() { IntPtr intPtr = MarshalledUnityObject.MarshalNotNull(this); if (intPtr == (IntPtr)0) { ThrowHelper.ThrowNullReferenceException((object)this); } RebuildGraph_Injected(intPtr); } public void ClearReferenceValue(PropertyName id) { IntPtr intPtr = MarshalledUnityObject.MarshalNotNull(this); if (intPtr == (IntPtr)0) { ThrowHelper.ThrowNullReferenceException((object)this); } ClearReferenceValue_Injected(intPtr, ref id); } public void SetReferenceValue(PropertyName id, Object value) { IntPtr intPtr = MarshalledUnityObject.MarshalNotNull(this); if (intPtr == (IntPtr)0) { ThrowHelper.ThrowNullReferenceException((object)this); } SetReferenceValue_Injected(intPtr, ref id, MarshalledUnityObject.Marshal(value)); } public Object GetReferenceValue(PropertyName id, out bool idValid) { IntPtr intPtr = MarshalledUnityObject.MarshalNotNull(this); if (intPtr == (IntPtr)0) { ThrowHelper.ThrowNullReferenceException((object)this); } return Unmarshal.UnmarshalUnityObject(GetReferenceValue_Injected(intPtr, ref id, out idValid)); } [NativeMethod("GetBindingFor")] public Object GetGenericBinding(Object key) { IntPtr intPtr = MarshalledUnityObject.MarshalNotNull(this); if (intPtr == (IntPtr)0) { ThrowHelper.ThrowNullReferenceException((object)this); } return Unmarshal.UnmarshalUnityObject(GetGenericBinding_Injected(intPtr, MarshalledUnityObject.Marshal(key))); } [NativeMethod("ClearBindingFor")] public void ClearGenericBinding(Object key) { IntPtr intPtr = MarshalledUnityObject.MarshalNotNull(this); if (intPtr == (IntPtr)0) { ThrowHelper.ThrowNullReferenceException((object)this); } ClearGenericBinding_Injected(intPtr, MarshalledUnityObject.Marshal(key)); } [NativeThrows] public void RebindPlayableGraphOutputs() { IntPtr intPtr = MarshalledUnityObject.MarshalNotNull(this); if (intPtr == (IntPtr)0) { ThrowHelper.ThrowNullReferenceException((object)this); } RebindPlayableGraphOutputs_Injected(intPtr); } internal void ProcessPendingGraphChanges() { IntPtr intPtr = MarshalledUnityObject.MarshalNotNull(this); if (intPtr == (IntPtr)0) { ThrowHelper.ThrowNullReferenceException((object)this); } ProcessPendingGraphChanges_Injected(intPtr); } [NativeMethod("HasBinding")] internal bool HasGenericBinding(Object key) { IntPtr intPtr = MarshalledUnityObject.MarshalNotNull(this); if (intPtr == (IntPtr)0) { ThrowHelper.ThrowNullReferenceException((object)this); } return HasGenericBinding_Injected(intPtr, MarshalledUnityObject.Marshal(key)); } private PlayState GetPlayState() { //IL_0010: Unknown result type (might be due to invalid IL or missing references) IntPtr intPtr = MarshalledUnityObject.MarshalNotNull(this); if (intPtr == (IntPtr)0) { ThrowHelper.ThrowNullReferenceException((object)this); } return GetPlayState_Injected(intPtr); } private void SetWrapMode(DirectorWrapMode mode) { //IL_0010: Unknown result type (might be due to invalid IL or missing references) IntPtr intPtr = MarshalledUnityObject.MarshalNotNull(this); if (intPtr == (IntPtr)0) { ThrowHelper.ThrowNullReferenceException((object)this); } SetWrapMode_Injected(intPtr, mode); } private DirectorWrapMode GetWrapMode() { //IL_0010: Unknown result type (might be due to invalid IL or missing references) IntPtr intPtr = MarshalledUnityObject.MarshalNotNull(this); if (intPtr == (IntPtr)0) { ThrowHelper.ThrowNullReferenceException((object)this); } return GetWrapMode_Injected(intPtr); } [NativeThrows] private void EvaluateNextFrame() { IntPtr intPtr = MarshalledUnityObject.MarshalNotNull(this); if (intPtr == (IntPtr)0) { ThrowHelper.ThrowNullReferenceException((object)this); } EvaluateNextFrame_Injected(intPtr); } private PlayableGraph GetGraphHandle() { //IL_0017: Unknown result type (might be due to invalid IL or missing references) IntPtr intPtr = MarshalledUnityObject.MarshalNotNull(this); if (intPtr == (IntPtr)0) { ThrowHelper.ThrowNullReferenceException((object)this); } GetGraphHandle_Injected(intPtr, out var ret); return ret; } private void SetPlayOnAwake(bool on) { IntPtr intPtr = MarshalledUnityObject.MarshalNotNull(this); if (intPtr == (IntPtr)0) { ThrowHelper.ThrowNullReferenceException((object)this); } SetPlayOnAwake_Injected(intPtr, on); } private bool GetPlayOnAwake() { IntPtr intPtr = MarshalledUnityObject.MarshalNotNull(this); if (intPtr == (IntPtr)0) { ThrowHelper.ThrowNullReferenceException((object)this); } return GetPlayOnAwake_Injected(intPtr); } [NativeThrows] private void Internal_SetGenericBinding(Object key, Object value) { IntPtr intPtr = MarshalledUnityObject.MarshalNotNull(this); if (intPtr == (IntPtr)0) { ThrowHelper.ThrowNullReferenceException((object)this); } Internal_SetGenericBinding_Injected(intPtr, MarshalledUnityObject.Marshal(key), MarshalledUnityObject.Marshal(value)); } private void SetPlayableAsset(ScriptableObject asset) { IntPtr intPtr = MarshalledUnityObject.MarshalNotNull(this); if (intPtr == (IntPtr)0) { ThrowHelper.ThrowNullReferenceException((object)this); } SetPlayableAsset_Injected(intPtr, MarshalledUnityObject.Marshal(asset)); } private ScriptableObject Internal_GetPlayableAsset() { IntPtr intPtr = MarshalledUnityObject.MarshalNotNull(this); if (intPtr == (IntPtr)0) { ThrowHelper.ThrowNullReferenceException((object)this); } return Unmarshal.UnmarshalUnityObject(Internal_GetPlayableAsset_Injected(intPtr)); } [MethodImpl(MethodImplOptions.InternalCall)] [StaticAccessor(/*Could not decode attribute arguments.*/)] [NativeHeader("Runtime/Director/Core/DirectorManager.h")] internal static extern void ResetFrameTiming(); [RequiredByNativeCode] private void SendOnPlayableDirectorPlay() { if (this.played != null) { this.played(this); } } [RequiredByNativeCode] private void SendOnPlayableDirectorPause() { if (this.paused != null) { this.paused(this); } } [RequiredByNativeCode] private void SendOnPlayableDirectorStop() { if (this.stopped != null) { this.stopped(this); } } [MethodImpl(MethodImplOptions.InternalCall)] private static extern void set_timeUpdateMode_Injected(IntPtr _unity_self, DirectorUpdateMode value); [MethodImpl(MethodImplOptions.InternalCall)] private static extern DirectorUpdateMode get_timeUpdateMode_Injected(IntPtr _unity_self); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void set_time_Injected(IntPtr _unity_self, double value); [MethodImpl(MethodImplOptions.InternalCall)] private static extern double get_time_Injected(IntPtr _unity_self); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void set_initialTime_Injected(IntPtr _unity_self, double value); [MethodImpl(MethodImplOptions.InternalCall)] private static extern double get_initialTime_Injected(IntPtr _unity_self); [MethodImpl(MethodImplOptions.InternalCall)] private static extern double get_duration_Injected(IntPtr _unity_self); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Evaluate_Injected(IntPtr _unity_self); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void PlayOnFrame_Injected(IntPtr _unity_self, [In] ref FrameRate frameRate); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Play_Injected(IntPtr _unity_self); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Stop_Injected(IntPtr _unity_self); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Pause_Injected(IntPtr _unity_self); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Resume_Injected(IntPtr _unity_self); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void RebuildGraph_Injected(IntPtr _unity_self); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void ClearReferenceValue_Injected(IntPtr _unity_self, [In] ref PropertyName id); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void SetReferenceValue_Injected(IntPtr _unity_self, [In] ref PropertyName id, IntPtr value); [MethodImpl(MethodImplOptions.InternalCall)] private static extern IntPtr GetReferenceValue_Injected(IntPtr _unity_self, [In] ref PropertyName id, out bool idValid); [MethodImpl(MethodImplOptions.InternalCall)] private static extern IntPtr GetGenericBinding_Injected(IntPtr _unity_self, IntPtr key); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void ClearGenericBinding_Injected(IntPtr _unity_self, IntPtr key); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void RebindPlayableGraphOutputs_Injected(IntPtr _unity_self); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void ProcessPendingGraphChanges_Injected(IntPtr _unity_self); [MethodImpl(MethodImplOptions.InternalCall)] private static extern bool HasGenericBinding_Injected(IntPtr _unity_self, IntPtr key); [MethodImpl(MethodImplOptions.InternalCall)] private static extern PlayState GetPlayState_Injected(IntPtr _unity_self); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void SetWrapMode_Injected(IntPtr _unity_self, DirectorWrapMode mode); [MethodImpl(MethodImplOptions.InternalCall)] private static extern DirectorWrapMode GetWrapMode_Injected(IntPtr _unity_self); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void EvaluateNextFrame_Injected(IntPtr _unity_self); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void GetGraphHandle_Injected(IntPtr _unity_self, out PlayableGraph ret); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void SetPlayOnAwake_Injected(IntPtr _unity_self, bool on); [MethodImpl(MethodImplOptions.InternalCall)] private static extern bool GetPlayOnAwake_Injected(IntPtr _unity_self); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Internal_SetGenericBinding_Injected(IntPtr _unity_self, IntPtr key, IntPtr value); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void SetPlayableAsset_Injected(IntPtr _unity_self, IntPtr asset); [MethodImpl(MethodImplOptions.InternalCall)] private static extern IntPtr Internal_GetPlayableAsset_Injected(IntPtr _unity_self); } [StaticAccessor(/*Could not decode attribute arguments.*/)] [NativeHeader("Modules/Director/ScriptBindings/PlayableSystems.bindings.h")] internal static class PlayableSystems { public delegate void PlayableSystemDelegate(IReadOnlyList outputs); public enum PlayableSystemStage : ushort { FixedUpdate, FixedUpdatePostPhysics, Update, AnimationBegin, AnimationEnd, LateUpdate, Render } private class DataPlayableOutputList : IReadOnlyList, IEnumerable, IEnumerable, IReadOnlyCollection { private class DataPlayableOutputEnumerator : IEnumerator, IEnumerator, IDisposable { private DataPlayableOutputList m_List; private int m_Index; public DataPlayableOutput Current { get { try { return m_List[m_Index]; } catch (IndexOutOfRangeException) { throw new InvalidOperationException("Enumeration has either not started or has already finished."); } } } object IEnumerator.Current => Current; public DataPlayableOutputEnumerator(DataPlayableOutputList list) { m_List = list; m_Index = -1; } public void Dispose() { m_List = null; } public bool MoveNext() { m_Index++; return m_Index < m_List.Count; } public void Reset() { m_Index = -1; } } private unsafe PlayableOutputHandle* m_Outputs; private int m_Count; public unsafe DataPlayableOutput this[int index] { get { //IL_0055: Unknown result type (might be due to invalid IL or missing references) if (index >= m_Count) { throw new IndexOutOfRangeException($"index {index} is greater than the number of items: {m_Count}"); } if (index < 0) { throw new IndexOutOfRangeException("index cannot be negative"); } return new DataPlayableOutput(((PlayableOutputHandle*)m_Outputs)[index]); } } public int Count => m_Count; public unsafe DataPlayableOutputList(PlayableOutputHandle* outputs, int count) { m_Outputs = outputs; m_Count = count; } public IEnumerator GetEnumerator() { return new DataPlayableOutputEnumerator(this); } IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); } } private static Dictionary s_SystemTypes; private static Dictionary s_Delegates; private static ReaderWriterLockSlim s_RWLock; public static void RegisterSystemPhaseDelegate(PlayableSystemStage stage, PlayableSystemDelegate systemDelegate) where TDataStream : new() { RegisterSystemPhaseDelegate(typeof(TDataStream), stage, systemDelegate); } private static void RegisterSystemPhaseDelegate(Type streamType, PlayableSystemStage stage, PlayableSystemDelegate systemDelegate) { int num = RegisterStreamStage(streamType, (int)stage); try { s_RWLock.EnterWriteLock(); s_SystemTypes.TryAdd(num, streamType); int key = CombineTypeAndIndex(num, stage); if (!s_Delegates.TryAdd(key, systemDelegate)) { s_Delegates[key] = systemDelegate; } } finally { s_RWLock.ExitWriteLock(); } } private static int CombineTypeAndIndex(int typeIndex, PlayableSystemStage stage) { return (typeIndex << 16) | (int)stage; } [RequiredByNativeCode] private unsafe static bool Internal_CallSystemDelegate(int systemIndex, PlayableSystemStage stage, IntPtr outputsPtr, int numOutputs) { PlayableOutputHandle* outputs = (PlayableOutputHandle*)(void*)outputsPtr; int key = CombineTypeAndIndex(systemIndex, stage); bool flag = false; bool flag2 = false; PlayableSystemDelegate value = null; s_RWLock.EnterReadLock(); flag = s_SystemTypes.TryGetValue(systemIndex, out var _); if (flag) { flag2 = s_Delegates.TryGetValue(key, out value) && value != null; } s_RWLock.ExitReadLock(); if (!flag || !flag2) { return false; } DataPlayableOutputList outputs2 = new DataPlayableOutputList(outputs, numOutputs); value(outputs2); return true; } [MethodImpl(MethodImplOptions.InternalCall)] [ThreadAndSerializationSafe] private static extern int RegisterStreamStage(Type streamType, int stage); static PlayableSystems() { s_Delegates = new Dictionary(); s_SystemTypes = new Dictionary(); s_RWLock = new ReaderWriterLockSlim(); } }