summaryrefslogtreecommitdiff
path: root/Djup.Native/LibDjup.cs
blob: 15dcdad7b4f0a595c9ceecb1a05a9e684dad5d30 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
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);
}