/// <summary> /// /// </summary> internal static unsafe SparseImageMemoryRequirements2 MarshalFrom(SharpVk.Interop.Khronos.SparseImageMemoryRequirements2 *pointer) { SparseImageMemoryRequirements2 result = default(SparseImageMemoryRequirements2); result.MemoryRequirements = pointer->MemoryRequirements; return(result); }
/// <summary> /// /// </summary> public static unsafe SharpVk.Khronos.SparseImageMemoryRequirements2[] GetImageSparseMemoryRequirements2(this SharpVk.Device extendedHandle, SharpVk.Khronos.ImageSparseMemoryRequirementsInfo2 info) { try { SharpVk.Khronos.SparseImageMemoryRequirements2[] result = default(SharpVk.Khronos.SparseImageMemoryRequirements2[]); uint sparseMemoryRequirementCount = default(uint); CommandCache commandCache = default(CommandCache); SharpVk.Interop.Khronos.ImageSparseMemoryRequirementsInfo2 *marshalledInfo = default(SharpVk.Interop.Khronos.ImageSparseMemoryRequirementsInfo2 *); SharpVk.Interop.Khronos.SparseImageMemoryRequirements2 * marshalledSparseMemoryRequirements = default(SharpVk.Interop.Khronos.SparseImageMemoryRequirements2 *); commandCache = extendedHandle.commandCache; marshalledInfo = (SharpVk.Interop.Khronos.ImageSparseMemoryRequirementsInfo2 *)(Interop.HeapUtil.Allocate <SharpVk.Interop.Khronos.ImageSparseMemoryRequirementsInfo2>()); info.MarshalTo(marshalledInfo); SharpVk.Interop.Khronos.VkDeviceGetImageSparseMemoryRequirements2Delegate commandDelegate = commandCache.GetCommandDelegate <SharpVk.Interop.Khronos.VkDeviceGetImageSparseMemoryRequirements2Delegate>("vkGetImageSparseMemoryRequirements2KHR", "instance"); commandDelegate(extendedHandle.handle, marshalledInfo, &sparseMemoryRequirementCount, marshalledSparseMemoryRequirements); marshalledSparseMemoryRequirements = (SharpVk.Interop.Khronos.SparseImageMemoryRequirements2 *)(Interop.HeapUtil.Allocate <SharpVk.Interop.Khronos.SparseImageMemoryRequirements2>((uint)(sparseMemoryRequirementCount))); commandDelegate(extendedHandle.handle, marshalledInfo, &sparseMemoryRequirementCount, marshalledSparseMemoryRequirements); if (marshalledSparseMemoryRequirements != null) { var fieldPointer = new SharpVk.Khronos.SparseImageMemoryRequirements2[(uint)(sparseMemoryRequirementCount)]; for (int index = 0; index < (uint)(sparseMemoryRequirementCount); index++) { fieldPointer[index] = SharpVk.Khronos.SparseImageMemoryRequirements2.MarshalFrom(&marshalledSparseMemoryRequirements[index]); } result = fieldPointer; } else { result = null; } return(result); } finally { Interop.HeapUtil.FreeAll(); } }