/// <summary> /// /// </summary> internal unsafe void MarshalTo(SharpVk.Interop.Khronos.MemoryGetFileDescriptorInfo *pointer) { pointer->SType = StructureType.MemoryGetFileDescriptorInfo; pointer->Next = null; pointer->Memory = this.Memory?.handle ?? default(SharpVk.Interop.DeviceMemory); pointer->HandleType = this.HandleType; }
/// <summary> /// /// </summary> public static unsafe int GetMemoryFileDescriptor(this SharpVk.Device extendedHandle, SharpVk.Khronos.MemoryGetFileDescriptorInfo getFileDescriptorInfo) { try { int result = default(int); CommandCache commandCache = default(CommandCache); SharpVk.Interop.Khronos.MemoryGetFileDescriptorInfo *marshalledGetFileDescriptorInfo = default(SharpVk.Interop.Khronos.MemoryGetFileDescriptorInfo *); int marshalledFileDescriptor = default(int); commandCache = extendedHandle.commandCache; marshalledGetFileDescriptorInfo = (SharpVk.Interop.Khronos.MemoryGetFileDescriptorInfo *)(Interop.HeapUtil.Allocate <SharpVk.Interop.Khronos.MemoryGetFileDescriptorInfo>()); getFileDescriptorInfo.MarshalTo(marshalledGetFileDescriptorInfo); SharpVk.Interop.Khronos.VkDeviceGetMemoryFileDescriptorDelegate commandDelegate = commandCache.GetCommandDelegate <SharpVk.Interop.Khronos.VkDeviceGetMemoryFileDescriptorDelegate>("vkGetMemoryFdKHR", "instance"); Result methodResult = commandDelegate(extendedHandle.handle, marshalledGetFileDescriptorInfo, &marshalledFileDescriptor); if (SharpVkException.IsError(methodResult)) { throw SharpVkException.Create(methodResult); } result = marshalledFileDescriptor; return(result); } finally { Interop.HeapUtil.FreeAll(); } }