/// <summary> /// Retrieve properties of an image format applied to sparse images. /// </summary> public SparseImageFormatProperties2[] GetSparseImageFormatProperties2(PhysicalDeviceSparseImageFormatInfo2 formatInfo) { unsafe { try { var commandDelegate = this.commandCache.GetCommandDelegate <Interop.vkGetPhysicalDeviceSparseImageFormatProperties2KHR>("vkGetPhysicalDeviceSparseImageFormatProperties2KHR", "instance"); SparseImageFormatProperties2[] result = default(SparseImageFormatProperties2[]); Interop.PhysicalDeviceSparseImageFormatInfo2 marshalledFormatInfo; formatInfo.MarshalTo(&marshalledFormatInfo); uint propertyCount; Interop.SparseImageFormatProperties2 *marshalledProperties = null; commandDelegate(this.handle, &marshalledFormatInfo, &propertyCount, null); marshalledProperties = (Interop.SparseImageFormatProperties2 *)Interop.HeapUtil.Allocate <Interop.SparseImageFormatProperties2>((uint)propertyCount); commandDelegate(this.handle, &marshalledFormatInfo, &propertyCount, marshalledProperties); result = new SparseImageFormatProperties2[(uint)propertyCount]; for (int index = 0; index < (uint)propertyCount; index++) { result[index] = SparseImageFormatProperties2.MarshalFrom(&marshalledProperties[index]); } return(result); } finally { Interop.HeapUtil.FreeLog(); } } }
/// <summary> /// /// </summary> /// <param name="pointer"> /// </param> internal static unsafe PhysicalDeviceSparseImageFormatInfo2 MarshalFrom(SharpVk.Interop.PhysicalDeviceSparseImageFormatInfo2 *pointer) { PhysicalDeviceSparseImageFormatInfo2 result = default(PhysicalDeviceSparseImageFormatInfo2); result.Format = pointer->Format; result.Type = pointer->Type; result.Samples = pointer->Samples; result.Usage = pointer->Usage; result.Tiling = pointer->Tiling; return(result); }