diff options
Diffstat (limited to 'Ryujinx.Graphics.Vulkan/NativeArray.cs')
| -rw-r--r-- | Ryujinx.Graphics.Vulkan/NativeArray.cs | 48 |
1 files changed, 0 insertions, 48 deletions
diff --git a/Ryujinx.Graphics.Vulkan/NativeArray.cs b/Ryujinx.Graphics.Vulkan/NativeArray.cs deleted file mode 100644 index 3a851287..00000000 --- a/Ryujinx.Graphics.Vulkan/NativeArray.cs +++ /dev/null @@ -1,48 +0,0 @@ -using System; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -namespace Ryujinx.Graphics.Vulkan -{ - unsafe class NativeArray<T> : IDisposable where T : unmanaged - { - public T* Pointer { get; private set; } - public int Length { get; } - - public ref T this[int index] - { - get => ref Pointer[Checked(index)]; - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private int Checked(int index) - { - if ((uint)index >= (uint)Length) - { - throw new IndexOutOfRangeException(); - } - - return index; - } - - public NativeArray(int length) - { - Pointer = (T*)Marshal.AllocHGlobal(checked(length * Unsafe.SizeOf<T>())); - Length = length; - } - - public Span<T> AsSpan() - { - return new Span<T>(Pointer, Length); - } - - public void Dispose() - { - if (Pointer != null) - { - Marshal.FreeHGlobal((IntPtr)Pointer); - Pointer = null; - } - } - } -} |
