/// <summary> /// /// </summary> internal static unsafe ImageSparseMemoryRequirementsInfo2 MarshalFrom(SharpVk.Interop.Khronos.ImageSparseMemoryRequirementsInfo2 *pointer) { ImageSparseMemoryRequirementsInfo2 result = default(ImageSparseMemoryRequirementsInfo2); result.Image = new SharpVk.Image(default(SharpVk.Device), pointer->Image); 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(); } }
/// <summary> /// /// </summary> internal unsafe void MarshalTo(SharpVk.Interop.Khronos.ImageSparseMemoryRequirementsInfo2 *pointer) { pointer->SType = StructureType.ImageSparseMemoryRequirementsInfo2Khr; pointer->Next = null; pointer->Image = this.Image?.handle ?? default(SharpVk.Interop.Image); }