NSAutoreleasePool.cs 547 B

123456789101112131415161718192021
  1. using System;
  2. namespace Veldrid.MetalBindings
  3. {
  4. public struct NSAutoreleasePool : IDisposable
  5. {
  6. private static readonly ObjCClass s_class = new ObjCClass(nameof(NSAutoreleasePool));
  7. public readonly IntPtr NativePtr;
  8. public NSAutoreleasePool(IntPtr ptr) => NativePtr = ptr;
  9. public static NSAutoreleasePool Begin()
  10. {
  11. return s_class.AllocInit<NSAutoreleasePool>();
  12. }
  13. public void Dispose()
  14. {
  15. ObjectiveCRuntime.release(this.NativePtr);
  16. }
  17. }
  18. }