/**
 * Copyright(c) Live2D Inc. All rights reserved.
 *
 * Use of this source code is governed by the Live2D Open Software license
 * that can be found at https://www.live2d.com/eula/live2d-open-software-license-agreement_en.html.
 */
namespace Live2D.Cubism.Core
{
    /// 
    /// TOOD Document.
    /// 
    public static class CubismTaskQueue
    {
        #region Delegates
        /// 
        /// Handles s.
        /// 
        /// 
        public delegate void CubismTaskHandler(ICubismTask task);
        #endregion
        #region Events
        /// 
        /// Event triggered on new  enqueued.
        /// 
        public static CubismTaskHandler OnTask;
        #endregion
        /// 
        /// Enqeues a .
        /// 
        /// 
        internal static void Enqueue(ICubismTask task)
        {
            // Execute task idrectly in case enqueueing isn't enabled.
            if (OnTask == null)
            {
                task.Execute();
                return;
            }
            OnTask(task);
        }
    }
}