diff options
| author | Jean-Philippe Bruyère <jp_bruyere@hotmail.com> | 2021-12-04 04:35:41 +0100 |
|---|---|---|
| committer | Jean-Philippe Bruyère <jp_bruyere@hotmail.com> | 2021-12-04 04:35:41 +0100 |
| commit | d0bc93bb44e56ad29ae5e3c5b4e79ef624f82ba8 (patch) | |
| tree | 5d85c2cf93e7d28f2064a2022c4ab43d548657e0 | |
| parent | ba592ca9099fe4e378692bd2e8c953de90a4beb5 (diff) | |
object.PinPointer
| -rw-r--r-- | vulkan/ExtensionMethods.cs | 6 | ||||
| -rw-r--r-- | vulkan/Utf8StringPointer.cs | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/vulkan/ExtensionMethods.cs b/vulkan/ExtensionMethods.cs index 4102f07..6f31329 100644 --- a/vulkan/ExtensionMethods.cs +++ b/vulkan/ExtensionMethods.cs @@ -74,6 +74,12 @@ namespace Vulkan { handles.Add (hnd.AddrOfPinnedObject (), hnd); return hnd.AddrOfPinnedObject (); } + public static IntPtr PinPointer (this object obj) { + GCHandle hnd = GCHandle.Alloc (obj, GCHandleType.Pinned); + handles.Add (hnd.AddrOfPinnedObject (), hnd); + return hnd.AddrOfPinnedObject (); + } + //pin with pinning context public static IntPtr Pin (this object obj, PinnedObjects ctx) { diff --git a/vulkan/Utf8StringPointer.cs b/vulkan/Utf8StringPointer.cs index 93ae3d3..943fe75 100644 --- a/vulkan/Utf8StringPointer.cs +++ b/vulkan/Utf8StringPointer.cs @@ -12,7 +12,7 @@ namespace Vulkan Utf8StringPointer (IntPtr ptr) { handle = ptr; } - public Utf8StringPointer (string str) { + Utf8StringPointer (string str) { handle = str.PinPointer(); } public static implicit operator string (Utf8StringPointer pt) |