diff options
| author | Joel Stålnacke <joel@saker.fi> | 2026-03-20 21:38:46 +0200 |
|---|---|---|
| committer | Joel Stålnacke <joel@saker.fi> | 2026-03-20 21:38:46 +0200 |
| commit | 3870982f640260822bf605e693782ce9f5d79cf6 (patch) | |
| tree | 29cba57f08ae2d0ea32968cba49b1c4e6f69987f /Djup.Native | |
| parent | 745406dc65aecc438a53f96badc387a32b7a338f (diff) | |
Diffstat (limited to 'Djup.Native')
| -rw-r--r-- | Djup.Native/src/LibDjup.cs | 10 | ||||
| -rw-r--r-- | Djup.Native/src/Types.cs | 27 |
2 files changed, 16 insertions, 21 deletions
diff --git a/Djup.Native/src/LibDjup.cs b/Djup.Native/src/LibDjup.cs index 15dcdad..4cd99f8 100644 --- a/Djup.Native/src/LibDjup.cs +++ b/Djup.Native/src/LibDjup.cs @@ -26,13 +26,13 @@ public static partial class LibDjup public static partial float vec2_length(Vec2 v); [LibraryImport(LibraryName, EntryPoint = Prefix + nameof(log_set_output))] - public static partial Vec2 log_set_output([MarshalAs(UnmanagedType.FunctionPtr)] LoggerDelegate logger); + public static partial void log_set_output([MarshalAs(UnmanagedType.FunctionPtr)] LoggerDelegate logger); [LibraryImport(LibraryName, EntryPoint = Prefix + nameof(log_set_level))] - public static partial Vec2 log_set_level(LogLevel minLevel); + public static partial void log_set_level(LogLevel minLevel); [LibraryImport(LibraryName, EntryPoint = Prefix + nameof(physics_context_create))] - public static partial IntPtr physics_context_create(uint snapshots); + public static partial IntPtr physics_context_create(int snapshots, int players, int balls); [LibraryImport(LibraryName, EntryPoint = Prefix + nameof(physics_context_free))] public static partial void physics_context_free(IntPtr context); @@ -47,8 +47,8 @@ public static partial class LibDjup public static partial int physics_tick(IntPtr currentSnapshot, double delta, IntPtr nextSnapshot); [LibraryImport(LibraryName, EntryPoint = Prefix + nameof(snapshot_put_player))] - public static unsafe partial int snapshot_put_player(IntPtr snapshot, uint playerId, Player *player); + public static unsafe partial int snapshot_put_player(IntPtr snapshot, int playerId, Player* player); [LibraryImport(LibraryName, EntryPoint = Prefix + nameof(snapshot_set_player_input))] - public static partial int snapshot_set_player_input(IntPtr snapshot, uint playerId, byte input); + public static partial int snapshot_set_player_input(IntPtr snapshot, int playerId, byte input); } diff --git a/Djup.Native/src/Types.cs b/Djup.Native/src/Types.cs index 7d9c41e..3afce83 100644 --- a/Djup.Native/src/Types.cs +++ b/Djup.Native/src/Types.cs @@ -1,5 +1,4 @@ using System.Diagnostics; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; namespace Djup.Native; @@ -56,24 +55,20 @@ public struct Bullet } [StructLayout(LayoutKind.Sequential)] -public struct Snapshot +public unsafe struct Snapshot { - [InlineArray(Constants.WorldMaxPlayers)] - public struct PlayerArray - { - private Player _element0; - } - - [InlineArray(Constants.WorldMaxBullets)] - public struct BallArray - { - private Bullet _element0; - } - private byte active; public uint Tick { get; } - public PlayerArray Players { get; } - public BallArray Bullets { get; } + private int playersLength; + private Player* players; + private int bulletsLength; + private Bullet* bullets; + + public ReadOnlySpan<Player> Players => + new ReadOnlySpan<Player>(players, playersLength); + + public ReadOnlySpan<Bullet> Bullets => + new ReadOnlySpan<Bullet>(bullets, bulletsLength); } public enum LogLevel |
