public static byte[] duk_to_lstring(IntPtr ctx, duk_idx_t idx) { var size_t = 0U; var ptr = DuktapeDLL.duk_unity_to_lstring(ctx, idx, out size_t); var out_size = (int)size_t; if (ptr != IntPtr.Zero && out_size > 0) { var bytes = new byte[out_size]; Marshal.Copy(ptr, bytes, 0, out_size); return(bytes); } return(null); }
public static byte[] duk_get_buffer_data(IntPtr ctx, duk_idx_t idx) { var size_t = 0U; var ptr = DuktapeDLL.duk_unity_get_buffer_data(ctx, idx, out size_t); if (ptr != IntPtr.Zero) { var size = (int)size_t; var bytes = new byte[size]; Marshal.Copy(ptr, bytes, 0, size); return(bytes); } return(null); }
public static string duk_to_string(IntPtr ctx, duk_idx_t idx) { var len = 0U; var ptr = DuktapeDLL.duk_unity_to_lstring(ctx, idx, out len); if (ptr != IntPtr.Zero) { var str = Marshal.PtrToStringAnsi(ptr, (int)len); if (str == null) { var buffer = new byte[len]; Marshal.Copy(ptr, buffer, 0, (int)len); return(Encoding.UTF8.GetString(buffer)); } return(str); } return(null); }
public static string duk_to_string(IntPtr ctx, duk_idx_t idx) { var ptr = DuktapeDLL.duk_to_string(ctx, idx); return(Marshal.PtrToStringAnsi(ptr)); }