Browse Source

Add overload for packet creation with native buffers

NX 7 years ago
parent
commit
6916b78196
1 changed files with 13 additions and 0 deletions
  1. 13 0
      Source/Managed/ENet.cs

+ 13 - 0
Source/Managed/ENet.cs

@@ -286,6 +286,16 @@ namespace ENet {
 			nativePacket = Native.enet_packet_create(data, (IntPtr)length, flags);
 		}
 
+		public void Create(IntPtr data, int length, PacketFlags flags) {
+			if (data == IntPtr.Zero)
+				throw new ArgumentNullException("data");
+
+			if (length < 0)
+				throw new ArgumentOutOfRangeException();
+
+			nativePacket = Native.enet_packet_create(data, (IntPtr)length, flags);
+		}
+
 		public void CopyTo(byte[] destination) {
 			if (destination == null)
 				throw new ArgumentNullException("destination");
@@ -775,6 +785,9 @@ namespace ENet {
 		[DllImport(nativeLibrary, CallingConvention = CallingConvention.Cdecl)]
 		internal static extern IntPtr enet_packet_create(byte[] data, IntPtr dataLength, PacketFlags flags);
 
+		[DllImport(nativeLibrary, CallingConvention = CallingConvention.Cdecl)]
+		internal static extern IntPtr enet_packet_create(IntPtr data, IntPtr dataLength, PacketFlags flags);
+
 		[DllImport(nativeLibrary, CallingConvention = CallingConvention.Cdecl)]
 		internal static extern IntPtr enet_packet_get_data(IntPtr packet);