From 3e95d416927102970682b6f2deccaaf00d459728 Mon Sep 17 00:00:00 2001 From: james7132 Date: Sun, 10 Nov 2019 16:54:04 -0800 Subject: [PATCH] Add unsafe overloads for SteamNetworking --- Facepunch.Steamworks/SteamNetworking.cs | 27 +++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/Facepunch.Steamworks/SteamNetworking.cs b/Facepunch.Steamworks/SteamNetworking.cs index ee1ceef..9b89755 100644 --- a/Facepunch.Steamworks/SteamNetworking.cs +++ b/Facepunch.Steamworks/SteamNetworking.cs @@ -107,6 +107,24 @@ namespace Steamworks } } + /// + /// Reads in a packet that has been sent from another user via SendP2PPacket.. + /// + public unsafe static bool ReadP2PPacket( byte[] buffer, ref uint size, ref SteamId steamid, int channel = 0 ) + { + fixed (byte* p = buffer) { + return Internal.ReadP2PPacket( (IntPtr)p, (uint)buffer.Length, ref size, ref steamid, channel ); + } + } + + /// + /// Reads in a packet that has been sent from another user via SendP2PPacket.. + /// + public unsafe static bool ReadP2PPacket( byte* buffer, uint cbuf, ref uint size, ref SteamId steamid, int channel = 0 ) + { + return Internal.ReadP2PPacket( (IntPtr)buffer, cbuf, ref size, ref steamid, channel ); + } + /// /// Sends a P2P packet to the specified user. /// This is a session-less API which automatically establishes NAT-traversing or Steam relay server connections. @@ -123,6 +141,15 @@ namespace Steamworks } } + /// + /// Sends a P2P packet to the specified user. + /// This is a session-less API which automatically establishes NAT-traversing or Steam relay server connections. + /// NOTE: The first packet send may be delayed as the NAT-traversal code runs. + /// + public static unsafe bool SendP2PPacket( SteamId steamid, byte* data, uint length, int nChannel = 1, P2PSend sendType = P2PSend.Reliable ) + { + return Internal.SendP2PPacket( steamid, (IntPtr)data, (uint)length, (P2PSend)sendType, nChannel ); + } } } \ No newline at end of file