public unsafe static bool LoadImage(Texture2D tex, byte[] data, bool markNonReadable) { if (method_LoadImage_ptr == IntPtr.Zero) { method_LoadImage_ptr = UnityInternals.ResolveICall("UnityEngine.ImageConversion::LoadImage(UnityEngine.Texture2D,System.Byte[],System.Boolean)"); if (method_LoadImage_ptr == IntPtr.Zero) { MelonLogger.Error("Failed to resolve icall UnityEngine.ImageConversion::LoadImage(UnityEngine.Texture2D,System.Byte[],System.Boolean)"); return(false); } if (method_LoadImage_ptr != IntPtr.Zero) { ImageConversion_LoadImage = (ImageConversion_LoadImage_Delegate)Marshal.GetDelegateForFunctionPointer(method_LoadImage_ptr, typeof(ImageConversion_LoadImage_Delegate)); } } if (ImageConversion_LoadImage != null) { IntPtr dataPtr = UnityInternals.array_new(InternalClassPointerStore <byte> .NativeClassPtr, (uint)data.Length); for (var i = 0; i < data.Length; i++) { IntPtr arrayStartPointer = (IntPtr)((long)dataPtr + 4 * IntPtr.Size); ((byte *)arrayStartPointer.ToPointer())[i] = data[i]; } return(ImageConversion_LoadImage(tex.Pointer, dataPtr, markNonReadable)); } MelonLogger.Error("Failed to run UnityEngine.ImageConversion::LoadImage(UnityEngine.Texture2D,System.Byte[],System.Boolean)"); return(false); }
static ImageConversion() { IntPtr ptr = UnityInternals.ResolveICall("UnityEngine.ImageConversion::LoadImage(UnityEngine.Texture2D,System.Byte[],System.Boolean)"); if (ptr != IntPtr.Zero) { ImageConversion_LoadImage = (ImageConversion_LoadImage_Delegate)Marshal.GetDelegateForFunctionPointer(ptr, typeof(ImageConversion_LoadImage_Delegate)); } else { MelonLogger.Error("Failed to resolve icall UnityEngine.ImageConversion::LoadImage(UnityEngine.Texture2D,System.Byte[],System.Boolean)"); } }
public static bool LoadImage(Texture2D tex, byte[] data, bool markNonReadable) { if (method_LoadImage_ptr == null) { method_LoadImage_ptr = NET_SDK.IL2CPP.il2cpp_resolve_icall(NET_SDK.IL2CPP.StringToIntPtr("UnityEngine.ImageConversion::LoadImage(UnityEngine.Texture2D,System.Byte[],System.Boolean)")); } if (method_LoadImage_ptr != IntPtr.Zero) { ImageConversion_LoadImage = (ImageConversion_LoadImage_Delegate)Marshal.GetDelegateForFunctionPointer(method_LoadImage_ptr, typeof(ImageConversion_LoadImage_Delegate)); } if (ImageConversion_LoadImage != null) { return(ImageConversion_LoadImage(tex.Pointer, ((Il2CppStructArray <byte>)data).Pointer, markNonReadable)); } return(false); }