Example #1
0
        /// <summary>
        /// Dispose pattern implementation of dispose method.
        /// </summary>
        /// <param name="disposing">True if disposing, false if finalizing.</param>
        protected virtual void Dispose(bool disposing)
        {
            if (Disposed)
            {
                return;
            }

            // Ensure that all created HMDs have been disposed.
            foreach (Hmd hmd in CreatedHmds)
            {
                if (!hmd.Disposed)
                {
                    hmd.Dispose();
                }
            }

            CreatedHmds.Clear();

            if (Initialized)
            {
                Shutdown();
            }

            // Deallocate unmanaged memory again.
            FreeHGlobal(ref m_eyePosesPtr);

            OVR.Dispose();
            OVR = null;

            Disposed = true;
        }