# Interface VulkanSurfaceCapabilitiesKHRType

All Known Implementing Classes:
  `VulkanSurfaceCapabilitiesKHR`

@Immutable public interface VulkanSurfaceCapabilitiesKHRType

See Also:
  - "VkSurfaceCapabilitiesKHR"

- ## Method Summary

  Modifier and Type
  Method
  Description
  `VulkanExtent2D`
  `currentExtent()`
  `Set<VulkanSurfaceTransformFlagKHR>`
  `currentTransform()`
  `int`
  `maxImageArrayLayers()`
  `int`
  `maxImageCount()`
  `VulkanExtent2D`
  `maxImageExtent()`
  `int`
  `minImageCount()`
  `VulkanExtent2D`
  `minImageExtent()`
  `Set<VulkanCompositeAlphaFlagKHR>`
  `supportedCompositeAlpha()`
  `Set<VulkanSurfaceTransformFlagKHR>`
  `supportedTransforms()`
  `Set<VulkanImageUsageFlag>`
  `supportedUsageFlags()`

- ## Method Details

  - ### minImageCount

    @Parameter int minImageCount()
    Returns:
      the minimum number of images the specified device supports for a swapchain created for the surface.

  - ### maxImageCount

    @Parameter int maxImageCount()
    Returns:
      the maximum number of images the specified device supports for a swapchain created for the surface. A value of 0 means that there is no limit on the number of images, though there may be limits related to the total amount of memory used by swapchain images.

  - ### currentExtent

    @Parameter VulkanExtent2D currentExtent()
    Returns:
      the current width and height of the surface, or the special value $(0xFFFFFFFF, 0xFFFFFFFF)$ indicating that the surface size will be determined by the extent of a swapchain targeting the surface.

  - ### minImageExtent

    @Parameter VulkanExtent2D minImageExtent()
    Returns:
      the smallest valid swapchain extent for the surface on the specified device.

  - ### maxImageExtent

    @Parameter VulkanExtent2D maxImageExtent()
    Returns:
      the largest valid swapchain extent for the surface on the specified device.

  - ### maxImageArrayLayers

    @Parameter int maxImageArrayLayers()
    Returns:
      the maximum number of layers swapchain images can have for a swapchain created for this device and surface.

  - ### supportedTransforms

    @Parameter Set<VulkanSurfaceTransformFlagKHR> supportedTransforms()
    Returns:
      the presentation transforms supported for the surface on the specified device.

  - ### currentTransform

    @Parameter Set<VulkanSurfaceTransformFlagKHR> currentTransform()
    Returns:
      the surface’s current transform relative to the presentation engine’s natural orientation.

  - ### supportedCompositeAlpha

    @Parameter Set<VulkanCompositeAlphaFlagKHR> supportedCompositeAlpha()
    Returns:
      the alpha compositing modes supported by the presentation engine for the surface on the specified device. Opaque composition can be achieved in any alpha compositing mode by either using a swapchain image format that has no alpha component, or by ensuring that all pixels in the swapchain images have an alpha value of 1.0.

  - ### supportedUsageFlags

    @Parameter Set<VulkanImageUsageFlag> supportedUsageFlags()
    Returns:
      the ways the application can use the presentable images of a swapchain created for the surface on the specified device. VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT must be included in the set but implementations may support additional usages.