CubismTaskQueue.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /**
  2. * Copyright(c) Live2D Inc. All rights reserved.
  3. *
  4. * Use of this source code is governed by the Live2D Open Software license
  5. * that can be found at https://www.live2d.com/eula/live2d-open-software-license-agreement_en.html.
  6. */
  7. namespace Live2D.Cubism.Core
  8. {
  9. /// <summary>
  10. /// TOOD Document.
  11. /// </summary>
  12. public static class CubismTaskQueue
  13. {
  14. #region Delegates
  15. /// <summary>
  16. /// Handles <see cref="ICubismTask"/>s.
  17. /// </summary>
  18. /// <param name="task"></param>
  19. public delegate void CubismTaskHandler(ICubismTask task);
  20. #endregion
  21. #region Events
  22. /// <summary>
  23. /// Event triggered on new <see cref="ICubismTask"/> enqueued.
  24. /// </summary>
  25. public static CubismTaskHandler OnTask;
  26. #endregion
  27. /// <summary>
  28. /// Enqeues a <see cref="ICubismTask"/>.
  29. /// </summary>
  30. /// <param name="task"></param>
  31. internal static void Enqueue(ICubismTask task)
  32. {
  33. // Execute task idrectly in case enqueueing isn't enabled.
  34. if (OnTask == null)
  35. {
  36. task.Execute();
  37. return;
  38. }
  39. OnTask(task);
  40. }
  41. }
  42. }