/// <summary> /// Retrieve properties of an image format applied to sparse images. /// </summary> public unsafe SharpVk.SparseImageFormatProperties[] GetSparseImageFormatProperties(SharpVk.Format format, SharpVk.ImageType type, SharpVk.SampleCountFlags samples, SharpVk.ImageUsageFlags usage, SharpVk.ImageTiling tiling) { try { SharpVk.SparseImageFormatProperties[] result = default(SharpVk.SparseImageFormatProperties[]); uint propertyCount = default(uint); SharpVk.SparseImageFormatProperties *marshalledProperties = default(SharpVk.SparseImageFormatProperties *); SharpVk.Interop.VkPhysicalDeviceGetSparseImageFormatPropertiesDelegate commandDelegate = commandCache.GetCommandDelegate <SharpVk.Interop.VkPhysicalDeviceGetSparseImageFormatPropertiesDelegate>("vkGetPhysicalDeviceSparseImageFormatProperties", ""); commandDelegate(this.handle, format, type, samples, usage, tiling, &propertyCount, marshalledProperties); marshalledProperties = (SharpVk.SparseImageFormatProperties *)(Interop.HeapUtil.Allocate <SharpVk.SparseImageFormatProperties>((uint)(propertyCount))); commandDelegate(this.handle, format, type, samples, usage, tiling, &propertyCount, marshalledProperties); if (marshalledProperties != null) { var fieldPointer = new SharpVk.SparseImageFormatProperties[(uint)(propertyCount)]; for (int index = 0; index < (uint)(propertyCount); index++) { fieldPointer[index] = marshalledProperties[index]; } result = fieldPointer; } else { result = null; } return(result); } finally { Interop.HeapUtil.FreeAll(); } }
/// <summary> /// /// </summary> public AttachmentDescription(SharpVk.AttachmentDescriptionFlags flags, SharpVk.Format format, SharpVk.SampleCountFlags samples, SharpVk.AttachmentLoadOp loadOp, SharpVk.AttachmentStoreOp storeOp, SharpVk.AttachmentLoadOp stencilLoadOp, SharpVk.AttachmentStoreOp stencilStoreOp, SharpVk.ImageLayout initialLayout, SharpVk.ImageLayout finalLayout) { this.Flags = flags; this.Format = format; this.Samples = samples; this.LoadOp = loadOp; this.StoreOp = storeOp; this.StencilLoadOp = stencilLoadOp; this.StencilStoreOp = stencilStoreOp; this.InitialLayout = initialLayout; this.FinalLayout = finalLayout; }
public static extern void vkGetPhysicalDeviceSparseImageFormatProperties(SharpVk.Interop.PhysicalDevice physicalDevice, SharpVk.Format format, SharpVk.ImageType type, SharpVk.SampleCountFlags samples, SharpVk.ImageUsageFlags usage, SharpVk.ImageTiling tiling, uint *propertyCount, SharpVk.SparseImageFormatProperties *properties);
/// <summary> /// /// </summary> public ImageFormatProperties(SharpVk.Extent3D maxExtent, uint maxMipLevels, uint maxArrayLayers, SharpVk.SampleCountFlags sampleCounts, DeviceSize maxResourceSize) { this.MaxExtent = maxExtent; this.MaxMipLevels = maxMipLevels; this.MaxArrayLayers = maxArrayLayers; this.SampleCounts = sampleCounts; this.MaxResourceSize = maxResourceSize; }
/// <summary> /// /// </summary> /// <param name="extendedHandle"> /// The PhysicalDevice handle to extend. /// </param> public static unsafe SharpVk.Multivendor.MultisampleProperties GetMultisampleProperties(this SharpVk.PhysicalDevice extendedHandle, SharpVk.SampleCountFlags samples) { try { SharpVk.Multivendor.MultisampleProperties result = default(SharpVk.Multivendor.MultisampleProperties); CommandCache commandCache = default(CommandCache); SharpVk.Interop.Multivendor.MultisampleProperties marshalledMultisampleProperties = default(SharpVk.Interop.Multivendor.MultisampleProperties); commandCache = extendedHandle.commandCache; SharpVk.Interop.Multivendor.VkPhysicalDeviceGetMultisamplePropertiesDelegate commandDelegate = commandCache.GetCommandDelegate <SharpVk.Interop.Multivendor.VkPhysicalDeviceGetMultisamplePropertiesDelegate>("vkGetPhysicalDeviceMultisamplePropertiesEXT", "device"); commandDelegate(extendedHandle.handle, samples, &marshalledMultisampleProperties); result = SharpVk.Multivendor.MultisampleProperties.MarshalFrom(&marshalledMultisampleProperties); return(result); } finally { Interop.HeapUtil.FreeAll(); } }