protected virtual void Awake()
        {
            // pin callback
            stateChangedCallback = (args) =>
            {
#if UNITY_WSA_10_0
                if (!UnityEngine.WSA.Application.RunningOnAppThread())
                {
                    UnityEngine.WSA.Application.InvokeOnAppThread(() =>
                    {
                        QueueCallback(() => { OnStateChanged(args); });
                    }, false);
                }
                else
                {
                    QueueCallback(() => { OnStateChanged(args); });
                }
#else
                // there is still a chance the callback is on a non AppThread(callbacks genereated from WaitForEndOfFrame are not)
                // this will process the callback on AppThread on a FixedUpdate
                QueueCallback(() => { OnStateChanged(args); });
#endif
            };

            renderFuncPtr  = Wrapper.GetRenderEventFunc();
            callbackHandle = GCHandle.Alloc(stateChangedCallback);
        }
Beispiel #2
0
        protected void CreateMediaPlayer(Wrapper.StateChangedCallback callback)
        {
            // define callback function
            stateChangedCallback = callback;

            IntPtr thisObjectPtr = GCHandle.ToIntPtr(thisObject);

            CheckHR(Wrapper.CreateMediaPlayer(stateChangedCallback, thisObjectPtr, out instanceId));
        }
Beispiel #3
0
        protected virtual void Awake()
        {
            // define callback function
            stateChangedCallback = new Wrapper.StateChangedCallback(CallbackWrapper.Capture_Callback);

            // pin this object in the GC
            thisObject = GCHandle.Alloc(this, GCHandleType.Normal);

            renderFuncPtr = Wrapper.GetRenderEventFunc();
        }
 internal static extern Int32 CreateMesh([MarshalAs(UnmanagedType.FunctionPtr)] Wrapper.StateChangedCallback callback, out Int32 instanceId);
Beispiel #5
0
 internal static extern Int32 CreateCapture([MarshalAs(UnmanagedType.FunctionPtr)] Wrapper.StateChangedCallback callback, IntPtr objectPtr, out Int32 instanceId);