# Interface VulkanExtKHRSurfaceType

All Superinterfaces:
  `VulkanExtensionType`

All Known Implementing Classes:
  `VulkanLWJGLExtKHRSurface`

public interface VulkanExtKHRSurfaceType extends VulkanExtensionType

See Also:
  - "VK_KHR_surface"

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Interface
  Description
  `static interface`
  `VulkanExtKHRSurfaceType.VulkanKHRSurfaceType`
  An abstraction over a native platform surface or window object.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `default List<String>`
  `extraNames()`
  `default String`
  `name()`
  `VulkanSurfaceCapabilitiesKHR`
  `surfaceCapabilities(VulkanPhysicalDeviceType device, VulkanExtKHRSurfaceType.VulkanKHRSurfaceType surface)`
  Determine the capabilities of `surface`.
  `List<VulkanSurfaceFormatKHR>`
  `surfaceFormats(VulkanPhysicalDeviceType device, VulkanExtKHRSurfaceType.VulkanKHRSurfaceType surface)`
  Determine the preferred formats for `surface`.
  `VulkanExtKHRSurfaceType.VulkanKHRSurfaceType`
  `surfaceFromWindow(VulkanInstanceType instance, long window)`
  Treat a raw memory address as if it were a window, and create a WSI-compatible surface from it.
  `List<VulkanPresentModeKHR>`
  `surfacePresentModes(VulkanPhysicalDeviceType device, VulkanExtKHRSurfaceType.VulkanKHRSurfaceType surface)`
  Determine the presentation modes for `surface`.
  `List<VulkanQueueFamilyProperties>`
  `surfaceSupport(VulkanPhysicalDeviceType device, VulkanExtKHRSurfaceType.VulkanKHRSurfaceType surface)`
  Determine which queue families, if any, support presenting to `surface`.

- ## Method Details

  - ### surfaceFromWindow

    VulkanExtKHRSurfaceType.VulkanKHRSurfaceType surfaceFromWindow(VulkanInstanceType instance, long window) throws VulkanException
    Treat a raw memory address as if it were a window, and create a WSI-compatible surface from it. The caller is responsible for ensuring that the given memory address really does refer to a window.
    Parameters:
      `instance` - The current Vulkan instance
      `window` - The window address
    Returns:
      A surface
    Throws:
      `VulkanException` - On errors

  - ### name

    default String name()
    Specified by:
      `name` in interface `VulkanExtensionType`
    Returns:
      The name of the extension (such as "VK_KHR_Surface")

  - ### extraNames

    default List<String> extraNames()
    Specified by:
      `extraNames` in interface `VulkanExtensionType`
    Returns:
      The extra extension names that are also required (such as "VK_EXT_swapchain_maintenance1")

  - ### surfaceSupport

    List<VulkanQueueFamilyProperties> surfaceSupport(VulkanPhysicalDeviceType device, VulkanExtKHRSurfaceType.VulkanKHRSurfaceType surface) throws VulkanException
    Determine which queue families, if any, support presenting to `surface`.
    Parameters:
      `device` - The physical device
      `surface` - The surface
    Returns:
      The set of queue families on the physical device that support presenting to `surface`
    Throws:
      `VulkanException` - On errors
    See Also:
      - "vkGetPhysicalDeviceSurfaceSupportKHR"

  - ### surfaceFormats

    List<VulkanSurfaceFormatKHR> surfaceFormats(VulkanPhysicalDeviceType device, VulkanExtKHRSurfaceType.VulkanKHRSurfaceType surface) throws VulkanException
    Determine the preferred formats for `surface`. The returned list is guaranteed to be non-empty.
    Parameters:
      `device` - The physical device
      `surface` - The surface
    Returns:
      The preferred formats for the given surface
    Throws:
      `VulkanException` - On errors
    See Also:
      - "vkGetPhysicalDeviceSurfaceFormatsKHR"

  - ### surfaceCapabilities

    VulkanSurfaceCapabilitiesKHR surfaceCapabilities(VulkanPhysicalDeviceType device, VulkanExtKHRSurfaceType.VulkanKHRSurfaceType surface) throws VulkanException
    Determine the capabilities of `surface`.
    Parameters:
      `device` - The physical device
      `surface` - The surface
    Returns:
      The capabilities of the given surface
    Throws:
      `VulkanException` - On errors
    See Also:
      - "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"

  - ### surfacePresentModes

    List<VulkanPresentModeKHR> surfacePresentModes(VulkanPhysicalDeviceType device, VulkanExtKHRSurfaceType.VulkanKHRSurfaceType surface) throws VulkanException
    Determine the presentation modes for `surface`.
    Parameters:
      `device` - The physical device
      `surface` - The surface
    Returns:
      The presentation modes for the given surface
    Throws:
      `VulkanException` - On errors
    See Also:
      - "vkGetPhysicalDeviceSurfacePresentModesKHR"