/// <summary> /// Lists physical device's image format capabilities. /// </summary> public unsafe SharpVk.ImageFormatProperties GetImageFormatProperties(SharpVk.Format format, SharpVk.ImageType type, SharpVk.ImageTiling tiling, SharpVk.ImageUsageFlags usage, SharpVk.ImageCreateFlags?flags = default(SharpVk.ImageCreateFlags?)) { try { SharpVk.ImageFormatProperties result = default(SharpVk.ImageFormatProperties); SharpVk.ImageCreateFlags marshalledFlags = default(SharpVk.ImageCreateFlags); SharpVk.ImageFormatProperties marshalledImageFormatProperties = default(SharpVk.ImageFormatProperties); if (flags != null) { marshalledFlags = flags.Value; } else { marshalledFlags = default(SharpVk.ImageCreateFlags); } SharpVk.Interop.VkPhysicalDeviceGetImageFormatPropertiesDelegate commandDelegate = commandCache.GetCommandDelegate <SharpVk.Interop.VkPhysicalDeviceGetImageFormatPropertiesDelegate>("vkGetPhysicalDeviceImageFormatProperties", ""); Result methodResult = commandDelegate(this.handle, format, type, tiling, usage, marshalledFlags, &marshalledImageFormatProperties); if (SharpVkException.IsError(methodResult)) { throw SharpVkException.Create(methodResult); } result = marshalledImageFormatProperties; return(result); } finally { Interop.HeapUtil.FreeAll(); } }
/// <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(); } }
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 static unsafe SharpVk.NVidia.ExternalImageFormatProperties GetExternalImageFormatProperties(this SharpVk.PhysicalDevice extendedHandle, SharpVk.Format format, SharpVk.ImageType type, SharpVk.ImageTiling tiling, SharpVk.ImageUsageFlags usage, SharpVk.ImageCreateFlags?flags = default(SharpVk.ImageCreateFlags?), SharpVk.NVidia.ExternalMemoryHandleTypeFlags?externalHandleType = default(SharpVk.NVidia.ExternalMemoryHandleTypeFlags?)) { try { SharpVk.NVidia.ExternalImageFormatProperties result = default(SharpVk.NVidia.ExternalImageFormatProperties); CommandCache commandCache = default(CommandCache); SharpVk.ImageCreateFlags marshalledFlags = default(SharpVk.ImageCreateFlags); SharpVk.NVidia.ExternalMemoryHandleTypeFlags marshalledExternalHandleType = default(SharpVk.NVidia.ExternalMemoryHandleTypeFlags); SharpVk.NVidia.ExternalImageFormatProperties marshalledExternalImageFormatProperties = default(SharpVk.NVidia.ExternalImageFormatProperties); commandCache = extendedHandle.commandCache; if (flags != null) { marshalledFlags = flags.Value; } else { marshalledFlags = default(SharpVk.ImageCreateFlags); } if (externalHandleType != null) { marshalledExternalHandleType = externalHandleType.Value; } else { marshalledExternalHandleType = default(SharpVk.NVidia.ExternalMemoryHandleTypeFlags); } SharpVk.Interop.NVidia.VkPhysicalDeviceGetExternalImageFormatPropertiesDelegate commandDelegate = commandCache.GetCommandDelegate <SharpVk.Interop.NVidia.VkPhysicalDeviceGetExternalImageFormatPropertiesDelegate>("vkGetPhysicalDeviceExternalImageFormatPropertiesNV", "instance"); Result methodResult = commandDelegate(extendedHandle.handle, format, type, tiling, usage, marshalledFlags, marshalledExternalHandleType, &marshalledExternalImageFormatProperties); if (SharpVkException.IsError(methodResult)) { throw SharpVkException.Create(methodResult); } result = marshalledExternalImageFormatProperties; return(result); } finally { Interop.HeapUtil.FreeAll(); } }
public static extern SharpVk.Result vkGetPhysicalDeviceImageFormatProperties(SharpVk.Interop.PhysicalDevice physicalDevice, SharpVk.Format format, SharpVk.ImageType type, SharpVk.ImageTiling tiling, SharpVk.ImageUsageFlags usage, SharpVk.ImageCreateFlags flags, SharpVk.ImageFormatProperties *imageFormatProperties);