using System.Runtime.InteropServices; namespace Djup.Native; public static partial class LibDjup { const string LibraryName = "djup"; const string Prefix = "dp_"; [LibraryImport(LibraryName, EntryPoint = Prefix + nameof(hello_world))] public static partial void hello_world(); [LibraryImport(LibraryName, EntryPoint = Prefix + nameof(get_num))] public static partial int get_num(); [LibraryImport(LibraryName, EntryPoint = Prefix + nameof(get_vec2))] public static partial Vec2 get_vec2(); [LibraryImport(LibraryName, EntryPoint = Prefix + nameof(vec2_mul))] public static partial Vec2 vec2_mul(Vec2 v, float scalar); [LibraryImport(LibraryName, EntryPoint = Prefix + nameof(vec2_normal))] public static partial Vec2 vec2_normal(Vec2 v); [LibraryImport(LibraryName, EntryPoint = Prefix + nameof(vec2_length))] 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); [LibraryImport(LibraryName, EntryPoint = Prefix + nameof(log_set_level))] public static partial Vec2 log_set_level(LogLevel minLevel); [LibraryImport(LibraryName, EntryPoint = Prefix + nameof(physics_context_create))] public static partial IntPtr physics_context_create(uint snapshots); [LibraryImport(LibraryName, EntryPoint = Prefix + nameof(physics_context_free))] public static partial void physics_context_free(IntPtr context); [LibraryImport(LibraryName, EntryPoint = Prefix + nameof(physics_context_get_snapshot))] public static partial IntPtr physics_context_get_snapshot(IntPtr context); [LibraryImport(LibraryName, EntryPoint = Prefix + nameof(physics_context_return_snapshot))] public static partial void physics_context_return_snapshot(IntPtr context, IntPtr snapshot); [LibraryImport(LibraryName, EntryPoint = Prefix + nameof(physics_tick))] 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); [LibraryImport(LibraryName, EntryPoint = Prefix + nameof(snapshot_set_player_input))] public static partial int snapshot_set_player_input(IntPtr snapshot, uint playerId, byte input); }