#if UNITY_IOS //&& !UNITY_EDITOR using System; using System.Collections.Generic; using System.Runtime.InteropServices; using Azerion.BlueStack.API; namespace Azerion.BlueStack.Platforms.iOS { internal class Utils { public static IntPtr BuildSettings(Settings settings) { IntPtr settingsPtr = Externs.BSUCreateSettings(); Externs.BSUSetDebugModeEnabled(settingsPtr, settings.IsDebugModeEnabled); return settingsPtr; } public static string PtrToString(IntPtr stringPtr) { string managedString = Marshal.PtrToStringAnsi(stringPtr); Marshal.FreeHGlobal(stringPtr); return managedString; } public static List PtrArrayToManagedList(IntPtr arrayPtr, int numOfAssets) { IntPtr[] intPtrArray = new IntPtr[numOfAssets]; string[] managedAssetArray = new string[numOfAssets]; Marshal.Copy(arrayPtr, intPtrArray, 0, numOfAssets); for (int i = 0; i < numOfAssets; i++) { managedAssetArray[i] = Marshal.PtrToStringAuto(intPtrArray[i]); Marshal.FreeHGlobal(intPtrArray[i]); } Marshal.FreeHGlobal(arrayPtr); return new List(managedAssetArray); } } } #endif