summaryrefslogtreecommitdiff
path: root/modules/mono/editor/GodotTools/GodotTools.ProjectEditor
diff options
context:
space:
mode:
authorIgnacio Roldán Etcheverry <ignalfonsore@gmail.com>2022-08-05 03:32:59 +0200
committerIgnacio Roldán Etcheverry <ignalfonsore@gmail.com>2022-08-22 03:36:52 +0200
commit2c180f62d985194060f1a8d2070c130081177c90 (patch)
treeba2e1bed3d3c3138d9ed39b315786cb6e22a3ee5 /modules/mono/editor/GodotTools/GodotTools.ProjectEditor
parent186d7f6239144351ed9f60915796a7a224f4dfbf (diff)
C#: Replace P/Invoke with delegate pointers
- Moves interop functions to UnmanagedCallbacks struct that contains the function pointers and is passed to C#. - Implements UnmanagedCallbacksGenerator, a C# source generator that generates the UnmanagedCallbacks struct in C# and the body for the NativeFuncs methods (their implementation just calls the function pointer in the UnmanagedCallbacks). The generated methods are needed because .NET pins byref parameters of native calls, even if they are 'ref struct's, which don't need pinning. The generated methods use `Unsafe.AsPointer` so that we can benefit from byref parameters without suffering overhead of pinning. Co-authored-by: Raul Santos <raulsntos@gmail.com>
Diffstat (limited to 'modules/mono/editor/GodotTools/GodotTools.ProjectEditor')
0 files changed, 0 insertions, 0 deletions