| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 | 
							- /**
 
-  * 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.
 
-  */
 
- using AOT;
 
- using Live2D.Cubism.Core.Unmanaged;
 
- using System;
 
- using System.Runtime.InteropServices;
 
- using UnityEngine;
 
- namespace Live2D.Cubism.Core
 
- {
 
-     /// <summary>
 
-     /// Wrapper for core logs.
 
-     /// </summary>
 
-     internal static class CubismLogging
 
-     {
 
-         #region Delegates
 
-         /// <summary>
 
-         /// Delegate compatible with unmanaged log function.
 
-         /// </summary>
 
-         /// <param name="message">Message to log.</param>
 
-         private unsafe delegate void UnmanagedLogDelegate(char* message);
 
-         #endregion
 
-         /// <summary>
 
-         /// Delegate to pass to native Api.
 
-         /// </summary>
 
-         // ReSharper disable once PrivateFieldCanBeConvertedToLocalVariable
 
-         private static UnmanagedLogDelegate LogDelegate { get; set; }
 
-         #region Initialization
 
-         /// <summary>
 
-         /// Registers delegates.
 
-         /// </summary>
 
-         [RuntimeInitializeOnLoadMethod]
 
-         // ReSharper disable once UnusedMember.Local
 
-         private static unsafe void Initialize()
 
-         {
 
-             LogDelegate = LogUnmanaged;
 
-             var logFunction = Marshal.GetFunctionPointerForDelegate(LogDelegate);
 
-             csmSetLogFunction(logFunction);
 
-         }
 
-         #endregion
 
-         /// <summary>
 
-         /// Prints an unmanaged, null-terminated message.
 
-         /// </summary>
 
-         /// <param name="message">Message to log.</param>
 
-         [MonoPInvokeCallback(typeof(UnmanagedLogDelegate))]
 
-         private static unsafe void LogUnmanaged(char* message)
 
-         {
 
-             // Marshal message and log it.
 
-             var managedMessage = Marshal.PtrToStringAnsi(new IntPtr(message));
 
-             Debug.LogFormat("[Cubism] Core: {0}.", managedMessage);
 
-         }
 
-         #region Extern C
 
-         [DllImport(CubismCoreDll.DllName)]
 
-         private static extern void csmSetLogFunction(IntPtr logFunction);
 
-         #endregion
 
-     }
 
- }
 
 
  |